mirror of
https://github.com/f4exb/sdrangel.git
synced 2026-06-10 17:58:36 -04:00
File Input: acceleration and loop handling phase 1
This commit is contained in:
@@ -51,7 +51,8 @@ FileSourceGui::FileSourceGui(DeviceUISet *deviceUISet, QWidget* parent) :
|
||||
m_samplesCount(0),
|
||||
m_tickCount(0),
|
||||
m_enableNavTime(false),
|
||||
m_lastEngineState(DSPDeviceSourceEngine::StNotStarted)
|
||||
m_lastEngineState(DSPDeviceSourceEngine::StNotStarted),
|
||||
m_accelerationMaxScale(1)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->centerFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold));
|
||||
@@ -64,8 +65,10 @@ FileSourceGui::FileSourceGui(DeviceUISet *deviceUISet, QWidget* parent) :
|
||||
m_statusTimer.start(500);
|
||||
|
||||
displaySettings();
|
||||
setAccelerationCombo();
|
||||
|
||||
ui->navTimeSlider->setEnabled(false);
|
||||
ui->acceleration->setEnabled(false);
|
||||
ui->playLoop->setChecked(true); // FIXME: always play in a loop
|
||||
ui->playLoop->setEnabled(false);
|
||||
|
||||
@@ -279,6 +282,7 @@ void FileSourceGui::on_play_toggled(bool checked)
|
||||
FileSourceInput::MsgConfigureFileSourceWork* message = FileSourceInput::MsgConfigureFileSourceWork::create(checked);
|
||||
m_sampleSource->getInputMessageQueue()->push(message);
|
||||
ui->navTimeSlider->setEnabled(!checked);
|
||||
ui->acceleration->setEnabled(!checked);
|
||||
m_enableNavTime = !checked;
|
||||
}
|
||||
|
||||
@@ -305,6 +309,13 @@ void FileSourceGui::on_showFileDialog_clicked(bool checked __attribute__((unused
|
||||
}
|
||||
}
|
||||
|
||||
void FileSourceGui::on_acceleration_currentIndexChanged(int index)
|
||||
{
|
||||
m_settings.m_accelerationFactor = FileSourceSettings::getAccelerationValue(index);
|
||||
FileSourceInput::MsgConfigureFileSource *message = FileSourceInput::MsgConfigureFileSource::create(m_settings);
|
||||
m_sampleSource->getInputMessageQueue()->push(message);
|
||||
}
|
||||
|
||||
void FileSourceGui::configureFileName()
|
||||
{
|
||||
qDebug() << "FileSourceGui::configureFileName: " << m_fileName.toStdString().c_str();
|
||||
@@ -369,3 +380,42 @@ void FileSourceGui::tick()
|
||||
m_sampleSource->getInputMessageQueue()->push(message);
|
||||
}
|
||||
}
|
||||
|
||||
void FileSourceGui::setAccelerationCombo()
|
||||
{
|
||||
ui->acceleration->blockSignals(true);
|
||||
ui->acceleration->clear();
|
||||
ui->acceleration->addItem(QString("1"));
|
||||
|
||||
for (unsigned int i = 0; i <= m_accelerationMaxScale; i++)
|
||||
{
|
||||
QString s;
|
||||
int m = pow(10.0, i);
|
||||
int x = 2*m;
|
||||
setNumberStr(x, s);
|
||||
ui->acceleration->addItem(s);
|
||||
x = 5*m;
|
||||
setNumberStr(x, s);
|
||||
ui->acceleration->addItem(s);
|
||||
x = 10*m;
|
||||
setNumberStr(x, s);
|
||||
ui->acceleration->addItem(s);
|
||||
}
|
||||
|
||||
ui->acceleration->blockSignals(false);
|
||||
}
|
||||
|
||||
void FileSourceGui::setNumberStr(int n, QString& s)
|
||||
{
|
||||
if (n < 1000) {
|
||||
s = tr("%1").arg(n);
|
||||
} else if (n < 100000) {
|
||||
s = tr("%1k").arg(n/1000);
|
||||
} else if (n < 1000000) {
|
||||
s = tr("%1e5").arg(n/100000);
|
||||
} else if (n < 1000000000) {
|
||||
s = tr("%1M").arg(n/1000000);
|
||||
} else {
|
||||
s = tr("%1G").arg(n/1000000000);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user