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/Quantization/src/QuantizationController.cpp | |
| download | Studium-master.tar.gz Studium-master.tar.bz2 | |
Diffstat (limited to 'Master/Modellbildung_und_Simulation/Aufgabenblatt1/Quantization/src/QuantizationController.cpp')
| -rw-r--r-- | Master/Modellbildung_und_Simulation/Aufgabenblatt1/Quantization/src/QuantizationController.cpp | 95 |
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; +} |
