summaryrefslogtreecommitdiffstats
path: root/Master/Modellbildung_und_Simulation/Aufgabenblatt1/SineGenerator/src/MainController.cpp
diff options
context:
space:
mode:
authorSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
committerSven Eisenhauer <sven@sven-eisenhauer.net>2023-11-10 15:11:48 +0100
commit33613a85afc4b1481367fbe92a17ee59c240250b (patch)
tree670b842326116b376b505ec2263878912fca97e2 /Master/Modellbildung_und_Simulation/Aufgabenblatt1/SineGenerator/src/MainController.cpp
downloadStudium-master.tar.gz
Studium-master.tar.bz2
add new repoHEADmaster
Diffstat (limited to 'Master/Modellbildung_und_Simulation/Aufgabenblatt1/SineGenerator/src/MainController.cpp')
-rw-r--r--Master/Modellbildung_und_Simulation/Aufgabenblatt1/SineGenerator/src/MainController.cpp112
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);
+}