#include "samplingbar.hpp"
#include <pv/devicemanager.hpp>
+#include <pv/mainwindow.hpp>
#include <pv/popups/deviceoptions.hpp>
#include <pv/popups/channels.hpp>
#include <pv/util.hpp>
const uint64_t SamplingBar::MaxSampleCount = 1000000000000ULL;
const uint64_t SamplingBar::DefaultSampleCount = 1000000;
-SamplingBar::SamplingBar(SigSession &session, QWidget *parent) :
- QToolBar("Sampling Bar", parent),
+SamplingBar::SamplingBar(Session &session, MainWindow &main_window) :
+ QToolBar("Sampling Bar", &main_window),
session_(session),
+ main_window_(main_window),
device_selector_(this),
updating_device_selector_(false),
configure_button_(this),
sample_count_.show_min_max_step(0, UINT64_MAX, 1);
- set_capture_state(pv::SigSession::Stopped);
+ set_capture_state(pv::Session::Stopped);
configure_button_.setIcon(QIcon::fromTheme("configure",
QIcon(":/icons/configure.png")));
return device_selector_.itemData(index).value<shared_ptr<Device>>();
}
-void SamplingBar::set_capture_state(pv::SigSession::capture_state state)
+void SamplingBar::set_capture_state(pv::Session::capture_state state)
{
const QIcon *icons[] = {&icon_grey_, &icon_red_, &icon_green_};
run_stop_button_.setIcon(*icons[state]);
- run_stop_button_.setText((state == pv::SigSession::Stopped) ?
+ run_stop_button_.setText((state == pv::Session::Stopped) ?
tr("Run") : tr("Stop"));
run_stop_button_.setShortcut(QKeySequence(Qt::Key_Space));
}
assert(!updating_sample_rate_);
updating_sample_rate_ = true;
- try {
+ const auto keys = device->config_keys(ConfigKey::DEVICE_OPTIONS);
+ const auto iter = keys.find(ConfigKey::SAMPLERATE);
+ if (iter != keys.end() &&
+ (*iter).second.find(sigrok::LIST) != (*iter).second.end()) {
gvar_dict = device->config_list(ConfigKey::SAMPLERATE);
- } catch (Error error) {
+ } else {
sample_rate_.show_none();
updating_sample_rate_ = false;
return;
if (sample_count == 0)
sample_count = DefaultSampleCount;
- try {
+ const auto keys = device->config_keys(ConfigKey::DEVICE_OPTIONS);
+ const auto iter = keys.find(ConfigKey::LIMIT_SAMPLES);
+ if (iter != keys.end() &&
+ (*iter).second.find(sigrok::LIST) != (*iter).second.end()) {
auto gvar = device->config_list(ConfigKey::LIMIT_SAMPLES);
g_variant_get(gvar.gobj(), "(tt)",
&min_sample_count, &max_sample_count);
- } catch (Error error) {}
+ }
min_sample_count = min(max(min_sample_count, MinSampleCount),
max_sample_count);
if (!device)
return;
- session_.set_device(device);
+ main_window_.select_device(device);
update_device_config_widgets();
}
{
commit_sample_count();
commit_sample_rate();
- run_stop();
+ main_window_.run_stop();
}
void SamplingBar::on_config_changed()