mirror of
https://github.com/vale981/openAV-Luppp
synced 2025-03-05 09:01:39 -05:00
Made per track sends and returns an option
This commit is contained in:
parent
6f88b009f6
commit
6f3c2ecd33
6 changed files with 38 additions and 27 deletions
|
@ -71,14 +71,6 @@ class Buffers
|
|||
SEND_TRACK_5,
|
||||
SEND_TRACK_6,
|
||||
SEND_TRACK_7,
|
||||
JACK_SEND_TRACK_0,
|
||||
JACK_SEND_TRACK_1,
|
||||
JACK_SEND_TRACK_2,
|
||||
JACK_SEND_TRACK_3,
|
||||
JACK_SEND_TRACK_4,
|
||||
JACK_SEND_TRACK_5,
|
||||
JACK_SEND_TRACK_6,
|
||||
JACK_SEND_TRACK_7,
|
||||
RETURN_TRACK_0,
|
||||
RETURN_TRACK_1,
|
||||
RETURN_TRACK_2,
|
||||
|
@ -87,14 +79,6 @@ class Buffers
|
|||
RETURN_TRACK_5,
|
||||
RETURN_TRACK_6,
|
||||
RETURN_TRACK_7,
|
||||
JACK_RETURN_TRACK_0,
|
||||
JACK_RETURN_TRACK_1,
|
||||
JACK_RETURN_TRACK_2,
|
||||
JACK_RETURN_TRACK_3,
|
||||
JACK_RETURN_TRACK_4,
|
||||
JACK_RETURN_TRACK_5,
|
||||
JACK_RETURN_TRACK_6,
|
||||
JACK_RETURN_TRACK_7,
|
||||
|
||||
|
||||
BUFFER_COUNT,
|
||||
|
|
|
@ -101,8 +101,15 @@ int DiskReader::loadPreferences()
|
|||
{
|
||||
LUPPP_NOTE("No default controllers active.");
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Enable per track send and resturn jack ports?
|
||||
cJSON* jackSendReturns=cJSON_GetObjectItem(preferencesJson,"enablePerTrackSendReturns");
|
||||
if(jackSendReturns)
|
||||
{
|
||||
gui->enableJackSendReturns=jackSendReturns->valueint;
|
||||
if(gui->enableJackSendReturns)
|
||||
LUPPP_NOTE("Enabling per track send and return ports");
|
||||
}
|
||||
|
||||
|
||||
cJSON_Delete( preferencesJson );
|
||||
|
|
|
@ -512,7 +512,8 @@ void DiskWriter::writeDefaultConfigToUserHome()
|
|||
cJSON* defCtrls = cJSON_CreateArray();
|
||||
cJSON_AddItemToObject( prfs, "defaultControllers", defCtrls );
|
||||
|
||||
|
||||
// per track send and return option
|
||||
cJSON_AddNumberToObject( prfs, "enablePerTrackSendReturns", 0 );
|
||||
// test output on console
|
||||
// cout << endl << cJSON_Print( prfs ) << endl << endl;
|
||||
|
||||
|
|
|
@ -329,7 +329,7 @@ static int cb_nsm_save ( char **out_msg, void *userdata )
|
|||
Gui::Gui(const char* argZero) :
|
||||
samplerate( 0 ),
|
||||
window(1110,650),
|
||||
|
||||
enableJackSendReturns(false),
|
||||
diskReader( new DiskReader() ),
|
||||
diskWriter( new DiskWriter() )
|
||||
{
|
||||
|
|
|
@ -83,6 +83,9 @@ class Gui
|
|||
|
||||
int samplerate;
|
||||
|
||||
////Enable per track send and resturn jack ports
|
||||
bool enableJackSendReturns;
|
||||
|
||||
int getWindowWidth(){return window.w();}
|
||||
|
||||
nsm_client_t* getNsm(){return nsm;}
|
||||
|
|
30
src/jack.cxx
30
src/jack.cxx
|
@ -198,17 +198,26 @@ Jack::Jack( std::string name ) :
|
|||
{
|
||||
/** Setup the tracks:
|
||||
* The TrackOutput gets a pointer to the next AudioProcessor to call:
|
||||
* In this case, the track's Looper instance.
|
||||
* This is either a JackSendReturn (providing send and return ports)
|
||||
* or the track's Looper instance.
|
||||
* This is an option in luppp.prfs
|
||||
**/
|
||||
loopers.push_back( new Looper(i) );
|
||||
|
||||
if(gui->enableJackSendReturns)
|
||||
{
|
||||
tracksendreturns.push_back(new JackSendReturn(i,loopers.back(),client));
|
||||
trackOutputs.push_back( new TrackOutput(i, tracksendreturns.back() ) );
|
||||
}
|
||||
else
|
||||
trackOutputs.push_back( new TrackOutput(i, loopers.back() ) );
|
||||
|
||||
tracksendreturns.push_back(new JackSendReturn(i,loopers.back(),client));
|
||||
trackOutputs.push_back( new TrackOutput(i, tracksendreturns.back() ) );
|
||||
|
||||
buffers.audio[Buffers::TRACK_0 + i] = new float[ buffers.nframes ];
|
||||
buffers.audio[Buffers::SEND_TRACK_0+i]=new float[buffers.nframes];
|
||||
buffers.audio[Buffers::RETURN_TRACK_0+i]=new float[buffers.nframes];
|
||||
if(gui->enableJackSendReturns)
|
||||
buffers.audio[Buffers::RETURN_TRACK_0+i]=new float[buffers.nframes];
|
||||
else
|
||||
buffers.audio[Buffers::RETURN_TRACK_0+i]=buffers.audio[Buffers::SEND_TRACK_0+i];
|
||||
|
||||
timeManager->registerObserver( loopers.back() );
|
||||
}
|
||||
|
@ -273,7 +282,13 @@ Jack::~Jack()
|
|||
{
|
||||
delete [] buffers.audio[Buffers::TRACK_0+i];
|
||||
delete [] buffers.audio[Buffers::SEND_TRACK_0+i];
|
||||
delete [] buffers.audio[Buffers::RETURN_TRACK_0+i];
|
||||
if(gui->enableJackSendReturns)
|
||||
{
|
||||
delete [] buffers.audio[Buffers::RETURN_TRACK_0+i];
|
||||
delete tracksendreturns[i];
|
||||
}
|
||||
delete loopers[i];
|
||||
delete trackOutputs[i];
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -557,7 +572,8 @@ void Jack::clearInternalBuffers(int nframes)
|
|||
{
|
||||
memset(buffers.audio[Buffers::TRACK_0 + i],0,sizeof(float)*nframes);
|
||||
memset(buffers.audio[Buffers::SEND_TRACK_0 + i],0,sizeof(float)*nframes);
|
||||
memset(buffers.audio[Buffers::RETURN_TRACK_0 + i],0,sizeof(float)*nframes);
|
||||
if(gui->enableJackSendReturns)
|
||||
memset(buffers.audio[Buffers::RETURN_TRACK_0 + i],0,sizeof(float)*nframes);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue