mirror of
https://github.com/vale981/openAV-Luppp
synced 2025-03-06 01:21:38 -05:00
-Refactored GTrack, and privatized its dials / buttons
This commit is contained in:
parent
ee126e4382
commit
c4e70c533f
6 changed files with 98 additions and 54 deletions
|
@ -172,9 +172,13 @@ int DiskWriter::writeSession()
|
||||||
cJSON_AddStringToObject( track, "name", gui->getTrack(t)->bg.getLabel() );
|
cJSON_AddStringToObject( track, "name", gui->getTrack(t)->bg.getLabel() );
|
||||||
|
|
||||||
cJSON_AddNumberToObject( track, "fader", gui->getTrack(t)->getVolume()->value() );
|
cJSON_AddNumberToObject( track, "fader", gui->getTrack(t)->getVolume()->value() );
|
||||||
cJSON_AddNumberToObject( track, "side", gui->getTrack(t)->side.value() );
|
|
||||||
cJSON_AddNumberToObject( track, "post", gui->getTrack(t)->post.value() );
|
|
||||||
cJSON_AddNumberToObject( track, "reverb", gui->getTrack(t)->rev.value() );
|
cJSON_AddNumberToObject( track, "sendAmount" , gui->getTrack(t)->getSend() );
|
||||||
|
cJSON_AddNumberToObject( track, "sendActive" , gui->getTrack(t)->getSendActive() );
|
||||||
|
|
||||||
|
cJSON_AddNumberToObject( track, "xsideAmount", gui->getTrack(t)->getXSide() );
|
||||||
|
cJSON_AddNumberToObject( track, "keyActive" , gui->getTrack(t)->getKeyActive() );
|
||||||
|
|
||||||
// write clipData vector into clip placeholder
|
// write clipData vector into clip placeholder
|
||||||
cJSON* clips = cJSON_CreateArray();
|
cJSON* clips = cJSON_CreateArray();
|
||||||
|
|
|
@ -116,7 +116,7 @@ void handleGuiEvents()
|
||||||
if ( availableRead >= sizeof(EventTrackRecordArm) ) {
|
if ( availableRead >= sizeof(EventTrackRecordArm) ) {
|
||||||
EventTrackRecordArm ev;
|
EventTrackRecordArm ev;
|
||||||
jack_ringbuffer_read( rbToGui, (char*)&ev, sizeof(EventTrackRecordArm) );
|
jack_ringbuffer_read( rbToGui, (char*)&ev, sizeof(EventTrackRecordArm) );
|
||||||
gui->getTrack(ev.track)->recordArm( ev.recordArm );
|
gui->getTrack(ev.track)->setRecordActive( ev.recordArm );
|
||||||
break; }
|
break; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -177,13 +177,14 @@ void handleGuiEvents()
|
||||||
if ( ev.send == SEND_POSTFADER )
|
if ( ev.send == SEND_POSTFADER )
|
||||||
if ( ev.track < NTRACKS )
|
if ( ev.track < NTRACKS )
|
||||||
{
|
{
|
||||||
gui->getTrack(ev.track)->rev.value( ev.value );
|
gui->getTrack(ev.track)->setSend(ev.value );
|
||||||
}
|
}
|
||||||
if ( ev.send == SEND_XSIDE )
|
if ( ev.send == SEND_XSIDE )
|
||||||
if ( ev.track < NTRACKS )
|
if ( ev.track < NTRACKS )
|
||||||
{
|
{
|
||||||
gui->getTrack(ev.track)->post.value( ev.value );
|
gui->getTrack(ev.track)->setXSide( ev.value );
|
||||||
}
|
}
|
||||||
|
/* SEND_KEY is a boolean: on or off: so no value needed
|
||||||
if ( ev.send == SEND_KEY )
|
if ( ev.send == SEND_KEY )
|
||||||
{
|
{
|
||||||
if ( ev.track < NTRACKS )
|
if ( ev.track < NTRACKS )
|
||||||
|
@ -191,6 +192,7 @@ void handleGuiEvents()
|
||||||
gui->getTrack(ev.track)->side.value( ev.value );
|
gui->getTrack(ev.track)->side.value( ev.value );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
} break; }
|
} break; }
|
||||||
|
|
||||||
case Event::TRACK_SEND_ACTIVE: {
|
case Event::TRACK_SEND_ACTIVE: {
|
||||||
|
@ -200,18 +202,20 @@ void handleGuiEvents()
|
||||||
if ( ev.send == SEND_POSTFADER )
|
if ( ev.send == SEND_POSTFADER )
|
||||||
if ( ev.track < NTRACKS )
|
if ( ev.track < NTRACKS )
|
||||||
{
|
{
|
||||||
gui->getTrack(ev.track)->rev.value( ev.active );
|
gui->getTrack(ev.track)->setSendActive(ev.active );
|
||||||
}
|
}
|
||||||
|
/* XSIDE is always active
|
||||||
if ( ev.send == SEND_XSIDE )
|
if ( ev.send == SEND_XSIDE )
|
||||||
if ( ev.track < NTRACKS )
|
if ( ev.track < NTRACKS )
|
||||||
{
|
{
|
||||||
gui->getTrack(ev.track)->post.value( ev.active );
|
//gui->getTrack(ev.track)->( ev.active );
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
if ( ev.send == SEND_KEY )
|
if ( ev.send == SEND_KEY )
|
||||||
{
|
{
|
||||||
if ( ev.track < NTRACKS )
|
if ( ev.track < NTRACKS )
|
||||||
{
|
{
|
||||||
gui->getTrack(ev.track)->side.value( ev.active );
|
gui->getTrack(ev.track)->setKeyActive( ev.active );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} break; }
|
} break; }
|
||||||
|
|
|
@ -3,10 +3,10 @@
|
||||||
#include "gui.hxx"
|
#include "gui.hxx"
|
||||||
|
|
||||||
static void gtrack_vol_cb(Fl_Widget *w, void *data);
|
static void gtrack_vol_cb(Fl_Widget *w, void *data);
|
||||||
static void gtrack_side_cb(Fl_Widget *w, void *data);
|
static void gtrack_key_cb(Fl_Widget *w, void *data);
|
||||||
static void gtrack_post_cb(Fl_Widget *w, void *data);
|
static void gtrack_xsideDial_cb(Fl_Widget *w, void *data);
|
||||||
static void gtrack_reverb_cb(Fl_Widget *w, void *data);
|
static void gtrack_sendDial_cb(Fl_Widget *w, void *data);
|
||||||
static void gtrack_active_cb(Fl_Widget *w, void *data);
|
static void gtrack_send_cb(Fl_Widget *w, void *data);
|
||||||
static void gtrack_record_cb(Fl_Widget *w, void *data);
|
static void gtrack_record_cb(Fl_Widget *w, void *data);
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,30 +22,34 @@ GTrack::GTrack(int x, int y, int w, int h, const char* l ) :
|
||||||
volume(x+66, y +425, 36, 166, ""),
|
volume(x+66, y +425, 36, 166, ""),
|
||||||
|
|
||||||
|
|
||||||
active (x+11, y +430 + 32, 50, 25, "Snd"), // active
|
sendDial (x+21, y +430 + 0, 30, 30, ""),
|
||||||
|
sendActive (x+11, y +430 + 32, 50, 25, "Snd"),
|
||||||
|
|
||||||
side (x+11, y +430 + 101, 50, 25, "Key"),
|
xsideDial (x+21, y +430 + 69, 30, 30, ""),
|
||||||
|
keyActive (x+11, y +430 + 101, 50, 25, "Key"),
|
||||||
|
|
||||||
recEnable(x+11, y +430 + 132, 50, 25, "Rec"), // record
|
recordActive (x+11, y +430 + 132, 50, 25, "Rec")
|
||||||
post (x+21, y +430 + 69, 30, 30, ""),
|
|
||||||
|
|
||||||
rev (x+21, y +430 + 0, 30, 30, "")
|
|
||||||
{
|
{
|
||||||
ID = privateID++;
|
ID = privateID++;
|
||||||
|
|
||||||
clipSel.setID( ID );
|
clipSel.setID( ID );
|
||||||
|
|
||||||
side.callback( gtrack_side_cb, this );
|
sendDial.callback( gtrack_sendDial_cb, this );
|
||||||
side.setColor( 0, 0.6, 1 );
|
sendActive.setColor( 0, 1.0, 0.0 );
|
||||||
|
sendActive.callback( gtrack_send_cb, this );
|
||||||
|
|
||||||
active.setColor( 0, 1.0, 0.0 );
|
xsideDial.callback( gtrack_xsideDial_cb, this );
|
||||||
active.callback( gtrack_active_cb, this );
|
xsideDial.align( FL_ALIGN_BOTTOM );
|
||||||
recEnable.setColor( 1, 0.0, 0.0 );
|
keyActive.callback( gtrack_key_cb, this );
|
||||||
recEnable.callback( gtrack_record_cb, this );
|
keyActive.setColor( 0, 0.6, 1 );
|
||||||
|
|
||||||
rev.callback( gtrack_reverb_cb, this );
|
|
||||||
post.callback( gtrack_post_cb, this );
|
recordActive.setColor( 1, 0.0, 0.0 );
|
||||||
post.align( FL_ALIGN_BOTTOM );
|
recordActive.callback( gtrack_record_cb, this );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
volume.callback( gtrack_vol_cb, this );
|
volume.callback( gtrack_vol_cb, this );
|
||||||
|
|
||||||
|
@ -57,7 +61,23 @@ GTrack::GTrack(int x, int y, int w, int h, const char* l ) :
|
||||||
end(); // close the group
|
end(); // close the group
|
||||||
}
|
}
|
||||||
|
|
||||||
void gtrack_reverb_cb(Fl_Widget *w, void *data)
|
float GTrack::getSend(){return sendDial.value(); }
|
||||||
|
float GTrack::getXSide(){return xsideDial.value(); }
|
||||||
|
|
||||||
|
bool GTrack::getSendActive (){return sendActive.value(); }
|
||||||
|
bool GTrack::getKeyActive (){return keyActive.value(); }
|
||||||
|
bool GTrack::getRecordActive(){return recordActive.value(); }
|
||||||
|
|
||||||
|
|
||||||
|
void GTrack::setSend(float s){ sendDial.value( s ); }
|
||||||
|
void GTrack::setXSide(float s){ xsideDial.value( s ); }
|
||||||
|
|
||||||
|
void GTrack::setSendActive(bool a){ sendActive.value( a ); }
|
||||||
|
void GTrack::setKeyActive(bool a){ keyActive.value( a ); }
|
||||||
|
void GTrack::setRecordActive(bool a){ recordActive.value( a ); }
|
||||||
|
|
||||||
|
|
||||||
|
void gtrack_sendDial_cb(Fl_Widget *w, void *data)
|
||||||
{
|
{
|
||||||
GTrack* track = (GTrack*) data;
|
GTrack* track = (GTrack*) data;
|
||||||
EventTrackSend e( track->ID, SEND_POSTFADER, ((Avtk::Dial*)w)->value() );
|
EventTrackSend e( track->ID, SEND_POSTFADER, ((Avtk::Dial*)w)->value() );
|
||||||
|
@ -66,7 +86,7 @@ void gtrack_reverb_cb(Fl_Widget *w, void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void gtrack_side_cb(Fl_Widget *w, void *data)
|
void gtrack_key_cb(Fl_Widget *w, void *data)
|
||||||
{
|
{
|
||||||
GTrack* track = (GTrack*) data;
|
GTrack* track = (GTrack*) data;
|
||||||
Avtk::LightButton* d = (Avtk::LightButton*)w;
|
Avtk::LightButton* d = (Avtk::LightButton*)w;
|
||||||
|
@ -85,7 +105,7 @@ void gtrack_side_cb(Fl_Widget *w, void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void gtrack_post_cb(Fl_Widget *w, void *data)
|
void gtrack_xsideDial_cb(Fl_Widget *w, void *data)
|
||||||
{
|
{
|
||||||
GTrack* track = (GTrack*) data;
|
GTrack* track = (GTrack*) data;
|
||||||
EventTrackSend e( track->ID, SEND_XSIDE, ((Avtk::Dial*)w)->value() );
|
EventTrackSend e( track->ID, SEND_XSIDE, ((Avtk::Dial*)w)->value() );
|
||||||
|
@ -102,7 +122,7 @@ void gtrack_vol_cb(Fl_Widget *w, void *data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void gtrack_active_cb(Fl_Widget *w, void *data)
|
void gtrack_send_cb(Fl_Widget *w, void *data)
|
||||||
{
|
{
|
||||||
GTrack* track = (GTrack*) data;
|
GTrack* track = (GTrack*) data;
|
||||||
Avtk::LightButton* d = (Avtk::LightButton*)w;
|
Avtk::LightButton* d = (Avtk::LightButton*)w;
|
||||||
|
@ -138,7 +158,3 @@ void gtrack_record_cb(Fl_Widget *w, void *data)
|
||||||
printf("track %i record Arm %s\n", track->ID, b ? "off" : "on" );
|
printf("track %i record Arm %s\n", track->ID, b ? "off" : "on" );
|
||||||
}
|
}
|
||||||
|
|
||||||
void GTrack::recordArm(bool b)
|
|
||||||
{
|
|
||||||
recEnable.value( b );
|
|
||||||
}
|
|
||||||
|
|
|
@ -35,8 +35,24 @@ class GTrack : public Fl_Group
|
||||||
|
|
||||||
GTrack(int x, int y, int w, int h, const char* l = 0 );
|
GTrack(int x, int y, int w, int h, const char* l = 0 );
|
||||||
|
|
||||||
void recordArm(bool b);
|
|
||||||
|
|
||||||
|
// getters
|
||||||
|
float getSend();
|
||||||
|
float getXSide();
|
||||||
|
|
||||||
|
bool getSendActive();
|
||||||
|
bool getKeyActive();
|
||||||
|
bool getRecordActive();
|
||||||
|
|
||||||
|
// setters
|
||||||
|
void setSend(float s);
|
||||||
|
void setXSide(float s);
|
||||||
|
|
||||||
|
void setSendActive(bool a);
|
||||||
|
void setKeyActive(bool a);
|
||||||
|
void setRecordActive(bool a);
|
||||||
|
|
||||||
|
|
||||||
int ID;
|
int ID;
|
||||||
|
|
||||||
Avtk::Background bg;
|
Avtk::Background bg;
|
||||||
|
@ -49,11 +65,15 @@ class GTrack : public Fl_Group
|
||||||
|
|
||||||
Avtk::Volume volume;
|
Avtk::Volume volume;
|
||||||
|
|
||||||
Avtk::LightButton active;
|
private:
|
||||||
Avtk::LightButton side;
|
Avtk::Dial sendDial;
|
||||||
Avtk::LightButton recEnable;
|
Avtk::LightButton sendActive;
|
||||||
Avtk::Dial post;
|
|
||||||
Avtk::Dial rev;
|
Avtk::Dial xsideDial;
|
||||||
|
Avtk::LightButton keyActive;
|
||||||
|
|
||||||
|
Avtk::LightButton recordActive;
|
||||||
|
|
||||||
|
|
||||||
static int privateID;
|
static int privateID;
|
||||||
};
|
};
|
||||||
|
|
|
@ -22,9 +22,9 @@ TrackOutput::TrackOutput(int t, AudioProcessor* ap) :
|
||||||
_toSidechain = 0.0;
|
_toSidechain = 0.0;
|
||||||
_toPostSidechain = 0.0;
|
_toPostSidechain = 0.0;
|
||||||
|
|
||||||
_toReverbActive = 0;
|
_toPostfaderActive = 0;
|
||||||
_toSidechainActive = 0;
|
_toKeyActive = 0;
|
||||||
_toPostSidechainActive = 0;
|
_toXSideActive = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,13 +54,13 @@ void TrackOutput::setSendActive( int send, bool a )
|
||||||
switch( send )
|
switch( send )
|
||||||
{
|
{
|
||||||
case SEND_POSTFADER:
|
case SEND_POSTFADER:
|
||||||
_toReverbActive = a;
|
_toPostfaderActive = a;
|
||||||
break;
|
break;
|
||||||
case SEND_KEY:
|
case SEND_KEY:
|
||||||
_toSidechainActive = a;
|
_toKeyActive = a;
|
||||||
break;
|
break;
|
||||||
case SEND_XSIDE:
|
case SEND_XSIDE:
|
||||||
_toPostSidechainActive = a;
|
_toXSideActive = a;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -122,14 +122,14 @@ void TrackOutput::process(unsigned int nframes, Buffers* buffers)
|
||||||
masterL[i] += tmp * _toMaster * (1-_toPostSidechain);
|
masterL[i] += tmp * _toMaster * (1-_toPostSidechain);
|
||||||
masterR[i] += tmp * _toMaster * (1-_toPostSidechain);
|
masterR[i] += tmp * _toMaster * (1-_toPostSidechain);
|
||||||
|
|
||||||
if ( _toReverbActive )
|
if ( _toPostfaderActive )
|
||||||
reverb[i] += tmp * _toReverb * _toMaster;
|
reverb[i] += tmp * _toReverb * _toMaster;
|
||||||
|
|
||||||
if ( _toPostSidechainActive )
|
if ( _toXSideActive )
|
||||||
postSidechain[i] += tmp * _toPostSidechain * _toMaster;
|
postSidechain[i] += tmp * _toPostSidechain * _toMaster;
|
||||||
|
|
||||||
// turning down an element in the mix should *NOT* influence sidechaining
|
// turning down an element in the mix should *NOT* influence sidechaining
|
||||||
if ( _toSidechainActive )
|
if ( _toKeyActive )
|
||||||
sidechain[i] += tmp;
|
sidechain[i] += tmp;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,9 +49,9 @@ class TrackOutput : public AudioProcessor
|
||||||
float _toSidechain;
|
float _toSidechain;
|
||||||
float _toPostSidechain;
|
float _toPostSidechain;
|
||||||
|
|
||||||
bool _toReverbActive;
|
bool _toPostfaderActive;
|
||||||
bool _toSidechainActive;
|
bool _toKeyActive;
|
||||||
bool _toPostSidechainActive;
|
bool _toXSideActive;
|
||||||
|
|
||||||
/// Pointer to "previous" processor: the graph is backwards
|
/// Pointer to "previous" processor: the graph is backwards
|
||||||
AudioProcessor* previousInChain;
|
AudioProcessor* previousInChain;
|
||||||
|
|
Loading…
Add table
Reference in a new issue