/** * projectM -- Milkdrop-esque visualisation SDK * Copyright (C)2003-2004 projectM Team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * See 'LICENSE.txt' included within this release * */ #include #include "Common.hpp" #include "fatal.h" #include "KeyHandler.hpp" #include "event.h" #include "BeatDetect.hpp" #include "PresetChooser.hpp" #include "Renderer.hpp" #include "projectM.hpp" #include #include "TimeKeeper.hpp" class Preset; interface_t current_interface = DEFAULT_INTERFACE; void selectRandom(const bool hardCut); void selectNext(const bool hardCut); void selectPrevious(const bool hardCut); void refreshConsole() { switch (current_interface) { case MENU_INTERFACE: // unimplemented break; case SHELL_INTERFACE: // unimplemented break; case EDITOR_INTERFACE: // unimplemented break; case DEFAULT_INTERFACE: break; case BROWSER_INTERFACE: // unimplemented break; default: break; } } void projectM::key_handler( projectMEvent event, projectMKeycode keycode, projectMModifier modifier ) { switch( event ) { case PROJECTM_KEYDOWN: //default_key_handler(); switch (current_interface) { case MENU_INTERFACE: // menu_key_handler(this, event, keycode); break; case SHELL_INTERFACE: //shell_key_handler(); break; case EDITOR_INTERFACE: // editor_key_handler(event,keycode); break; case BROWSER_INTERFACE: // browser_key_handler(event,keycode,modifier); break; case DEFAULT_INTERFACE: default_key_handler(event,keycode); break; default: default_key_handler(event,keycode); break; } break; default: break; } } void projectM::default_key_handler( projectMEvent event, projectMKeycode keycode) { switch( event ) { case PROJECTM_KEYDOWN: switch( keycode ) { case PROJECTM_K_UP: beatDetect->beat_sensitivity += 0.25; if (beatDetect->beat_sensitivity > 5.0) beatDetect->beat_sensitivity = 5.0; break; case PROJECTM_K_DOWN: beatDetect->beat_sensitivity -= 0.25; if (beatDetect->beat_sensitivity < 0) beatDetect->beat_sensitivity = 0; break; case PROJECTM_K_h: renderer->showhelp = !renderer->showhelp; renderer->showstats= false; renderer->showfps=false; case PROJECTM_K_F1: renderer->showhelp = !renderer->showhelp; renderer->showstats=false; renderer->showfps=false; break; case PROJECTM_K_y: this->setShuffleEnabled(!this->isShuffleEnabled()); break; case PROJECTM_K_F5: if (!renderer->showhelp) renderer->showfps = !renderer->showfps; break; case PROJECTM_K_F4: if (!renderer->showhelp) renderer->showstats = !renderer->showstats; break; case PROJECTM_K_F3: { renderer->showpreset = !renderer->showpreset; break; } case PROJECTM_K_F2: renderer->showtitle = !renderer->showtitle; break; #ifndef MACOS case PROJECTM_K_F9: #else case PROJECTM_K_F8: #endif renderer->studio = !renderer->studio; break; case PROJECTM_K_ESCAPE: { // exit( 1 ); break; } case PROJECTM_K_f: break; case PROJECTM_K_a: renderer->correction = !renderer->correction; break; case PROJECTM_K_b: break; case PROJECTM_K_n: selectNext(true); break; case PROJECTM_K_N: selectNext(false); break; case PROJECTM_K_r: selectRandom(true); break; case PROJECTM_K_R: selectRandom(false); break; case PROJECTM_K_p: selectPrevious(true); break; case PROJECTM_K_P: selectPrevious(false); break; case PROJECTM_K_l: renderer->noSwitch=!renderer->noSwitch; break; case PROJECTM_K_s: renderer->studio = !renderer->studio; case PROJECTM_K_i: break; case PROJECTM_K_z: break; case PROJECTM_K_0: // nWaveMode=0; break; case PROJECTM_K_6: // nWaveMode=6; break; case PROJECTM_K_7: // nWaveMode=7; break; case PROJECTM_K_m: break; case PROJECTM_K_t: break; default: break; } default: break; } }