test_sdk/gui/config/gtl_gui_config_hardware_dia...

89 lines
2.7 KiB
C++

#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<hw_widget*>(_ui.stacked_widget->currentWidget())->id();
}
qreal hardware_dialog::rate() const
{
return static_cast<hw_widget*>(_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<hw_widget_dac*>(_ui.stacked_widget->widget(0))->type();
}
hw::device* hardware_dialog::create_device()
{
return static_cast<hw_widget*>(_ui.stacked_widget->currentWidget())->create_device();
}
hw::device *hardware_dialog::create_device(QString type)
{
return static_cast<hw_widget*>(_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<hw_widget_dac*>(_ui.stacked_widget->widget(0))->set_type(type);
return 0;
}
}
}
}