/* Copyright (C) 2006-2011 Nasca Octavian Paul Author: Nasca Octavian Paul This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License (version 2) for more details. You should have received a copy of the GNU General Public License (version 2) along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef CONTROL_H #define CONTROL_H #include "globals.h" #include "Input/AInputS.h" #include "Input/VorbisInputS.h" #include "Input/MP3InputS.h" #include "Output/AOutputS.h" #include "Output/VorbisOutputS.h" #include "ProcessedStretch.h" #include "Player.h" #include "JAaudiooutput.h" #include "PAaudiooutput.h" #include "BinauralBeats.h" class Control{ public: Control(); ~Control(); void UpdateControlInfo(); void startplay(bool bypass); void stopplay(); void pauseplay(); void freezeplay(); void set_volume(REALTYPE vol); void set_seek_pos(REALTYPE x); REALTYPE get_seek_pos(); bool save_parameters(const char *filename); bool load_parameters(const char *filename); bool playing(){ return player->info.playing; }; bool playing_eof(){ return player->info.eof; }; bool set_input_filename(std::string filename,FILE_TYPE intype);//return false if the file cannot be opened std::string get_input_filename(); std::string get_input_filename_and_info(); std::string get_stretch_info(); std::string get_fftsize_info(); std::string get_fftresolution_info(); double get_stretch(){ return process.stretch; }; double get_onset_detection_sensitivity(){ return process.onset_detection_sensitivity; }; bool is_freeze(){ return player->is_freeze(); }; void set_stretch_controls(double stretch_s,int mode,double fftsize_s,double onset_detection_sensitivity);//*_s sunt de la 0.0 la 1.0 double get_stretch_control(double stretch,int mode); void update_player_stretch(); void set_window_type(FFTWindow window); /// void pre_analyse_whole_audio(InputS *ai); std::string Render(std::string inaudio,std::string outaudio,FILE_TYPE outtype,FILE_TYPE intype, REALTYPE pos1,REALTYPE pos2);//returneaza o eroare sau un string gol (pos1,pos2 are from 0.0 to 1.0) struct { REALTYPE render_percent; bool cancel_render; }info; ProcessParameters ppar; BinauralBeatsParameters bbpar; bool wav32bit; void update_process_parameters();//pt. player struct{ double fftsize_s,stretch_s; int mode_s; }gui_sliders; FFTWindow window_type; private: REALTYPE volume; int get_optimized_updown(int n,bool up); int optimizebufsize(int bufsize); std::string getfftsizestr(int fftsize); struct { int bufsize; double stretch; double onset_detection_sensitivity; }process; struct { int samplerate; int nsamples; std::string filename; FILE_TYPE intype; }wavinfo;//input REALTYPE seek_pos; Player *player; }; #endif