#ifndef PULSEVIEW_PV_CONNECT_H
#define PULSEVIEW_PV_CONNECT_H
+#include <memory>
+
#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 Device;
+}
+
namespace dialogs {
class Connect : public QDialog
Q_OBJECT
public:
- Connect(QWidget *parent);
+ Connect(QWidget *parent, pv::DeviceManager &device_manager);
+
+ std::shared_ptr<device::Device> get_selected_device() const;
private:
void populate_drivers();
-private slots:
- void device_selected(int index);
-
void unset_connection();
void set_serial_connection();
+private Q_SLOTS:
+ void device_selected(int index);
+
+ void scan_pressed();
+
private:
+ static void free_drvopts(sr_config *src);
+
+private:
+ pv::DeviceManager &_device_manager;
+
QVBoxLayout _layout;
QWidget _form;
QLineEdit _serial_device;
+ QPushButton _scan_button;
+ QListWidget _device_list;
+ std::map<const sr_dev_inst*, std::shared_ptr<pv::device::Device> >
+ _device_map;
+
QDialogButtonBox _button_box;
};