/* * MainController.cpp * * Created on: 31.03.2011 * Author: sven */ #ifndef MAINCONTROLLER_H_ #include "MainController.h" #endif #ifndef UTIL_H_ #include "Util.h" #endif #ifndef SINEGENERATOR_H_ #include "SineGenerator.h" #endif #ifndef _LIBGLADEMM_XML_H #include #endif const unsigned short MainController::DEFAULT_FREQUENCY = 400; const unsigned short MainController::DEFAULT_AMPLITUDE = 100; const unsigned short MainController::DEFAULT_PHASE = 0; const unsigned short MainController::DEFAULT_LENGTH = 5; const char* MainController::DEFAULT_WAVEFILENAME = "test.wav"; const char* MainController::UI_FILENAME="ui/sinegen.glade"; MainController::MainController() : mParams( DEFAULT_FREQUENCY ,DEFAULT_AMPLITUDE ,DEFAULT_PHASE ,DEFAULT_LENGTH ,DEFAULT_WAVEFILENAME ) ,mFreqAdj(static_cast(mParams.getFrequency()),1.0,8000.0) ,mAmpAdj(static_cast(mParams.getAmplitude()),1.0,100.0) ,mPhaseAdj(static_cast(mParams.getPhase()),-180.0,180.0) ,mLengthAdj(static_cast(mParams.getLength()),1.0,60.0) { Glib::RefPtr builder = Gtk::Builder::create_from_file(UI_FILENAME); builder->get_widget("mainwindow",mPtrMainWin); builder->get_widget("freqField",mPtrFreqField); builder->get_widget("ampField",mPtrAmpField); builder->get_widget("phaseField",mPtrPhaseField); builder->get_widget("lenField",mPtrLengthField); builder->get_widget("bitrateentry",mPtrBitrateEntry); builder->get_widget("samplerateentry",mPtrSamplerateEntry); builder->get_widget("filenameentry",mPtrFilenameEntry); builder->get_widget("startbutton",mPtrStartBtn); mPtrAmpField->set_adjustment(mAmpAdj); mPtrFreqField->set_adjustment(mFreqAdj); mPtrPhaseField->set_adjustment(mPhaseAdj); mPtrLengthField->set_adjustment(mLengthAdj); mPtrBitrateEntry->set_text(Util::ToUString(mParams.getBitrate())); mPtrSamplerateEntry->set_text(Util::ToUString(mParams.getSamplerate())); mPtrFilenameEntry->set_text(mParams.getFilename()); mPtrMainWin->signal_hide().connect(sigc::ptr_fun(&Gtk::Main::quit)); mPtrStartBtn->signal_clicked().connect(sigc::mem_fun(this,&MainController::on_startbutton_clicked)); mPtrFreqField->signal_value_changed().connect(sigc::mem_fun(this,&MainController::on_freq_changed)); mPtrAmpField->signal_value_changed().connect(sigc::mem_fun(this,&MainController::on_amp_changed)); mPtrPhaseField->signal_value_changed().connect(sigc::mem_fun(this,&MainController::on_phase_changed)); mPtrLengthField->signal_value_changed().connect(sigc::mem_fun(this,&MainController::on_length_changed)); mPtrFilenameEntry->signal_changed().connect(sigc::mem_fun(this,&MainController::on_filename_changed)); } MainController::~MainController() { } void MainController::startApp(Gtk::Main& kit) { kit.run(*mPtrMainWin); } void MainController::on_startbutton_clicked() { SineGenerator gen(mParams); gen.generateWavefile(); } void MainController::on_freq_changed() { Glib::ustring utxt = mPtrFreqField->get_text(); mParams.setFrequency(Util::ToUShort(utxt)); } void MainController::on_amp_changed() { Glib::ustring buffer = mPtrAmpField->get_text(); mParams.setAmplitude(Util::ToUShort(buffer)); } void MainController::on_phase_changed() { Glib::ustring buffer = mPtrPhaseField->get_text(); mParams.setPhase(Util::ToShort(buffer)); } void MainController::on_length_changed() { Glib::ustring buffer = mPtrLengthField->get_text(); mParams.setLength(Util::ToUShort(buffer)); } void MainController::on_filename_changed() { std::string buffer = mPtrFilenameEntry->get_text().raw(); mParams.setFilename(buffer); }