diff --git a/src/event.hxx b/src/event.hxx index 81587cc..54a0e0c 100644 --- a/src/event.hxx +++ b/src/event.hxx @@ -30,6 +30,8 @@ namespace Event MASTER_VOL, RECORD, + SAVE, + GRID_EVENT, // press / release events GRID_STATE, // state of one block GRID_LAUNCH_SCENE, @@ -102,6 +104,15 @@ class EventTrackVol : public EventBase } }; +class EventSave : public EventBase +{ + public: + int type() { return int(SAVE); } + uint32_t size() { return sizeof(EventSave); } + + EventSave(){}; +}; + class EventGridEvent : public EventBase { public: diff --git a/src/eventhandlerdsp.cxx b/src/eventhandlerdsp.cxx index 8025937..3944090 100644 --- a/src/eventhandlerdsp.cxx +++ b/src/eventhandlerdsp.cxx @@ -34,6 +34,13 @@ void handleDspEvents() { switch ( e->type() ) { + case Event::SAVE: { + if ( availableRead >= sizeof(EventMasterVol) ) { + EventMasterVol ev(0); + jack_ringbuffer_read( rbToDsp, (char*)&ev, sizeof(EventMasterVol) ); + jack->getSave()->save(); + } break; } + case Event::MASTER_VOL: { if ( availableRead >= sizeof(EventMasterVol) ) { EventMasterVol ev(0); diff --git a/src/looperclip.cxx b/src/looperclip.cxx index bad62c4..ee207ae 100644 --- a/src/looperclip.cxx +++ b/src/looperclip.cxx @@ -30,6 +30,15 @@ LooperClip::LooperClip(int t, int s) : _recordhead = 0; } + +void LooperClip::save() +{ + char buffer [50]; + sprintf (buffer, "LooperClip::save() track %i, scene %i", track,scene); + EventGuiPrint e( buffer ); + writeToGuiRingbuffer( &e ); +} + /// loads a sample: eg from disk, unloading current sample if necessary void LooperClip::load( AudioBuffer* ab ) { diff --git a/src/looperclip.hxx b/src/looperclip.hxx index 543a1c8..ccc15c5 100644 --- a/src/looperclip.hxx +++ b/src/looperclip.hxx @@ -42,6 +42,9 @@ class LooperClip : public SaveAble /// TimeObserver overrides void bar(); + /// SaveAble overrides + void save(); + /// analyses current _playing _recording vars, returns the current State GridLogic::State getState(); bool playing(); diff --git a/src/save/save.cxx b/src/save/save.cxx index 1ef85ab..3feee9e 100644 --- a/src/save/save.cxx +++ b/src/save/save.cxx @@ -18,6 +18,7 @@ void Save::registerSaveable(SaveAble* s) void Save::save() { + cout << " Save::save() " << endl; for( unsigned int i = 0; i < saveables.size(); i++) { saveables.at(i)->save();