summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
inline | side by side (from parent 1:
cf124e4)
The reason that the sampling rate button disappears after a
sampling rate was selected is that there's a flaw in the
chain of events:
on_sample_rate_changed() which calls
commit_sample_rate() which sets updating_sample_rate_ and calls
on_config_changed() which calls
update_sample_rate_selector() which...
...clears the list and exits because updating_sample_rate_ is set.
{
uint64_t sample_rate = 0;
{
uint64_t sample_rate = 0;
- if (updating_sample_rate_)
- return;
-
const shared_ptr<devices::Device> device =
device_selector_.selected_device();
if (!device)
const shared_ptr<devices::Device> device =
device_selector_.selected_device();
if (!device)
if (sample_rate == 0)
return;
if (sample_rate == 0)
return;
- // Set the samplerate
- assert(!updating_sample_rate_);
- updating_sample_rate_ = true;
try {
sr_dev->config_set(ConfigKey::SAMPLERATE,
Glib::Variant<guint64>::create(sample_rate));
try {
sr_dev->config_set(ConfigKey::SAMPLERATE,
Glib::Variant<guint64>::create(sample_rate));
+ update_sample_rate_selector();
} catch (Error error) {
qDebug() << "Failed to configure samplerate.";
return;
}
} catch (Error error) {
qDebug() << "Failed to configure samplerate.";
return;
}
- updating_sample_rate_ = false;
}
void MainBar::on_device_selected()
}
void MainBar::on_device_selected()
void MainBar::on_sample_rate_changed()
{
void MainBar::on_sample_rate_changed()
{
+ if (!updating_sample_rate_)
+ commit_sample_rate();
}
void MainBar::on_run_stop()
}
void MainBar::on_run_stop()
void MainBar::on_config_changed()
{
commit_sample_count();
void MainBar::on_config_changed()
{
commit_sample_count();
- update_sample_count_selector();
+ update_sample_count_selector();
- update_sample_rate_selector();
}
bool MainBar::eventFilter(QObject *watched, QEvent *event)
}
bool MainBar::eventFilter(QObject *watched, QEvent *event)