]> sigrok.org Git - pulseview.git/blobdiff - pv/dialogs/connect.h
Moved DevInst into the pv::device namespace
[pulseview.git] / pv / dialogs / connect.h
index 443f6e07fde6c3a94dca2e28f8ac563aece77898..5a8b1cd0baf07d7974535c4db4bb951616f05262 100644 (file)
 #ifndef PULSEVIEW_PV_CONNECT_H
 #define PULSEVIEW_PV_CONNECT_H
 
+#include <boost/shared_ptr.hpp>
+
 #include <QComboBox>
 #include <QDialog>
 #include <QDialogButtonBox>
 #include <QFormLayout>
 #include <QLineEdit>
+#include <QListWidget>
+#include <QPushButton>
 #include <QVBoxLayout>
 
+struct sr_config;
+struct sr_dev_inst;
+
 namespace pv {
+
+class DeviceManager;
+
+namespace device {
+class DevInst;
+}
+
 namespace dialogs {
 
 class Connect : public QDialog
@@ -36,19 +50,28 @@ class Connect : public QDialog
        Q_OBJECT
 
 public:
-       Connect(QWidget *parent);
+       Connect(QWidget *parent, pv::DeviceManager &device_manager);
+
+       boost::shared_ptr<device::DevInst> get_selected_device() const;
 
 private:
        void populate_drivers();
 
+       void unset_connection();
+
+       void set_serial_connection();
+
 private slots:
        void device_selected(int index);
 
-       void unset_connection();
+       void scan_pressed();
 
-       void set_serial_connection();
+private:
+       static void free_drvopts(sr_config *src);
 
 private:
+       pv::DeviceManager &_device_manager;
+
        QVBoxLayout _layout;
 
        QWidget _form;
@@ -58,6 +81,11 @@ private:
 
        QLineEdit _serial_device;
 
+       QPushButton _scan_button;
+       QListWidget _device_list;
+       std::map<const sr_dev_inst*, boost::shared_ptr<pv::device::DevInst> >
+               _device_map;
+
        QDialogButtonBox _button_box;
 };