projects
/
pulseview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
MainBar: Re-check sample count/rate when needed
[pulseview.git]
/
pv
/
toolbars
/
mainbar.cpp
diff --git
a/pv/toolbars/mainbar.cpp
b/pv/toolbars/mainbar.cpp
index 529f25f46a1baf7bae3c4270d92c588ee052cd69..b404b3da45b32666f335fbee88d773c657b0b855 100644
(file)
--- a/
pv/toolbars/mainbar.cpp
+++ b/
pv/toolbars/mainbar.cpp
@@
-474,9
+474,6
@@
void MainBar::commit_sample_count()
{
uint64_t sample_count = 0;
{
uint64_t sample_count = 0;
- if (updating_sample_count_)
- 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)
@@
-485,22
+482,22
@@
void MainBar::commit_sample_count()
const shared_ptr<sigrok::Device> sr_dev = device->device();
sample_count = sample_count_.value();
const shared_ptr<sigrok::Device> sr_dev = device->device();
sample_count = sample_count_.value();
-
- // Set the sample count
- assert(!updating_sample_count_);
- updating_sample_count_ = true;
if (sample_count_supported_)
{
try {
sr_dev->config_set(ConfigKey::LIMIT_SAMPLES,
Glib::Variant<guint64>::create(sample_count));
if (sample_count_supported_)
{
try {
sr_dev->config_set(ConfigKey::LIMIT_SAMPLES,
Glib::Variant<guint64>::create(sample_count));
-
on_config_changed
();
+
update_sample_count_selector
();
} catch (Error error) {
qDebug() << "Failed to configure sample count.";
return;
}
}
} catch (Error error) {
qDebug() << "Failed to configure sample count.";
return;
}
}
- updating_sample_count_ = false;
+
+ // Devices with built-in memory might impose limits on certain
+ // configurations, so let's check what sample rate the driver
+ // lets us use now.
+ update_sample_rate_selector();
}
void MainBar::commit_sample_rate()
}
void MainBar::commit_sample_rate()
@@
-526,6
+523,11
@@
void MainBar::commit_sample_rate()
qDebug() << "Failed to configure samplerate.";
return;
}
qDebug() << "Failed to configure samplerate.";
return;
}
+
+ // Devices with built-in memory might impose limits on certain
+ // configurations, so let's check what sample count the driver
+ // lets us use now.
+ update_sample_count_selector();
}
void MainBar::on_device_selected()
}
void MainBar::on_device_selected()
@@
-541,7
+543,8
@@
void MainBar::on_device_selected()
void MainBar::on_sample_count_changed()
{
void MainBar::on_sample_count_changed()
{
- commit_sample_count();
+ if (!updating_sample_count_)
+ commit_sample_count();
}
void MainBar::on_sample_rate_changed()
}
void MainBar::on_sample_rate_changed()
@@
-560,7
+563,6
@@
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();
commit_sample_rate();
}
commit_sample_rate();
}