/* * 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 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 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; }