-APC initialized on startup, error-checked Logic track values

main
Harry van Haaren 2013-10-03 10:17:23 +01:00
parent 37a6f2891f
commit 57e1f642de
4 changed files with 67 additions and 16 deletions

View File

@ -2,4 +2,4 @@
set -e
gdb --dir=src/ src/luppp
xterm -e "sleep 3 && aj-snapshot -r lupppDemo" & cd src/ && gdb luppp

View File

@ -261,6 +261,24 @@ Gui::Gui() :
ctlrButton->callback( selectLoadController );
optionWindow->end();
// default controller for testing
LUPPP_NOTE("Adding APC40 Controller cb");
Controller* c = new GenericMIDI( "akai_apc.ctlr" );
if ( c->status() == Controller::CONTROLLER_OK )
{
EventControllerInstance e(c);
writeToDspRingbuffer( &e );
}
else
{
LUPPP_ERROR("Controller initialization failed!");
}
}
GTrack* Gui::getTrack(int id)

View File

@ -37,43 +37,74 @@ void Logic::masterInputToActive( Event::INPUT_TO inputTo, bool active)
void Logic::trackVolume(int t, float v)
{
if ( t < 0 ) // master track
if ( t == -1 ) // master track
{
jack->masterVolume(v);
jack->getControllerUpdater()->masterVolume( v );
}
else
else if ( t >= 0 && t < NTRACKS )
{
jack->getTrackOutput( t )->setMaster( v );
jack->getControllerUpdater()->volume( t, v );
}
else
{
LUPPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
}
}
void Logic::trackRecordArm(int t, bool v)
{
jack->getTrackOutput( t )->recordArm( v );
jack->getControllerUpdater()->recordArm( t, v );
if ( t >= 0 && t < NTRACKS )
{
jack->getTrackOutput( t )->recordArm( v );
jack->getControllerUpdater()->recordArm( t, v );
}
else
{
LUPPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
}
}
void Logic::trackSendActive(int t, int s, bool v)
{
jack->getTrackOutput( t )->setSendActive( s, v );
jack->getControllerUpdater()->setTrackSendActive( t, s, v );
if ( t >= 0 && t < NTRACKS )
{
jack->getTrackOutput( t )->setSendActive( s, v );
jack->getControllerUpdater()->setTrackSendActive( t, s, v );
}
else
{
LUPPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
}
}
void Logic::trackSend(int t, int send, float v)
{
if ( t >= 0 && t < NTRACKS )
{
#ifdef DEBUG_LOGIC
cout << "Logic::trackSend() " << t << " " << send << " " << v << endl;
cout << "Logic::trackSend() " << t << " " << send << " " << v << endl;
#endif
jack->getTrackOutput( t )->setSend( send, v );
jack->getControllerUpdater()->setTrackSend( t, send, v );
jack->getTrackOutput( t )->setSend( send, v );
jack->getControllerUpdater()->setTrackSend( t, send, v );
}
else
{
LUPPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
}
}
void Logic::looperClipLenght(int t, int s, int l)
{
jack->getLooper( t )->getClip( s )->setBeats(l);
if ( t >= 0 && t < NTRACKS )
{
jack->getLooper( t )->getClip( s )->setBeats(l);
}
else
{
LUPPP_WARN("invalid track number %i: check controller map has \"track\" field.", t );
}
}

View File

@ -64,9 +64,9 @@ int main(int argc, char** argv)
// counts failures
int testResult = 0;
// setup the testing Gui / JACK
gui = new Gui();
// setup the testing Gui / JACK: Jack first, then GUI
jack = new Jack();
gui = new Gui();
// test offline functionality
testResult += gui->getDiskReader()->runTests();
@ -87,10 +87,12 @@ int main(int argc, char** argv)
}
#endif
// setup the "real" GUI / JACK
gui = new Gui();
// setup the "real" JACK / Gui: Jack first, then GUI
jack = new Jack();
gui = new Gui();
jack->activate();
gui->show();