mirror of
https://github.com/vale981/openAV-Luppp
synced 2025-03-06 01:21:38 -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
|
enum INPUT_TO
|
||||||
{
|
{
|
||||||
INPUT_TO_RECORD = 0,
|
INPUT_TO_SEND = 0,
|
||||||
INPUT_TO_MIX,
|
INPUT_TO_MIX,
|
||||||
|
INPUT_TO_XSIDE,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
@ -96,9 +97,10 @@ class EventMasterInputTo : public EventBase
|
||||||
int type() { return int(MASTER_INPUT_TO); }
|
int type() { return int(MASTER_INPUT_TO); }
|
||||||
uint32_t size() { return sizeof(EventMasterInputTo); }
|
uint32_t size() { return sizeof(EventMasterInputTo); }
|
||||||
|
|
||||||
int send;
|
INPUT_TO place;
|
||||||
float vol;
|
float value;
|
||||||
EventMasterInputTo(int s, float v) : send(s), vol(v){}
|
EventMasterInputTo() : value(-1){}
|
||||||
|
EventMasterInputTo(INPUT_TO p, float v) : place(p), value(v){}
|
||||||
};
|
};
|
||||||
|
|
||||||
class EventMasterVol : public EventBase
|
class EventMasterVol : public EventBase
|
||||||
|
|
|
@ -60,6 +60,12 @@ void handleDspEvents()
|
||||||
jack_ringbuffer_read( rbToDsp, (char*)&ev, sizeof(EventMasterReturn) );
|
jack_ringbuffer_read( rbToDsp, (char*)&ev, sizeof(EventMasterReturn) );
|
||||||
//jack->getLogic()->trackSend( ev.track, ev.send, ev.value );
|
//jack->getLogic()->trackSend( ev.track, ev.send, ev.value );
|
||||||
} break; }
|
} 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 =====
|
// ========= GRID =====
|
||||||
case Event::GRID_EVENT: {
|
case Event::GRID_EVENT: {
|
||||||
|
@ -144,6 +150,7 @@ void handleDspEvents()
|
||||||
jack->getLogic()->trackVolume( ev.track, ev.vol );
|
jack->getLogic()->trackVolume( ev.track, ev.vol );
|
||||||
break; }
|
break; }
|
||||||
}
|
}
|
||||||
|
|
||||||
case Event::TRACK_SEND: {
|
case Event::TRACK_SEND: {
|
||||||
if ( availableRead >= sizeof(EventTrackSend) ) {
|
if ( availableRead >= sizeof(EventTrackSend) ) {
|
||||||
EventTrackSend ev;
|
EventTrackSend ev;
|
||||||
|
|
|
@ -17,20 +17,20 @@ static void gmastertrack_volume_callback(Fl_Widget *w, void *data)
|
||||||
writeToDspRingbuffer( &e );
|
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;
|
Avtk::Dial* b = (Avtk::Dial*)w;
|
||||||
//b->value( !b->value() );
|
float v = b->value();
|
||||||
//EventMetronomeActive e = EventMetronomeActive( b->value() );
|
EventMasterInputTo e = EventMasterInputTo( INPUT_TO_XSIDE, v );
|
||||||
//writeToDspRingbuffer( &e );
|
writeToDspRingbuffer( &e );
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gmastertrack_mixVol_callback(Fl_Widget *w, void *data)
|
static void gmastertrack_mixVol_callback(Fl_Widget *w, void *data)
|
||||||
{
|
{
|
||||||
//Avtk::Dial* b = (Avtk::Dial*)w;
|
Avtk::Dial* b = (Avtk::Dial*)w;
|
||||||
//b->value( !b->value() );
|
float v = b->value();
|
||||||
//EventMetronomeActive e = EventMetronomeActive( b->value() );
|
EventMasterInputTo e = EventMasterInputTo( INPUT_TO_MIX, v );
|
||||||
//writeToDspRingbuffer( &e );
|
writeToDspRingbuffer( &e );
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gmastertrack_sidchainKeyButton_callback(Fl_Widget *w, void *data)
|
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 );
|
//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)
|
static void gmastertrack_button_callback(Fl_Widget *w, void *data)
|
||||||
{
|
{
|
||||||
if ( strcmp( w->label(), "Metro" ) == 0 )
|
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 );
|
tempoDial.callback( gmastertrack_tempoDial_callback, 0 );
|
||||||
|
|
||||||
inputToSidechainKey.value( 0 );
|
|
||||||
inputToSidechainKey.setColor( 0, 0.6, 1 );
|
inputToSidechainKey.setColor( 0, 0.6, 1 );
|
||||||
inputToSidechainKey.callback( gmastertrack_sidchainKeyButton_callback, 0 );
|
inputToSidechainKey.callback( gmastertrack_sidchainKeyButton_callback, 0 );
|
||||||
inputToSidechainSignalVol.value( 0 );
|
inputToSidechainSignalVol.value( 0 );
|
||||||
|
|
||||||
inputToMix.value( 1 );
|
//inputToMix.setColor( 0, 0.0, 0 );
|
||||||
inputToMixVol.value( 1 );
|
|
||||||
inputToSidechainSignalVol.callback( gmastertrack_keyVol_callback, 0 );
|
|
||||||
inputToMixVol.callback ( gmastertrack_mixVol_callback, 0 );
|
inputToMixVol.callback ( gmastertrack_mixVol_callback, 0 );
|
||||||
|
|
||||||
|
inputToSend.setColor( 0, 1.0, 0 );
|
||||||
|
inputToSidechainSignalVol.callback( gmastertrack_xSideVol_callback, 0 );
|
||||||
|
|
||||||
|
|
||||||
tempoDial.align( FL_ALIGN_CENTER );
|
tempoDial.align( FL_ALIGN_CENTER );
|
||||||
returnVol.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)
|
void Jack::masterVolume(float vol)
|
||||||
{
|
{
|
||||||
masterVol = 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);
|
printf("%f\n", masterVol);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -61,6 +61,7 @@ class Jack
|
||||||
|
|
||||||
/// set the master volume
|
/// set the master volume
|
||||||
void masterVolume( float vol );
|
void masterVolume( float vol );
|
||||||
|
void inputTo(INPUT_TO to, float v);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -88,6 +89,11 @@ class Jack
|
||||||
DBMeter* inputMeter;
|
DBMeter* inputMeter;
|
||||||
DBMeter* masterMeter;
|
DBMeter* masterMeter;
|
||||||
float masterVol;
|
float masterVol;
|
||||||
|
float inputVol;
|
||||||
|
|
||||||
|
float inputToMixVol;
|
||||||
|
float inputToSendVol;
|
||||||
|
float inputToSideVol;
|
||||||
|
|
||||||
// JACK member variables
|
// JACK member variables
|
||||||
bool clientActive;
|
bool clientActive;
|
||||||
|
|
|
@ -20,6 +20,11 @@ void Logic::metronomeEnable(bool b)
|
||||||
jack->getControllerUpdater()->metronomeEnable( b );
|
jack->getControllerUpdater()->metronomeEnable( b );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Logic::masterInputTo( int inputTo, float v)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void Logic::trackVolume(int t, float v)
|
void Logic::trackVolume(int t, float v)
|
||||||
{
|
{
|
||||||
if ( t < 0 ) // master track
|
if ( t < 0 ) // master track
|
||||||
|
|
|
@ -26,6 +26,7 @@ class Logic
|
||||||
|
|
||||||
void metronomeEnable(bool b);
|
void metronomeEnable(bool b);
|
||||||
|
|
||||||
|
void masterInputTo( int inputTo, float v);
|
||||||
void masterReturn(int t, int send, float v);
|
void masterReturn(int t, int send, float v);
|
||||||
|
|
||||||
void trackVolume(int t, float v);
|
void trackVolume(int t, float v);
|
||||||
|
|
Loading…
Add table
Reference in a new issue