#include <list>
+#include <boost/weak_ptr.hpp>
+
#include <QMainWindow>
+#include <QSignalMapper>
#include "sigsession.h"
namespace pv {
+class DeviceManager;
+
namespace toolbars {
+class ContextBar;
class SamplingBar;
}
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);
+
+ static gint decoder_name_cmp(gconstpointer a, gconstpointer b);
+ void setup_add_decoders(QMenu *parent);
+
private slots:
void load_file(QString file_name);
void on_actionAbout_triggered();
- void device_selected();
+ void add_decoder(QObject *action);
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;
QAction *_action_view_zoom_out;
QAction *_action_view_show_cursors;
+ QMenu *_menu_decoders;
+ QMenu *_menu_decoders_add;
+ QSignalMapper _decoders_add_mapper;
+
QMenu *_menu_help;
QAction *_action_about;