mirror of
https://github.com/vale981/openAV-Luppp
synced 2025-03-05 17:11:40 -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_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
|
||||
cJSON* clips = cJSON_CreateArray();
|
||||
|
|
|
@ -116,7 +116,7 @@ void handleGuiEvents()
|
|||
if ( availableRead >= sizeof(EventTrackRecordArm) ) {
|
||||
EventTrackRecordArm ev;
|
||||
jack_ringbuffer_read( rbToGui, (char*)&ev, sizeof(EventTrackRecordArm) );
|
||||
gui->getTrack(ev.track)->recordArm( ev.recordArm );
|
||||
gui->getTrack(ev.track)->setRecordActive( ev.recordArm );
|
||||
break; }
|
||||
}
|
||||
|
||||
|
@ -177,13 +177,14 @@ void handleGuiEvents()
|
|||
if ( ev.send == SEND_POSTFADER )
|
||||
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.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.track < NTRACKS )
|
||||
|
@ -191,6 +192,7 @@ void handleGuiEvents()
|
|||
gui->getTrack(ev.track)->side.value( ev.value );
|
||||
}
|
||||
}
|
||||
*/
|
||||
} break; }
|
||||
|
||||
case Event::TRACK_SEND_ACTIVE: {
|
||||
|
@ -200,18 +202,20 @@ void handleGuiEvents()
|
|||
if ( ev.send == SEND_POSTFADER )
|
||||
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.track < NTRACKS )
|
||||
{
|
||||
gui->getTrack(ev.track)->post.value( ev.active );
|
||||
//gui->getTrack(ev.track)->( ev.active );
|
||||
}
|
||||
*/
|
||||
if ( ev.send == SEND_KEY )
|
||||
{
|
||||
if ( ev.track < NTRACKS )
|
||||
{
|
||||
gui->getTrack(ev.track)->side.value( ev.active );
|
||||
gui->getTrack(ev.track)->setKeyActive( ev.active );
|
||||
}
|
||||
}
|
||||
} break; }
|
||||
|
|
|
@ -3,10 +3,10 @@
|
|||
#include "gui.hxx"
|
||||
|
||||
static void gtrack_vol_cb(Fl_Widget *w, void *data);
|
||||
static void gtrack_side_cb(Fl_Widget *w, void *data);
|
||||
static void gtrack_post_cb(Fl_Widget *w, void *data);
|
||||
static void gtrack_reverb_cb(Fl_Widget *w, void *data);
|
||||
static void gtrack_active_cb(Fl_Widget *w, void *data);
|
||||
static void gtrack_key_cb(Fl_Widget *w, void *data);
|
||||
static void gtrack_xsideDial_cb(Fl_Widget *w, void *data);
|
||||
static void gtrack_sendDial_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);
|
||||
|
||||
|
||||
|
@ -22,30 +22,34 @@ GTrack::GTrack(int x, int y, int w, int h, const char* l ) :
|
|||
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
|
||||
post (x+21, y +430 + 69, 30, 30, ""),
|
||||
|
||||
rev (x+21, y +430 + 0, 30, 30, "")
|
||||
recordActive (x+11, y +430 + 132, 50, 25, "Rec")
|
||||
{
|
||||
ID = privateID++;
|
||||
|
||||
clipSel.setID( ID );
|
||||
|
||||
side.callback( gtrack_side_cb, this );
|
||||
side.setColor( 0, 0.6, 1 );
|
||||
sendDial.callback( gtrack_sendDial_cb, this );
|
||||
sendActive.setColor( 0, 1.0, 0.0 );
|
||||
sendActive.callback( gtrack_send_cb, this );
|
||||
|
||||
active.setColor( 0, 1.0, 0.0 );
|
||||
active.callback( gtrack_active_cb, this );
|
||||
recEnable.setColor( 1, 0.0, 0.0 );
|
||||
recEnable.callback( gtrack_record_cb, this );
|
||||
xsideDial.callback( gtrack_xsideDial_cb, this );
|
||||
xsideDial.align( FL_ALIGN_BOTTOM );
|
||||
keyActive.callback( gtrack_key_cb, this );
|
||||
keyActive.setColor( 0, 0.6, 1 );
|
||||
|
||||
rev.callback( gtrack_reverb_cb, this );
|
||||
post.callback( gtrack_post_cb, this );
|
||||
post.align( FL_ALIGN_BOTTOM );
|
||||
|
||||
recordActive.setColor( 1, 0.0, 0.0 );
|
||||
recordActive.callback( gtrack_record_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
|
||||
}
|
||||
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
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" );
|
||||
}
|
||||
|
||||
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 );
|
||||
|
||||
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;
|
||||
|
||||
Avtk::Background bg;
|
||||
|
@ -49,11 +65,15 @@ class GTrack : public Fl_Group
|
|||
|
||||
Avtk::Volume volume;
|
||||
|
||||
Avtk::LightButton active;
|
||||
Avtk::LightButton side;
|
||||
Avtk::LightButton recEnable;
|
||||
Avtk::Dial post;
|
||||
Avtk::Dial rev;
|
||||
private:
|
||||
Avtk::Dial sendDial;
|
||||
Avtk::LightButton sendActive;
|
||||
|
||||
Avtk::Dial xsideDial;
|
||||
Avtk::LightButton keyActive;
|
||||
|
||||
Avtk::LightButton recordActive;
|
||||
|
||||
|
||||
static int privateID;
|
||||
};
|
||||
|
|
|
@ -22,9 +22,9 @@ TrackOutput::TrackOutput(int t, AudioProcessor* ap) :
|
|||
_toSidechain = 0.0;
|
||||
_toPostSidechain = 0.0;
|
||||
|
||||
_toReverbActive = 0;
|
||||
_toSidechainActive = 0;
|
||||
_toPostSidechainActive = 0;
|
||||
_toPostfaderActive = 0;
|
||||
_toKeyActive = 0;
|
||||
_toXSideActive = 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -54,13 +54,13 @@ void TrackOutput::setSendActive( int send, bool a )
|
|||
switch( send )
|
||||
{
|
||||
case SEND_POSTFADER:
|
||||
_toReverbActive = a;
|
||||
_toPostfaderActive = a;
|
||||
break;
|
||||
case SEND_KEY:
|
||||
_toSidechainActive = a;
|
||||
_toKeyActive = a;
|
||||
break;
|
||||
case SEND_XSIDE:
|
||||
_toPostSidechainActive = a;
|
||||
_toXSideActive = a;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -122,14 +122,14 @@ void TrackOutput::process(unsigned int nframes, Buffers* buffers)
|
|||
masterL[i] += tmp * _toMaster * (1-_toPostSidechain);
|
||||
masterR[i] += tmp * _toMaster * (1-_toPostSidechain);
|
||||
|
||||
if ( _toReverbActive )
|
||||
if ( _toPostfaderActive )
|
||||
reverb[i] += tmp * _toReverb * _toMaster;
|
||||
|
||||
if ( _toPostSidechainActive )
|
||||
if ( _toXSideActive )
|
||||
postSidechain[i] += tmp * _toPostSidechain * _toMaster;
|
||||
|
||||
// turning down an element in the mix should *NOT* influence sidechaining
|
||||
if ( _toSidechainActive )
|
||||
if ( _toKeyActive )
|
||||
sidechain[i] += tmp;
|
||||
|
||||
}
|
||||
|
|
|
@ -49,9 +49,9 @@ class TrackOutput : public AudioProcessor
|
|||
float _toSidechain;
|
||||
float _toPostSidechain;
|
||||
|
||||
bool _toReverbActive;
|
||||
bool _toSidechainActive;
|
||||
bool _toPostSidechainActive;
|
||||
bool _toPostfaderActive;
|
||||
bool _toKeyActive;
|
||||
bool _toXSideActive;
|
||||
|
||||
/// Pointer to "previous" processor: the graph is backwards
|
||||
AudioProcessor* previousInChain;
|
||||
|
|
Loading…
Add table
Reference in a new issue