From e5d63bd68e622fe7b004a90ed50ac31b2126648f Mon Sep 17 00:00:00 2001 From: Harry van Haaren Date: Sun, 8 Jun 2014 16:40:47 +0100 Subject: [PATCH] -Arrow keys on keyboard move speical clip (thanks to ZTH for request) --- src/eventhandlergui.cxx | 2 ++ src/gridlogic.cxx | 6 ++++++ src/gui.cxx | 10 +++++++++- src/gui.hxx | 6 ++++++ 4 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/eventhandlergui.cxx b/src/eventhandlergui.cxx index 63895a7..d60ea2c 100644 --- a/src/eventhandlergui.cxx +++ b/src/eventhandlergui.cxx @@ -224,6 +224,8 @@ void handleGuiEvents() { gui->getTrack(i)->getClipSelector()->setSpecial( i == ev.track ? ev.scene : -1 ); } + gui->specialTrack = ev.track; + gui->specialScene = ev.scene; } break; } diff --git a/src/gridlogic.cxx b/src/gridlogic.cxx index ceb7458..2d07d9a 100644 --- a/src/gridlogic.cxx +++ b/src/gridlogic.cxx @@ -126,6 +126,12 @@ void GridLogic::launchScene( int scene ) void GridLogic::specialScene(int t, int s) { + if ( t < 0 ) t = 0; + if ( t >= NTRACKS ) t = NTRACKS-1; + + if ( s < 0 ) s = 0; + if ( s >= NSCENES ) s = NSCENES-1; + selectedTrack = t; selectedScene = s; diff --git a/src/gui.cxx b/src/gui.cxx index 0bee647..c69a6ab 100644 --- a/src/gui.cxx +++ b/src/gui.cxx @@ -425,7 +425,9 @@ Gui::Gui(const char* argZero) : window.end(); - tracks.at(0)->getClipSelector()->setSpecial( 0 ); + specialTrack = 0; + specialScene = 0; + tracks.at( specialTrack )->getClipSelector()->setSpecial( specialScene ); optionWindow = new OptionsWindow(); @@ -649,6 +651,12 @@ int Gui::keyboardHandler(int event) } } + // keyboard arrows to special key mapping + if ( Fl::event_key( FL_Left ) ) { EventGridSelectNewChosen e( gui->specialTrack-1, gui->specialScene ); writeToDspRingbuffer( &e ); return 1; } + if ( Fl::event_key( FL_Right ) ) { EventGridSelectNewChosen e( gui->specialTrack+1, gui->specialScene ); writeToDspRingbuffer( &e ); return 1; } + if ( Fl::event_key( FL_Up ) ) { EventGridSelectNewChosen e( gui->specialTrack , gui->specialScene-1); writeToDspRingbuffer( &e ); return 1; } + if ( Fl::event_key( FL_Down ) ) { EventGridSelectNewChosen e( gui->specialTrack , gui->specialScene+1); writeToDspRingbuffer( &e ); return 1; } + return 0; } diff --git a/src/gui.hxx b/src/gui.hxx index 70d102c..18780d7 100644 --- a/src/gui.hxx +++ b/src/gui.hxx @@ -86,6 +86,12 @@ class Gui int getWindowWidth(){return window.w();} nsm_client_t* getNsm(){return nsm;} + + + /// current special clip: + int specialTrack; + int specialScene; + private: vector controllerVector;