From 908bb898782f172f92641fdaecaa80f8b52af005 Mon Sep 17 00:00:00 2001 From: Harry van Haaren Date: Mon, 9 Jan 2017 14:45:47 +0000 Subject: [PATCH] pan: load and save of value implemented (close #164) --- src/controller/controller.hxx | 1 + src/controller/guicontroller.cxx | 6 ++++++ src/controller/guicontroller.hxx | 1 + src/controllerupdater.cxx | 5 +++++ src/controllerupdater.hxx | 2 ++ src/diskreader.cxx | 1 + src/diskwriter.cxx | 1 - src/eventhandlergui.cxx | 8 ++++++++ src/gtrack.hxx | 1 + src/logic.cxx | 2 +- 10 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/controller/controller.hxx b/src/controller/controller.hxx index 21f1217..b577a17 100644 --- a/src/controller/controller.hxx +++ b/src/controller/controller.hxx @@ -84,6 +84,7 @@ public: virtual void specialScene(int t, int scene) {} /// track functionality + virtual void pan(int t, float p) {} virtual void mute(int t, bool b) {} virtual void volume(int t, float f) {} virtual void progress(int t, int s, float f) {} diff --git a/src/controller/guicontroller.cxx b/src/controller/guicontroller.cxx index 2a91f22..ed73729 100644 --- a/src/controller/guicontroller.cxx +++ b/src/controller/guicontroller.cxx @@ -142,6 +142,12 @@ void LupppGUI::volume(int t, float f) writeToGuiRingbuffer( &e ); } +void LupppGUI::pan(int t, float p) +{ + EventTrackPan e( t, p ); + writeToGuiRingbuffer( &e ); +} + void LupppGUI::progress(int t, int s, float f) { EventLooperProgress e( t, f ); diff --git a/src/controller/guicontroller.hxx b/src/controller/guicontroller.hxx index b4cc766..f252894 100644 --- a/src/controller/guicontroller.hxx +++ b/src/controller/guicontroller.hxx @@ -53,6 +53,7 @@ public: void specialScene(int t, int scene); + void pan(int t, float p); void mute(int t, bool b); void volume(int t, float f); void progress(int t, int s, float p); diff --git a/src/controllerupdater.cxx b/src/controllerupdater.cxx index 12a7240..0329830 100644 --- a/src/controllerupdater.cxx +++ b/src/controllerupdater.cxx @@ -172,6 +172,11 @@ void ControllerUpdater::volume(int t, float v) for(unsigned int i = 0; i < c.size(); i++) c.at(i)->volume(t,v); } +void ControllerUpdater::pan(int t, float p) +{ + for(unsigned int i = 0; i < c.size(); i++) c.at(i)->pan(t,p); +} + void ControllerUpdater::tapTempo(bool b) { for(unsigned int i = 0; i < c.size(); i++) c.at(i)->tapTempo(b); diff --git a/src/controllerupdater.hxx b/src/controllerupdater.hxx index c46a050..7146878 100644 --- a/src/controllerupdater.hxx +++ b/src/controllerupdater.hxx @@ -81,6 +81,8 @@ public: void volume(int t, float v); + void pan(int t, float p); + void tapTempo(bool b); void metronomeEnable(bool b); diff --git a/src/diskreader.cxx b/src/diskreader.cxx index 0a7d1f8..71f32cf 100644 --- a/src/diskreader.cxx +++ b/src/diskreader.cxx @@ -599,6 +599,7 @@ int DiskReader::readTracks() } else { EventTrackPan e( t, pan->valuedouble ); writeToDspRingbuffer( &e ); + LUPPP_WARN("Track %i has pan %f", pan->valuedouble); } } // sends diff --git a/src/diskwriter.cxx b/src/diskwriter.cxx index 4f855f0..458c90a 100644 --- a/src/diskwriter.cxx +++ b/src/diskwriter.cxx @@ -396,7 +396,6 @@ int DiskWriter::writeSession() cJSON_AddNumberToObject( track, "fader", gui->getTrack(t)->getVolume()->value() ); cJSON_AddNumberToObject( track, "pan", gui->getTrack(t)->getPan()); - cJSON_AddNumberToObject( track, "sendAmount" , gui->getTrack(t)->getSend() ); cJSON_AddNumberToObject( track, "sendActive" , gui->getTrack(t)->getSendActive() ); diff --git a/src/eventhandlergui.cxx b/src/eventhandlergui.cxx index b8b78fb..e0c836f 100644 --- a/src/eventhandlergui.cxx +++ b/src/eventhandlergui.cxx @@ -178,6 +178,14 @@ void handleGuiEvents() } break; } + case Event::TRACK_PAN: { + if ( availableRead >= sizeof(EventTrackPan) ) { + EventTrackPan ev; + jack_ringbuffer_read( rbToGui, (char*)&ev, sizeof(EventTrackPan) ); + gui->getTrack(ev.track)->setPan( ev.pan ); + } + break; + } case Event::TRACK_RECORD_ARM: { diff --git a/src/gtrack.hxx b/src/gtrack.hxx index 430b331..bf2d3ce 100644 --- a/src/gtrack.hxx +++ b/src/gtrack.hxx @@ -67,6 +67,7 @@ public: float getSend(); float getXSide(); float getPan() {return panDial.value(); } + float setPan(float p) {panDial.value( (p+1.f)*0.5 ); } bool getSendActive(); bool getKeyActive(); diff --git a/src/logic.cxx b/src/logic.cxx index a4ce29d..af35962 100644 --- a/src/logic.cxx +++ b/src/logic.cxx @@ -75,7 +75,7 @@ void Logic::trackPan(int t, float p) { if ( t >= 0 && t < NTRACKS ) { jack->getTrackOutput( t )->setPan( p ); - //jack->getControllerUpdater()->volume( t, v ); + jack->getControllerUpdater()->pan( t, p ); } }