mirror of
https://github.com/vale981/openAV-Luppp
synced 2025-03-05 17:11:40 -05:00
-Implemented DSP / events for Input send handling, updated UI
This commit is contained in:
parent
6c0e72353f
commit
f1c5f55f80
7 changed files with 70 additions and 17 deletions
|
@ -31,8 +31,9 @@ namespace Event
|
|||
};
|
||||
enum INPUT_TO
|
||||
{
|
||||
INPUT_TO_RECORD = 0,
|
||||
INPUT_TO_SEND = 0,
|
||||
INPUT_TO_MIX,
|
||||
INPUT_TO_XSIDE,
|
||||
};
|
||||
|
||||
enum {
|
||||
|
@ -96,9 +97,10 @@ class EventMasterInputTo : public EventBase
|
|||
int type() { return int(MASTER_INPUT_TO); }
|
||||
uint32_t size() { return sizeof(EventMasterInputTo); }
|
||||
|
||||
int send;
|
||||
float vol;
|
||||
EventMasterInputTo(int s, float v) : send(s), vol(v){}
|
||||
INPUT_TO place;
|
||||
float value;
|
||||
EventMasterInputTo() : value(-1){}
|
||||
EventMasterInputTo(INPUT_TO p, float v) : place(p), value(v){}
|
||||
};
|
||||
|
||||
class EventMasterVol : public EventBase
|
||||
|
|
|
@ -60,6 +60,12 @@ void handleDspEvents()
|
|||
jack_ringbuffer_read( rbToDsp, (char*)&ev, sizeof(EventMasterReturn) );
|
||||
//jack->getLogic()->trackSend( ev.track, ev.send, ev.value );
|
||||
} break; }
|
||||
case Event::MASTER_INPUT_TO: {
|
||||
if ( availableRead >= sizeof(EventMasterInputTo) ) {
|
||||
EventMasterInputTo ev;
|
||||
jack_ringbuffer_read( rbToDsp, (char*)&ev, sizeof(EventMasterInputTo) );
|
||||
jack->getLogic()->masterInputTo( ev.place, ev.value );
|
||||
} break; }
|
||||
|
||||
// ========= GRID =====
|
||||
case Event::GRID_EVENT: {
|
||||
|
@ -144,6 +150,7 @@ void handleDspEvents()
|
|||
jack->getLogic()->trackVolume( ev.track, ev.vol );
|
||||
break; }
|
||||
}
|
||||
|
||||
case Event::TRACK_SEND: {
|
||||
if ( availableRead >= sizeof(EventTrackSend) ) {
|
||||
EventTrackSend ev;
|
||||
|
|
|
@ -17,20 +17,20 @@ static void gmastertrack_volume_callback(Fl_Widget *w, void *data)
|
|||
writeToDspRingbuffer( &e );
|
||||
}
|
||||
|
||||
static void gmastertrack_keyVol_callback(Fl_Widget *w, void *data)
|
||||
static void gmastertrack_xSideVol_callback(Fl_Widget *w, void *data)
|
||||
{
|
||||
//Avtk::Dial* b = (Avtk::Dial*)w;
|
||||
//b->value( !b->value() );
|
||||
//EventMetronomeActive e = EventMetronomeActive( b->value() );
|
||||
//writeToDspRingbuffer( &e );
|
||||
Avtk::Dial* b = (Avtk::Dial*)w;
|
||||
float v = b->value();
|
||||
EventMasterInputTo e = EventMasterInputTo( INPUT_TO_XSIDE, v );
|
||||
writeToDspRingbuffer( &e );
|
||||
}
|
||||
|
||||
static void gmastertrack_mixVol_callback(Fl_Widget *w, void *data)
|
||||
{
|
||||
//Avtk::Dial* b = (Avtk::Dial*)w;
|
||||
//b->value( !b->value() );
|
||||
//EventMetronomeActive e = EventMetronomeActive( b->value() );
|
||||
//writeToDspRingbuffer( &e );
|
||||
Avtk::Dial* b = (Avtk::Dial*)w;
|
||||
float v = b->value();
|
||||
EventMasterInputTo e = EventMasterInputTo( INPUT_TO_MIX, v );
|
||||
writeToDspRingbuffer( &e );
|
||||
}
|
||||
|
||||
static void gmastertrack_sidchainKeyButton_callback(Fl_Widget *w, void *data)
|
||||
|
@ -49,6 +49,22 @@ static void gmastertrack_mixButton_callback(Fl_Widget *w, void *data)
|
|||
//writeToDspRingbuffer( &e );
|
||||
}
|
||||
|
||||
static void gmastertrack_sendButton_callback(Fl_Widget *w, void *data)
|
||||
{
|
||||
Avtk::LightButton* b = (Avtk::LightButton*)w;
|
||||
b->value( !b->value() );
|
||||
//EventMetronomeActive e = EventMetronomeActive( b->value() );
|
||||
//writeToDspRingbuffer( &e );
|
||||
}
|
||||
|
||||
static void gmastertrack_sendVol_callback(Fl_Widget *w, void *data)
|
||||
{
|
||||
Avtk::Dial* b = (Avtk::Dial*)w;
|
||||
float v = b->value();
|
||||
EventMasterInputTo e = EventMasterInputTo( INPUT_TO_SEND, v );
|
||||
writeToDspRingbuffer( &e );
|
||||
}
|
||||
|
||||
static void gmastertrack_button_callback(Fl_Widget *w, void *data)
|
||||
{
|
||||
if ( strcmp( w->label(), "Metro" ) == 0 )
|
||||
|
@ -113,16 +129,17 @@ GMasterTrack::GMasterTrack(int x, int y, int w, int h, const char* l ) :
|
|||
|
||||
tempoDial.callback( gmastertrack_tempoDial_callback, 0 );
|
||||
|
||||
inputToSidechainKey.value( 0 );
|
||||
inputToSidechainKey.setColor( 0, 0.6, 1 );
|
||||
inputToSidechainKey.callback( gmastertrack_sidchainKeyButton_callback, 0 );
|
||||
inputToSidechainSignalVol.value( 0 );
|
||||
|
||||
inputToMix.value( 1 );
|
||||
inputToMixVol.value( 1 );
|
||||
inputToSidechainSignalVol.callback( gmastertrack_keyVol_callback, 0 );
|
||||
//inputToMix.setColor( 0, 0.0, 0 );
|
||||
inputToMixVol.callback ( gmastertrack_mixVol_callback, 0 );
|
||||
|
||||
inputToSend.setColor( 0, 1.0, 0 );
|
||||
inputToSidechainSignalVol.callback( gmastertrack_xSideVol_callback, 0 );
|
||||
|
||||
|
||||
tempoDial.align( FL_ALIGN_CENTER );
|
||||
returnVol.align( FL_ALIGN_CENTER );
|
||||
|
||||
|
|
15
src/jack.cxx
15
src/jack.cxx
|
@ -345,6 +345,21 @@ int Jack::process (jack_nframes_t nframes)
|
|||
void Jack::masterVolume(float vol)
|
||||
{
|
||||
masterVol = vol;
|
||||
}
|
||||
|
||||
void Jack::inputTo(INPUT_TO to, float v)
|
||||
{
|
||||
switch ( to )
|
||||
{
|
||||
case INPUT_TO_MIX:
|
||||
inputToMixVol = v;
|
||||
break;
|
||||
case INPUT_TO_SEND:
|
||||
inputToSendVol = v;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
printf("%f\n", masterVol);
|
||||
}
|
||||
|
||||
|
|
|
@ -61,6 +61,7 @@ class Jack
|
|||
|
||||
/// set the master volume
|
||||
void masterVolume( float vol );
|
||||
void inputTo(INPUT_TO to, float v);
|
||||
|
||||
|
||||
private:
|
||||
|
@ -88,6 +89,11 @@ class Jack
|
|||
DBMeter* inputMeter;
|
||||
DBMeter* masterMeter;
|
||||
float masterVol;
|
||||
float inputVol;
|
||||
|
||||
float inputToMixVol;
|
||||
float inputToSendVol;
|
||||
float inputToSideVol;
|
||||
|
||||
// JACK member variables
|
||||
bool clientActive;
|
||||
|
|
|
@ -20,6 +20,11 @@ void Logic::metronomeEnable(bool b)
|
|||
jack->getControllerUpdater()->metronomeEnable( b );
|
||||
}
|
||||
|
||||
void Logic::masterInputTo( int inputTo, float v)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void Logic::trackVolume(int t, float v)
|
||||
{
|
||||
if ( t < 0 ) // master track
|
||||
|
|
|
@ -26,6 +26,7 @@ class Logic
|
|||
|
||||
void metronomeEnable(bool b);
|
||||
|
||||
void masterInputTo( int inputTo, float v);
|
||||
void masterReturn(int t, int send, float v);
|
||||
|
||||
void trackVolume(int t, float v);
|
||||
|
|
Loading…
Add table
Reference in a new issue