Disable Free Mode if >= 1 Clip is recorded
parent
74e5ab65bd
commit
d210216c72
|
@ -896,6 +896,7 @@ public:
|
||||||
class EventFreeRecordMode : public EventBase {
|
class EventFreeRecordMode : public EventBase {
|
||||||
public:
|
public:
|
||||||
static const char *prettyName;
|
static const char *prettyName;
|
||||||
|
bool active;
|
||||||
bool enable;
|
bool enable;
|
||||||
|
|
||||||
const char *name() {
|
const char *name() {
|
||||||
|
@ -911,10 +912,17 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
EventFreeRecordMode() {
|
EventFreeRecordMode() {
|
||||||
|
active = true;
|
||||||
enable = true;
|
enable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
EventFreeRecordMode(bool e) {
|
EventFreeRecordMode(bool a) {
|
||||||
|
active = a;
|
||||||
|
enable = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
EventFreeRecordMode ( bool a, bool e ) {
|
||||||
|
active = a;
|
||||||
enable = e;
|
enable = e;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -294,7 +294,9 @@ void handleDspEvents()
|
||||||
jack_ringbuffer_read(rbToDsp,
|
jack_ringbuffer_read(rbToDsp,
|
||||||
(char *)&e,
|
(char *)&e,
|
||||||
sizeof(EventFreeRecordMode));
|
sizeof(EventFreeRecordMode));
|
||||||
jack->setFreeRecMode(e.enable);
|
if(jack->getRecordedClips() == 0)
|
||||||
|
jack->setFreeRecMode (
|
||||||
|
e.active );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -143,12 +143,12 @@ void handleGuiEvents()
|
||||||
sizeof(EventFreeRecordMode));
|
sizeof(EventFreeRecordMode));
|
||||||
GMasterTrack *gm =
|
GMasterTrack *gm =
|
||||||
gui->getMasterTrack();
|
gui->getMasterTrack();
|
||||||
gm->setFreeRecMode(
|
gm->setFreeRecMode ( e.active );
|
||||||
e.enable);
|
gm->metronomeEnable ( !e.active );
|
||||||
gm->metronomeEnable(!e.enable);
|
gm->tapEnable ( !e.active );
|
||||||
gm->tapEnable(!e.enable);
|
gm->beatLightEnable ( !e.active );
|
||||||
gm->beatLightEnable(!e.enable);
|
gm->tempoDialEnable ( !e.active );
|
||||||
gm->tempoDialEnable(!e.enable);
|
gm->enableFreeRecMode ( e.enable );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -422,6 +422,14 @@ void GMasterTrack::setFreeRecMode(bool e) {
|
||||||
freeRec.value(e);
|
freeRec.value(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GMasterTrack::enableFreeRecMode ( bool e ) {
|
||||||
|
if ( e ) {
|
||||||
|
freeRec.activate ();
|
||||||
|
} else {
|
||||||
|
freeRec.deactivate ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
float GMasterTrack::getBpm()
|
float GMasterTrack::getBpm()
|
||||||
{
|
{
|
||||||
return bpm;
|
return bpm;
|
||||||
|
|
|
@ -66,6 +66,7 @@ public:
|
||||||
void tapEnable(bool b);
|
void tapEnable(bool b);
|
||||||
void beatLightEnable(bool b);
|
void beatLightEnable(bool b);
|
||||||
void tempoDialEnable(bool b);
|
void tempoDialEnable(bool b);
|
||||||
|
void enableFreeRecMode ( bool e );
|
||||||
|
|
||||||
Avtk::Volume *getInputVolume();
|
Avtk::Volume *getInputVolume();
|
||||||
Avtk::Volume* getVolume();
|
Avtk::Volume* getVolume();
|
||||||
|
|
|
@ -222,7 +222,7 @@ void GridLogic::pressed( int track, int scene )
|
||||||
|
|
||||||
void GridLogic::clear( int track, int scene )
|
void GridLogic::clear( int track, int scene )
|
||||||
{
|
{
|
||||||
jack->getLooper( track )->getClip( scene )->init();
|
jack->getLooper( track )->getClip( scene )->reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
void GridLogic::released( int track, int scene )
|
void GridLogic::released( int track, int scene )
|
||||||
|
|
20
src/jack.cxx
20
src/jack.cxx
|
@ -311,6 +311,7 @@ Jack::Jack( std::string name ) :
|
||||||
// call into the GUI, telling it to register default controllers
|
// call into the GUI, telling it to register default controllers
|
||||||
gui->setupMidiControllers();
|
gui->setupMidiControllers();
|
||||||
|
|
||||||
|
recordedClips = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
Jack::~Jack()
|
Jack::~Jack()
|
||||||
|
@ -792,4 +793,21 @@ void Jack::setFreeRecMode(bool e)
|
||||||
writeToGuiRingbuffer(&ev);
|
writeToGuiRingbuffer(&ev);
|
||||||
if(e)
|
if(e)
|
||||||
getLogic()->metronomeEnable(false);
|
getLogic()->metronomeEnable(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Jack::addRecordedClip () {
|
||||||
|
recordedClips++;
|
||||||
|
cout << "Recorded Clips: " << recordedClips << "\n";
|
||||||
|
if ( recordedClips > 0 ) {
|
||||||
|
EventFreeRecordMode e = EventFreeRecordMode ( false, false );
|
||||||
|
writeToGuiRingbuffer ( &e );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
void Jack::subRecordedClip () {
|
||||||
|
recordedClips--;
|
||||||
|
cout << "Recorded Clips: " << recordedClips << "\n";
|
||||||
|
if ( recordedClips == 0 ) {
|
||||||
|
EventFreeRecordMode e = EventFreeRecordMode ( false, true );
|
||||||
|
writeToGuiRingbuffer ( &e );
|
||||||
|
}
|
||||||
|
};
|
|
@ -149,6 +149,14 @@ public:
|
||||||
JackSendReturn *getJackSendReturn(int t);
|
JackSendReturn *getJackSendReturn(int t);
|
||||||
|
|
||||||
float smoothing_value;
|
float smoothing_value;
|
||||||
|
|
||||||
|
// Functions to count number of clips
|
||||||
|
int getRecordedClips () {
|
||||||
|
return recordedClips;
|
||||||
|
};
|
||||||
|
void addRecordedClip ();
|
||||||
|
void subRecordedClip ();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int lastnframes;
|
int lastnframes;
|
||||||
jack_client_t* client;
|
jack_client_t* client;
|
||||||
|
@ -163,6 +171,7 @@ private:
|
||||||
|
|
||||||
int clipLength;
|
int clipLength;
|
||||||
bool freeRecMode;
|
bool freeRecMode;
|
||||||
|
unsigned int recordedClips;
|
||||||
|
|
||||||
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()
|
||||||
{
|
{
|
||||||
init();
|
if(_loaded) {
|
||||||
|
jack->subRecordedClip ();
|
||||||
|
}
|
||||||
|
init ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// loads a sample: eg from disk, unloading current sample if necessary
|
/// loads a sample: eg from disk, unloading current sample if necessary
|
||||||
|
@ -374,6 +377,7 @@ void LooperClip::setRecording()
|
||||||
}
|
}
|
||||||
|
|
||||||
jack->getControllerUpdater()->setSceneState(track, scene, getState());
|
jack->getControllerUpdater()->setSceneState(track, scene, getState());
|
||||||
|
jack->addRecordedClip ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void LooperClip::setPlaying()
|
void LooperClip::setPlaying()
|
||||||
|
|
Loading…
Reference in New Issue