Disable tempo dial while a clip is recording
parent
b084eb8758
commit
860348472d
|
@ -106,6 +106,7 @@ enum EVENT_TYPE {
|
||||||
|
|
||||||
//
|
//
|
||||||
FREE_REC_MODE,
|
FREE_REC_MODE,
|
||||||
|
ENABLE_TEMPO_DIAL,
|
||||||
|
|
||||||
/// Transport etc
|
/// Transport etc
|
||||||
METRONOME_ACTIVE,
|
METRONOME_ACTIVE,
|
||||||
|
@ -1271,6 +1272,21 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class EventEnableTempoDial : public EventBase {
|
||||||
|
public:
|
||||||
|
int type() {
|
||||||
|
return int( ENABLE_TEMPO_DIAL );
|
||||||
|
}
|
||||||
|
uint32_t size() {
|
||||||
|
return sizeof ( EventEnableTempoDial );
|
||||||
|
}
|
||||||
|
bool enable;
|
||||||
|
|
||||||
|
EventEnableTempoDial(bool e) {
|
||||||
|
enable = e;
|
||||||
|
}
|
||||||
|
EventEnableTempoDial (){};
|
||||||
|
};
|
||||||
|
|
||||||
#endif // LOOPP_EVENT_H
|
#endif // LOOPP_EVENT_H
|
||||||
|
|
||||||
|
|
|
@ -152,6 +152,18 @@ void handleGuiEvents()
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case Event::ENABLE_TEMPO_DIAL: {
|
||||||
|
if(availableRead >= sizeof(EventEnableTempoDial)) {
|
||||||
|
EventEnableTempoDial e;
|
||||||
|
jack_ringbuffer_read ( rbToGui,
|
||||||
|
(char *)&e,
|
||||||
|
sizeof (
|
||||||
|
EventEnableTempoDial ) );
|
||||||
|
gui->getMasterTrack ()->enableTempoDial (
|
||||||
|
e.enable );
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case Event::LOOPER_STATE: {
|
case Event::LOOPER_STATE: {
|
||||||
if ( availableRead >= sizeof(EventLooperState) ) {
|
if ( availableRead >= sizeof(EventLooperState) ) {
|
||||||
EventLooperState ev;
|
EventLooperState ev;
|
||||||
|
|
|
@ -430,6 +430,16 @@ void GMasterTrack::enableFreeRecMode ( bool e ) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GMasterTrack::enableTempoDial ( bool e ) {
|
||||||
|
if(e) {
|
||||||
|
tempoDial.activate ();
|
||||||
|
cout << "Enable\n";
|
||||||
|
} else {
|
||||||
|
tempoDial.deactivate ();
|
||||||
|
cout << "Disable\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
float GMasterTrack::getBpm()
|
float GMasterTrack::getBpm()
|
||||||
{
|
{
|
||||||
return bpm;
|
return bpm;
|
||||||
|
|
|
@ -67,6 +67,7 @@ public:
|
||||||
void beatLightEnable(bool b);
|
void beatLightEnable(bool b);
|
||||||
void tempoDialEnable(bool b);
|
void tempoDialEnable(bool b);
|
||||||
void enableFreeRecMode ( bool e );
|
void enableFreeRecMode ( bool e );
|
||||||
|
void enableTempoDial ( bool e );
|
||||||
|
|
||||||
Avtk::Volume *getInputVolume();
|
Avtk::Volume *getInputVolume();
|
||||||
Avtk::Volume* getVolume();
|
Avtk::Volume* getVolume();
|
||||||
|
|
19
src/jack.cxx
19
src/jack.cxx
|
@ -312,6 +312,7 @@ Jack::Jack( std::string name ) :
|
||||||
gui->setupMidiControllers();
|
gui->setupMidiControllers();
|
||||||
|
|
||||||
recordedClips = 0;
|
recordedClips = 0;
|
||||||
|
recordingClips = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Jack::~Jack()
|
Jack::~Jack()
|
||||||
|
@ -808,4 +809,20 @@ void Jack::subRecordedClip () {
|
||||||
EventFreeRecordMode e = EventFreeRecordMode ( false, true );
|
EventFreeRecordMode e = EventFreeRecordMode ( false, true );
|
||||||
writeToGuiRingbuffer ( &e );
|
writeToGuiRingbuffer ( &e );
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void Jack::addRecordingClip() {
|
||||||
|
recordingClips++;
|
||||||
|
if ( recordingClips > 0 ) {
|
||||||
|
EventEnableTempoDial e = EventEnableTempoDial ( false );
|
||||||
|
writeToGuiRingbuffer ( &e );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Jack::subRecordingClip() {
|
||||||
|
recordingClips--;
|
||||||
|
if ( recordingClips == 0 ) {
|
||||||
|
EventEnableTempoDial e = EventEnableTempoDial ( true );
|
||||||
|
writeToGuiRingbuffer ( &e );
|
||||||
|
}
|
||||||
|
}
|
|
@ -157,6 +157,12 @@ public:
|
||||||
void addRecordedClip ();
|
void addRecordedClip ();
|
||||||
void subRecordedClip ();
|
void subRecordedClip ();
|
||||||
|
|
||||||
|
int getRecordingClips () {
|
||||||
|
return recordingClips;
|
||||||
|
};
|
||||||
|
void addRecordingClip ();
|
||||||
|
void subRecordingClip ();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int lastnframes;
|
int lastnframes;
|
||||||
jack_client_t* client;
|
jack_client_t* client;
|
||||||
|
@ -172,6 +178,7 @@ private:
|
||||||
int clipLength;
|
int clipLength;
|
||||||
bool freeRecMode;
|
bool freeRecMode;
|
||||||
unsigned int recordedClips;
|
unsigned int recordedClips;
|
||||||
|
unsigned int recordingClips;
|
||||||
|
|
||||||
vector<Looper*> loopers;
|
vector<Looper*> loopers;
|
||||||
vector<JackSendReturn*> tracksendreturns;
|
vector<JackSendReturn*> tracksendreturns;
|
||||||
|
|
|
@ -94,7 +94,10 @@ void LooperClip::save()
|
||||||
|
|
||||||
void LooperClip::reset()
|
void LooperClip::reset()
|
||||||
{
|
{
|
||||||
if(_loaded) {
|
if ( _recording ) {
|
||||||
|
jack->subRecordingClip ();
|
||||||
|
}
|
||||||
|
if ( _loaded ) {
|
||||||
jack->subRecordedClip ();
|
jack->subRecordedClip ();
|
||||||
}
|
}
|
||||||
init ();
|
init ();
|
||||||
|
@ -378,10 +381,14 @@ void LooperClip::setRecording()
|
||||||
|
|
||||||
jack->getControllerUpdater()->setSceneState(track, scene, getState());
|
jack->getControllerUpdater()->setSceneState(track, scene, getState());
|
||||||
jack->addRecordedClip ();
|
jack->addRecordedClip ();
|
||||||
|
jack->addRecordingClip ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void LooperClip::setPlaying()
|
void LooperClip::setPlaying()
|
||||||
{
|
{
|
||||||
|
if ( _recording ) {
|
||||||
|
jack->subRecordingClip ();
|
||||||
|
}
|
||||||
if ( _loaded ) {
|
if ( _loaded ) {
|
||||||
_playing = true;
|
_playing = true;
|
||||||
_recording = false;
|
_recording = false;
|
||||||
|
|
Loading…
Reference in New Issue