#include "gtl_gui_config_hardware_dialog.h" #include "ui_gtl_gui_config_hardware_dialog.h" #include "gui/config/gtl_gui_config_hw_widget_audio.h" #include "gui/config/gtl_gui_config_hw_widget_dac.h" #include "gui/config/gtl_gui_config_hw_widget_generator.h" namespace gtl { namespace gui { namespace config { hardware_dialog::hardware_dialog(QString plugins_path, QWidget *parent) : QDialog(parent) , _hw(plugins_path) { _ui.setupUi(this); _ui.stacked_widget->addWidget(new hw_widget_dac(plugins_path, this)); _ui.stacked_widget->addWidget(new hw_widget_generator(this)); _ui.stacked_widget->addWidget(new hw_widget_audio(this)); } hardware_dialog::~hardware_dialog() { } QString hardware_dialog::id() const { return static_cast(_ui.stacked_widget->currentWidget())->id(); } qreal hardware_dialog::rate() const { return static_cast(_ui.stacked_widget->currentWidget())->rate(); } QString hardware_dialog::type() const { if(_ui.stacked_widget->currentIndex() == 1) return "generator"; else if(_ui.stacked_widget->currentIndex() == 2) return "audio"; else if(_ui.stacked_widget->currentIndex() == 3) return "player"; return static_cast(_ui.stacked_widget->widget(0))->type(); } hw::device* hardware_dialog::create_device() { return static_cast(_ui.stacked_widget->currentWidget())->create_device(); } hw::device *hardware_dialog::create_device(QString type) { return static_cast(_ui.stacked_widget->widget(get_widget_idex(type)))->create_device(); } int hardware_dialog::exec(QString type) { _ui.stacked_widget->setCurrentIndex(get_widget_idex(type)); return QDialog::exec(); } int hardware_dialog::get_widget_idex(QString type) { if(type == "generator") return 1; else if(type == "audio") return 2; else if(type == "player") return 3; static_cast(_ui.stacked_widget->widget(0))->set_type(type); return 0; } } } }