diff options
| author | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
|---|---|---|
| committer | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
| commit | 33613a85afc4b1481367fbe92a17ee59c240250b (patch) | |
| tree | 670b842326116b376b505ec2263878912fca97e2 /Master/Modellbildung_und_Simulation/Aufgabenblatt1/SineGenerator/src/MainController.cpp | |
| download | Studium-master.tar.gz Studium-master.tar.bz2 | |
Diffstat (limited to 'Master/Modellbildung_und_Simulation/Aufgabenblatt1/SineGenerator/src/MainController.cpp')
| -rw-r--r-- | Master/Modellbildung_und_Simulation/Aufgabenblatt1/SineGenerator/src/MainController.cpp | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/Master/Modellbildung_und_Simulation/Aufgabenblatt1/SineGenerator/src/MainController.cpp b/Master/Modellbildung_und_Simulation/Aufgabenblatt1/SineGenerator/src/MainController.cpp new file mode 100644 index 0000000..ed602fd --- /dev/null +++ b/Master/Modellbildung_und_Simulation/Aufgabenblatt1/SineGenerator/src/MainController.cpp @@ -0,0 +1,112 @@ +/* + * 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 <libglademm/xml.h> +#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<double>(mParams.getFrequency()),1.0,8000.0) + ,mAmpAdj(static_cast<double>(mParams.getAmplitude()),1.0,100.0) + ,mPhaseAdj(static_cast<double>(mParams.getPhase()),-180.0,180.0) + ,mLengthAdj(static_cast<double>(mParams.getLength()),1.0,60.0) +{ + Glib::RefPtr<Gtk::Builder> 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); +} |
