summaryrefslogtreecommitdiffstats
path: root/Master/Modellbildung_und_Simulation/Aufgabenblatt1/Quantization/src/QuantizationController.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/Quantization/src/QuantizationController.cpp
downloadStudium-master.tar.gz
Studium-master.tar.bz2
add new repoHEADmaster
Diffstat (limited to 'Master/Modellbildung_und_Simulation/Aufgabenblatt1/Quantization/src/QuantizationController.cpp')
-rw-r--r--Master/Modellbildung_und_Simulation/Aufgabenblatt1/Quantization/src/QuantizationController.cpp95
1 files changed, 95 insertions, 0 deletions
diff --git a/Master/Modellbildung_und_Simulation/Aufgabenblatt1/Quantization/src/QuantizationController.cpp b/Master/Modellbildung_und_Simulation/Aufgabenblatt1/Quantization/src/QuantizationController.cpp
new file mode 100644
index 0000000..47196bd
--- /dev/null
+++ b/Master/Modellbildung_und_Simulation/Aufgabenblatt1/Quantization/src/QuantizationController.cpp
@@ -0,0 +1,95 @@
+/*
+ * QuantizationController.cpp
+ *
+ * Created on: 02.04.2011
+ * Author: sven
+ */
+#ifndef QUANTIZATIONCONTROLLER_H_
+ #include "QuantizationController.h"
+#endif
+
+#ifndef QUANTIZATION_H_
+ #include "Quantization.h"
+#endif
+
+const char* QuantizationController::UI_FILENAME = "ui/quantization.glade";
+const double QuantizationController::QUANTIZATIONBITS_DEFAULT = 8.0;
+const double QuantizationController::QUANTIZATIONBITS_MIN = 1.0;
+const double QuantizationController::QUANTIZATIONBITS_MAX = 16.0;
+
+QuantizationController::QuantizationController()
+:mQuantizationBitsAdj(QUANTIZATIONBITS_DEFAULT,QUANTIZATIONBITS_MIN,QUANTIZATIONBITS_MAX)
+{
+ Glib::RefPtr<Gtk::Builder> builder = Gtk::Builder::create_from_file(UI_FILENAME);
+ builder->get_widget("mainwindow",mPtrMainWin);
+ builder->get_widget("quantizationbits",mPtrQuantizationBits);
+ builder->get_widget("openinputbtn",mPtrOpenInputBtn);
+ builder->get_widget("openoutputbtn",mPtrOpenOutputBtn);
+ builder->get_widget("startbtn",mPtrStartBtn);
+ builder->get_widget("inputfile",mPtrInputFile);
+ builder->get_widget("outputfile",mPtrOutputFile);
+ mPtrQuantizationBits->set_adjustment(mQuantizationBitsAdj);
+ mPtrStartBtn->signal_clicked().connect(sigc::mem_fun(this,&QuantizationController::on_start_btn));
+ mPtrOpenInputBtn->signal_clicked().connect(sigc::mem_fun(this,&QuantizationController::on_open_input_btn));
+ mPtrOpenOutputBtn->signal_clicked().connect(sigc::mem_fun(this,&QuantizationController::on_open_output_btn));
+ mPtrQuantizationBits->signal_value_changed().connect(sigc::mem_fun(this,&QuantizationController::on_quantizationbits_changed));
+ mParams.setBits(mPtrQuantizationBits->get_value_as_int());
+}
+
+QuantizationController::~QuantizationController() {
+ // TODO Auto-generated destructor stub
+}
+void QuantizationController::startApp(Gtk::Main& kit)
+{
+ kit.run(*mPtrMainWin);
+}
+
+void QuantizationController::on_open_input_btn()
+{
+ std::string filename;
+ choose_file(filename);
+ mParams.setInputFile(filename);
+ mPtrInputFile->set_text(mParams.getInputFile());
+}
+
+void QuantizationController::on_open_output_btn()
+{
+ std::string filename;
+ choose_file(filename);
+ mParams.setOutputFile(filename);
+ mPtrOutputFile->set_text(mParams.getOutputFile());
+}
+
+void QuantizationController::on_quantizationbits_changed()
+{
+ mParams.setBits(mPtrQuantizationBits->get_value_as_int());
+}
+
+void QuantizationController::on_start_btn()
+{
+ Quantization quantization(mParams);
+}
+
+void QuantizationController::choose_file(std::string& filename)
+{
+ Glib::RefPtr<Gtk::Builder> builder = Gtk::Builder::create_from_file(UI_FILENAME);
+ Gtk::FileChooserDialog* ptrFilechooser;
+ builder->get_widget("filechooserdialog",ptrFilechooser);
+ Gtk::FileFilter waveFilter;
+ waveFilter.set_name("Wave files");
+ waveFilter.add_pattern("*.wav");
+ ptrFilechooser->add_filter(waveFilter);
+ ptrFilechooser->add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
+ ptrFilechooser->add_button(Gtk::Stock::OPEN, Gtk::RESPONSE_OK);
+ ptrFilechooser->set_transient_for(*mPtrMainWin);
+ int result = ptrFilechooser->run();
+ switch (result)
+ {
+ case Gtk::RESPONSE_OK:
+ filename = ptrFilechooser->get_filename();
+ break;
+ default:
+ break;
+ }
+ delete ptrFilechooser;
+}