const shared_ptr<sigrok::Device> sr_dev = device->device();
+ try {
+ auto gvar = sr_dev->config_get(ConfigKey::EXTERNAL_CLOCK);
+ if (gvar.gobj()) {
+ bool value = Glib::VariantBase::cast_dynamic<Glib::Variant<bool>>(
+ gvar).get();
+ sample_rate_.allow_user_entered_values(value);
+ }
+ } catch (Error& error) {
+ // Do nothing
+ }
+
if (sr_dev->config_check(ConfigKey::SAMPLERATE, Capability::LIST)) {
try {
gvar_dict = sr_dev->config_list(ConfigKey::SAMPLERATE);
- } catch (Error error) {
+ } catch (Error& error) {
qDebug() << tr("Failed to get sample rate list:") << error.what();
}
} else {
updating_sample_rate_ = true;
sample_rate_.set_value(samplerate);
updating_sample_rate_ = false;
- } catch (Error error) {
+ } catch (Error& error) {
qDebug() << tr("Failed to get value of sample rate:") << error.what();
}
}
if (gvar.gobj())
g_variant_get(gvar.gobj(), "(tt)",
&min_sample_count, &max_sample_count);
- } catch (Error error) {
+ } catch (Error& error) {
qDebug() << tr("Failed to get sample limit list:") << error.what();
}
}
sr_dev->config_set(ConfigKey::SAMPLERATE,
Glib::Variant<guint64>::create(sample_rate));
update_sample_rate_selector();
- } catch (Error error) {
+ } catch (Error& error) {
qDebug() << tr("Failed to configure samplerate:") << error.what();
return;
}
sr_dev->config_set(ConfigKey::LIMIT_SAMPLES,
Glib::Variant<guint64>::create(sample_count));
update_sample_count_selector();
- } catch (Error error) {
+ } catch (Error& error) {
qDebug() << tr("Failed to configure sample count:") << error.what();
return;
}
update_sample_rate_selector();
}
-void MainBar::session_error(const QString text, const QString info_text)
-{
- QMetaObject::invokeMethod(this, "show_session_error",
- Qt::QueuedConnection, Q_ARG(QString, text),
- Q_ARG(QString, info_text));
-}
-
void MainBar::show_session_error(const QString text, const QString info_text)
{
QMessageBox msg(this);
void MainBar::on_config_changed()
{
+ // We want to also call update_sample_rate_selector() here in case
+ // the user changed the SR_CONF_EXTERNAL_CLOCK option. However,
+ // commit_sample_rate() does this already, so we don't call it here
+
commit_sample_count();
commit_sample_rate();
}