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);
+ sample_rate_.allow_user_entered_values(false);
+ if (sr_dev->config_check(ConfigKey::EXTERNAL_CLOCK, Capability::GET)) {
+ 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
}
- } catch (Error& error) {
- // Do nothing
}
+
if (sr_dev->config_check(ConfigKey::SAMPLERATE, Capability::LIST)) {
try {
gvar_dict = sr_dev->config_list(ConfigKey::SAMPLERATE);
const shared_ptr<sigrok::Device> sr_dev = device->device();
sample_rate = sample_rate_.value();
- if (sample_rate == 0)
- return;
+ if (sample_rate < 0)
+ sample_rate_.set_value(0);
try {
sr_dev->config_set(ConfigKey::SAMPLERATE,