]> sigrok.org Git - pulseview.git/blobdiff - pv/mainwindow.h
Factored device title printing code out into pv::DeviceManager::format_device_title
[pulseview.git] / pv / mainwindow.h
index 3887717fb4e6c76931f245a3cfe9da89d0902969..02b792eaa1cd5cc4aed6d8d2b5894edeb935e21f 100644 (file)
@@ -37,7 +37,11 @@ class QWidget;
 
 namespace pv {
 
+class DeviceManager;
+
+namespace toolbars {
 class SamplingBar;
+}
 
 namespace view {
 class View;
@@ -48,15 +52,24 @@ class MainWindow : public QMainWindow
        Q_OBJECT
 
 public:
-       explicit MainWindow(const char *open_file_name = NULL,
+       explicit MainWindow(DeviceManager &device_manager,
+               const char *open_file_name = NULL,
                QWidget *parent = 0);
 
 private:
        void setup_ui();
-       void scan_devices();
 
        void session_error(const QString text, const QString info_text);
 
+       /**
+        * Updates the device list in the sampling bar, and updates the
+        * selection.
+        * @param selected_device The device to select, or NULL if the
+        * first device in the device list should be selected.
+        */
+       void update_device_list(
+               struct sr_dev_inst *selected_device = NULL);
+
 private slots:
        void load_file(QString file_name);
 
@@ -77,14 +90,16 @@ private slots:
 
        void on_actionAbout_triggered();
 
+       void device_selected();
+
        void run_stop();
 
        void capture_state_changed(int state);
 
 private:
+       DeviceManager &_device_manager;
 
        SigSession _session;
-       std::list<sr_dev_inst*> _devices;
 
        pv::view::View *_view;
 
@@ -106,7 +121,7 @@ private:
        QVBoxLayout *_vertical_layout;
 
        QToolBar *_toolbar;
-       SamplingBar *_sampling_bar;
+       toolbars::SamplingBar *_sampling_bar;
 };
 
 } // namespace pv