-Working on NSM integration: open working, but session not showing: Jack registration issue with GUI probably the cause
parent
260a1d5a0c
commit
0a9471cf54
36
src/gui.cxx
36
src/gui.cxx
|
@ -66,11 +66,15 @@ static void gui_static_read_rb(void* inst)
|
|||
{
|
||||
handleGuiEvents();
|
||||
|
||||
nsm_check_nowait( gui->getNsm() );
|
||||
|
||||
Fl::repeat_timeout( 1 / 30.f, &gui_static_read_rb, inst);
|
||||
}
|
||||
|
||||
static void gui_static_nsm_cb(void* inst)
|
||||
{
|
||||
nsm_check_nowait( gui->getNsm() );
|
||||
Fl::repeat_timeout( 1 / 1.f, &gui_static_nsm_cb, inst);
|
||||
}
|
||||
|
||||
void option_controller_cb(Fl_Widget*,void* data)
|
||||
{
|
||||
LUPPP_NOTE("%s","Controller cb");
|
||||
|
@ -229,31 +233,29 @@ static int cb_nsm_open (const char *name,
|
|||
char **out_msg,
|
||||
void *userdata )
|
||||
{
|
||||
//printf("nsm open()\n", out_msg[0] );
|
||||
LUPPP_NOTE("NSM: Open, displayname: %s", display_name );
|
||||
|
||||
LUPPP_NOTE("NSM open() loading session");
|
||||
//gui->getDiskReader()->readSession( fnfc.filename() );
|
||||
Jack::setup( client_id );
|
||||
|
||||
//OSC_REPLY( "OK" );
|
||||
//OSC_REPLY_P( "/nsm/client/open", "OK" );
|
||||
//nsm_client_t* nsm = gui->getNsm();
|
||||
|
||||
//lo_send_from( nsm_addr, losrv, LO_TT_IMMEDIATE, "/reply", "ss", path, "OK" );
|
||||
|
||||
//lo_send_from( _NSM()->nsm_addr, _NSM()->_server, LO_TT_IMMEDIATE, "/reply", "ss", "/nsm/client/open", "OK" );
|
||||
// load the NSM provided directory
|
||||
gui->getDiskReader()->readSession( name );
|
||||
|
||||
// initialize the disk-writer to the same directory:
|
||||
// we *always* overwrite the old save file when using NSM
|
||||
gui->getDiskWriter()->initialize( name, display_name );
|
||||
|
||||
return ERR_OK;
|
||||
}
|
||||
|
||||
static int cb_nsm_save ( char **out_msg, void *userdata )
|
||||
{
|
||||
printf("nsm save()\n");
|
||||
//do_save_stuff();
|
||||
LUPPP_NOTE("NSM: saving session as %s", *out_msg );
|
||||
|
||||
LUPPP_NOTE("%s %s","Saving session as ", out_msg[0] );
|
||||
//gui->getDiskWriter()->initialize( getenv("HOME"), out_msg );
|
||||
// disk-writer already initialized to the right directory, so just write!
|
||||
EventStateSave e;
|
||||
//writeToDspRingbuffer( &e );
|
||||
writeToDspRingbuffer( &e );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -418,6 +420,10 @@ int Gui::show()
|
|||
|
||||
gui_static_read_rb( this );
|
||||
|
||||
// only launch NSM check callbacks if NSM is setup
|
||||
if ( gui->getNsm() )
|
||||
gui_static_nsm_cb( this );
|
||||
|
||||
return Fl::run();
|
||||
}
|
||||
|
||||
|
|
18
src/jack.cxx
18
src/jack.cxx
|
@ -34,8 +34,22 @@ extern Jack* jack;
|
|||
|
||||
extern int jackSamplerate;
|
||||
|
||||
Jack::Jack() :
|
||||
client( jack_client_open ( "Luppp", JackNullOption , 0 , 0 ) ),
|
||||
void Jack::setup(std::string name)
|
||||
{
|
||||
if ( jack == 0 )
|
||||
{
|
||||
jack = new Jack( name );
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
LUPPP_WARN("JACK instance already exists!");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Jack::Jack( std::string name ) :
|
||||
client( jack_client_open ( name.c_str(), JackNullOption , 0 , 0 ) ),
|
||||
state( new State() ),
|
||||
controllerUpdater( new ControllerUpdater() ),
|
||||
clientActive(false)
|
||||
|
|
|
@ -38,9 +38,11 @@ using namespace std;
|
|||
class Jack
|
||||
{
|
||||
public:
|
||||
Jack();
|
||||
Jack(std::string name);
|
||||
~Jack();
|
||||
|
||||
static void setup(std::string name);
|
||||
|
||||
void activate();
|
||||
/// quits the JACK client, destroying ports etc. Call only on exit of Luppp.
|
||||
void quit();
|
||||
|
|
17
src/main.cxx
17
src/main.cxx
|
@ -30,7 +30,6 @@ void signalHanlder(int signum)
|
|||
signalHanlderInt = signum;
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
bool runTests = false;
|
||||
|
@ -65,7 +64,8 @@ int main(int argc, char** argv)
|
|||
int testResult = 0;
|
||||
|
||||
// setup the testing Gui / JACK: Jack first, then GUI
|
||||
jack = new Jack();
|
||||
Jack::setup();
|
||||
//jack = new Jack();
|
||||
gui = new Gui(argv[0]);
|
||||
|
||||
// test offline functionality
|
||||
|
@ -88,12 +88,19 @@ int main(int argc, char** argv)
|
|||
#endif
|
||||
|
||||
// setup the "real" JACK / Gui: Jack first, then GUI
|
||||
jack = new Jack();
|
||||
|
||||
gui = new Gui(argv[0]);
|
||||
|
||||
if ( gui->getNsm() )
|
||||
{
|
||||
// the NSM OSC Open message will trigger Jack initialization: necessary
|
||||
// to use the right name to create the JACK client.
|
||||
}
|
||||
else
|
||||
{
|
||||
Jack::setup("Luppp");
|
||||
jack->activate();
|
||||
}
|
||||
|
||||
jack->activate();
|
||||
gui->show();
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -353,8 +353,6 @@ nsm_set_broadcast_callback( nsm_client_t *nsm, nsm_broadcast_callback *broadcast
|
|||
|
||||
NSM_EXPORT int _nsm_osc_open ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data )
|
||||
{
|
||||
printf("NSM OSC OPEN\n");
|
||||
|
||||
(void) types;
|
||||
(void) argc;
|
||||
(void) msg;
|
||||
|
@ -387,8 +385,6 @@ NSM_EXPORT int _nsm_osc_save ( const char *path, const char *types, lo_arg **arg
|
|||
(void) argv;
|
||||
(void) argc;
|
||||
(void) msg;
|
||||
|
||||
printf("NSM SAVE()\n");
|
||||
|
||||
char *out_msg = NULL;
|
||||
|
||||
|
@ -401,12 +397,10 @@ NSM_EXPORT int _nsm_osc_save ( const char *path, const char *types, lo_arg **arg
|
|||
|
||||
if ( r )
|
||||
{
|
||||
printf("SEnding save ERROR\n");
|
||||
OSC_REPLY_ERR( r, ( out_msg ? out_msg : "") );
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("SEnding save OK\n");
|
||||
OSC_REPLY( "OK" );
|
||||
}
|
||||
if ( out_msg )
|
||||
|
|
Loading…
Reference in New Issue