Browse Source

Introduce command line parameters to handle showing nmsd messages. Default is on. Remove any NDEBUG handling, because that was overidden by distributions default build options. We want the users to report meaningful bugs

tags/v1.5.0
Nils 4 years ago
parent
commit
992a044efa
7 changed files with 69 additions and 66 deletions
  1. +31
    -31
      src/Endpoint.cpp
  2. +1
    -1
      src/Endpoint.hpp
  3. +2
    -0
      src/debug.cpp
  4. +9
    -12
      src/debug.h
  5. +3
    -3
      src/nsm-legacy-gui.cpp
  6. +10
    -10
      src/nsm-proxy.cpp
  7. +13
    -9
      src/nsmd.cpp

+ 31
- 31
src/Endpoint.cpp View File

@@ -94,7 +94,7 @@ namespace OSC
char *new_path; char *new_path;
asprintf( &new_path, "%s%s", _endpoint->name() ? _endpoint->name() : "", path ); asprintf( &new_path, "%s%s", _endpoint->name() ? _endpoint->name() : "", path );


DMESSAGE( "Renaming signal %s to %s", this->path(), new_path );
MESSAGE( "Renaming signal %s to %s", this->path(), new_path );


/* if ( _direction == Signal::Input ) */ /* if ( _direction == Signal::Input ) */
/* { */ /* { */
@@ -138,12 +138,12 @@ namespace OSC
} }
/* else if ( direction() == Input ) */ /* else if ( direction() == Input ) */
/* { */ /* { */
/* DMESSAGE( "Sending value feedback for signal %s...", path() ); */
/* MESSAGE( "Sending value feedback for signal %s...", path() ); */
/* for ( std::list<Signal*>::iterator i = _incoming.begin(); */ /* for ( std::list<Signal*>::iterator i = _incoming.begin(); */
/* i != _incoming.end(); */ /* i != _incoming.end(); */
/* ++i ) */ /* ++i ) */
/* { */ /* { */
/* DMESSAGE( "Sending value feedback to %s %s %f", lo_address_get_url( (*i)->_peer->addr), (*i)->path() , f); */
/* MESSAGE( "Sending value feedback to %s %s %f", lo_address_get_url( (*i)->_peer->addr), (*i)->path() , f); */
/* _endpoint->send( (*i)->_peer->addr, */ /* _endpoint->send( (*i)->_peer->addr, */
/* (*i)->path(), */ /* (*i)->path(), */
/* f ); */ /* f ); */
@@ -202,7 +202,7 @@ namespace OSC
int int
Endpoint::init ( int proto, const char *port ) Endpoint::init ( int proto, const char *port )
{ {
DMESSAGE( "Creating OSC server" );
MESSAGE( "Creating OSC server" );


_server = lo_server_new_with_proto( port, proto, error_handler ); _server = lo_server_new_with_proto( port, proto, error_handler );


@@ -315,7 +315,7 @@ namespace OSC
void void
Endpoint::handle_hello ( const char *peer_name, const char *peer_url ) Endpoint::handle_hello ( const char *peer_name, const char *peer_url )
{ {
DMESSAGE( "Got hello from %s", peer_name );
MESSAGE( "Got hello from %s", peer_name );


Peer *p = find_peer_by_name( peer_name ); Peer *p = find_peer_by_name( peer_name );


@@ -344,7 +344,7 @@ namespace OSC
/* scan it while we're at it */ /* scan it while we're at it */
p->_scanning = true; p->_scanning = true;


DMESSAGE( "Scanning peer %s", peer_name );
MESSAGE( "Scanning peer %s", peer_name );


send( p->addr, "/signal/list" ); send( p->addr, "/signal/list" );
} }
@@ -355,7 +355,7 @@ namespace OSC
} }
else else
{ {
DMESSAGE( "Not sending hello because we don't have a name yet!" );
MESSAGE( "Not sending hello because we don't have a name yet!" );
} }
} }


@@ -387,7 +387,7 @@ namespace OSC


if ( s->_direction == Signal::Input ) if ( s->_direction == Signal::Input )
{ {
DMESSAGE( "Peer %s has disconnected from signal %s", our_name, their_name );
MESSAGE( "Peer %s has disconnected from signal %s", our_name, their_name );


ep->del_translation( their_name ); ep->del_translation( their_name );


@@ -422,7 +422,7 @@ namespace OSC
return 0; return 0;
} }


DMESSAGE( "Has requested signal connection %s |> %s", src_path, dst_s->path() );
MESSAGE( "Has requested signal connection %s |> %s", src_path, dst_s->path() );


ep->add_translation( src_path, dst_s->path() ); ep->add_translation( src_path, dst_s->path() );


@@ -455,7 +455,7 @@ namespace OSC
return 0; return 0;
} }


DMESSAGE( "Signal %s:%s was removed", o->_peer->name, o->path() );
MESSAGE( "Signal %s:%s was removed", o->_peer->name, o->path() );




if ( ep->_peer_signal_notification_callback ) if ( ep->_peer_signal_notification_callback )
@@ -501,7 +501,7 @@ namespace OSC


p->_signals.push_back( s ); p->_signals.push_back( s );


DMESSAGE( "Peer %s has created signal %s (%s %f %f %f)", p->name,
MESSAGE( "Peer %s has created signal %s (%s %f %f %f)", p->name,
name, direction, min, max, default_value ); name, direction, min, max, default_value );


if ( ep->_peer_signal_notification_callback ) if ( ep->_peer_signal_notification_callback )
@@ -513,7 +513,7 @@ namespace OSC
int int
Endpoint::osc_sig_renamed ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ) Endpoint::osc_sig_renamed ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data )
{ {
DMESSAGE( "Got renamed message." );
MESSAGE( "Got renamed message." );


const char *old_name = &argv[0]->s; const char *old_name = &argv[0]->s;
const char *new_name = &argv[1]->s; const char *new_name = &argv[1]->s;
@@ -536,7 +536,7 @@ namespace OSC
return 0; return 0;
} }


DMESSAGE( "Signal %s was renamed to %s", o->_path, new_name );
MESSAGE( "Signal %s was renamed to %s", o->_path, new_name );


ep->rename_translation_source( o->_path, new_name ); ep->rename_translation_source( o->_path, new_name );


@@ -685,7 +685,7 @@ namespace OSC
{ {
ep->add_translation( path, ep->_learning_path ); ep->add_translation( path, ep->_learning_path );


DMESSAGE( "Learned translation \"%s\" -> \"%s\"", path, ep->_learning_path );
MESSAGE( "Learned translation \"%s\" -> \"%s\"", path, ep->_learning_path );


free(ep->_learning_path); free(ep->_learning_path);
ep->_learning_path = NULL; ep->_learning_path = NULL;
@@ -700,11 +700,11 @@ namespace OSC
{ {
const char *dpath = i->second.path.c_str(); const char *dpath = i->second.path.c_str();


// DMESSAGE( "Translating message \"%s\" to \"%s\"", path, dpath );
// MESSAGE( "Translating message \"%s\" to \"%s\"", path, dpath );


if ( !strcmp(types, "f" )) if ( !strcmp(types, "f" ))
{ {
// DMESSAGE( "recording value %f", argv[0]->f );
// MESSAGE( "recording value %f", argv[0]->f );
i->second.current_value = argv[0]->f; i->second.current_value = argv[0]->f;
} }


@@ -741,7 +741,7 @@ namespace OSC
{ {
// OSC_DMSG(); // OSC_DMSG();


DMESSAGE( "Listing signals." );
MESSAGE( "Listing signals." );


const char *prefix = NULL; const char *prefix = NULL;


@@ -906,7 +906,7 @@ namespace OSC
if ( argc == 1 ) if ( argc == 1 )
{ {
p->_scanning = false; p->_scanning = false;
DMESSAGE( "Done scanning %s", p->name );
MESSAGE( "Done scanning %s", p->name );


if ( ep->_peer_scan_complete_callback ) if ( ep->_peer_scan_complete_callback )
ep->_peer_scan_complete_callback(ep->_peer_scan_complete_userdata); ep->_peer_scan_complete_callback(ep->_peer_scan_complete_userdata);
@@ -918,7 +918,7 @@ namespace OSC
if ( s ) if ( s )
return 0; return 0;


DMESSAGE( "Peer %s has signal %s (%s)", p->name, &argv[1]->s, &argv[2]->s );
MESSAGE( "Peer %s has signal %s (%s)", p->name, &argv[1]->s, &argv[2]->s );


int dir = 0; int dir = 0;


@@ -951,7 +951,7 @@ namespace OSC
Method * Method *
Endpoint::add_method ( const char *path, const char *typespec, lo_method_handler handler, void *user_data, const char *argument_description ) Endpoint::add_method ( const char *path, const char *typespec, lo_method_handler handler, void *user_data, const char *argument_description )
{ {
// DMESSAGE( "Added OSC method %s (%s)", path, typespec );
// MESSAGE( "Added OSC method %s (%s)", path, typespec );


lo_server_add_method( _server, path, typespec, handler, user_data ); lo_server_add_method( _server, path, typespec, handler, user_data );


@@ -1013,7 +1013,7 @@ namespace OSC
void void
Endpoint::del_method ( const char *path, const char *typespec ) Endpoint::del_method ( const char *path, const char *typespec )
{ {
// DMESSAGE( "Deleted OSC method %s (%s)", path, typespec );
// MESSAGE( "Deleted OSC method %s (%s)", path, typespec );


lo_server_del_method( _server, path, typespec ); lo_server_del_method( _server, path, typespec );


@@ -1036,7 +1036,7 @@ namespace OSC
void void
Endpoint::del_method ( Method *meth ) Endpoint::del_method ( Method *meth )
{ {
// DMESSAGE( "Deleted OSC method %s (%s)", path, typespec );
// MESSAGE( "Deleted OSC method %s (%s)", path, typespec );


lo_server_del_method( _server, meth->path(), meth->typespec() ); lo_server_del_method( _server, meth->path(), meth->typespec() );


@@ -1048,7 +1048,7 @@ namespace OSC
void void
Endpoint::del_signal ( Signal *o ) Endpoint::del_signal ( Signal *o )
{ {
// DMESSAGE( "Deleted OSC method %s (%s)", path, typespec );
// MESSAGE( "Deleted OSC method %s (%s)", path, typespec );


lo_server_del_method( _server, o->path(), NULL ); lo_server_del_method( _server, o->path(), NULL );


@@ -1095,7 +1095,7 @@ namespace OSC
{ {
const char *spath = i->first.c_str(); const char *spath = i->first.c_str();


// DMESSAGE( "Sending feedback to \"%s\": %f", spath, v );
// MESSAGE( "Sending feedback to \"%s\": %f", spath, v );


/* send to all peers */ /* send to all peers */
for ( std::list<Peer*>::iterator p = _peers.begin(); for ( std::list<Peer*>::iterator p = _peers.begin();
@@ -1121,7 +1121,7 @@ namespace OSC
{ {
Peer *p = new Peer; Peer *p = new Peer;


DMESSAGE( "Adding peer %s @ %s...", name, url );
MESSAGE( "Adding peer %s @ %s...", name, url );


p->name = strdup( name ); p->name = strdup( name );
p->addr = lo_address_new_from_url( url ); p->addr = lo_address_new_from_url( url );
@@ -1138,7 +1138,7 @@ namespace OSC


p->_scanning = true; p->_scanning = true;


DMESSAGE( "Scanning peer %s", name );
MESSAGE( "Scanning peer %s", name );


send( p->addr, "/signal/list" ); send( p->addr, "/signal/list" );
} }
@@ -1156,7 +1156,7 @@ namespace OSC
{ {
_thread.name( "OSC" ); _thread.name( "OSC" );


DMESSAGE( "OSC Thread running" );
MESSAGE( "OSC Thread running" );


run(); run();
} }
@@ -1231,15 +1231,15 @@ namespace OSC
switch ( ov->type() ) switch ( ov->type() )
{ {
case 'f': case 'f':
// DMESSAGE( "Adding float %f", ((OSC_Float*)ov)->value() );
// MESSAGE( "Adding float %f", ((OSC_Float*)ov)->value() );
lo_message_add_float( m, ((OSC_Float*)ov)->value() ); lo_message_add_float( m, ((OSC_Float*)ov)->value() );
break; break;
case 'i': case 'i':
// DMESSAGE( "Adding int %i", ((OSC_Int*)ov)->value() );
// MESSAGE( "Adding int %i", ((OSC_Int*)ov)->value() );
lo_message_add_int32( m, ((OSC_Int*)ov)->value() ); lo_message_add_int32( m, ((OSC_Int*)ov)->value() );
break; break;
case 's': case 's':
// DMESSAGE( "Adding string %s", ((OSC_String*)ov)->value() );
// MESSAGE( "Adding string %s", ((OSC_String*)ov)->value() );
lo_message_add_string( m, ((OSC_String*)ov)->value() ); lo_message_add_string( m, ((OSC_String*)ov)->value() );
break; break;
default: default:
@@ -1248,7 +1248,7 @@ namespace OSC
} }
} }


// DMESSAGE( "Path: %s", path );
// MESSAGE( "Path: %s", path );


lo_bundle b = lo_bundle_new( LO_TT_IMMEDIATE ); lo_bundle b = lo_bundle_new( LO_TT_IMMEDIATE );




+ 1
- 1
src/Endpoint.hpp View File

@@ -419,7 +419,7 @@ namespace OSC


/* helper macros for defining OSC handlers */ /* helper macros for defining OSC handlers */
/* #define OSC_NAME( name ) osc_ ## name */ /* #define OSC_NAME( name ) osc_ ## name */
#define OSC_DMSG() DMESSAGE( "Got OSC message: %s", path );
#define OSC_DMSG() MESSAGE( "Got OSC message: %s", path );
// #define OSC_HANDLER( name ) static int OSC_NAME( name ) ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ) // #define OSC_HANDLER( name ) static int OSC_NAME( name ) ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data )






+ 2
- 0
src/debug.cpp View File

@@ -28,6 +28,8 @@


extern char * program_invocation_short_name; extern char * program_invocation_short_name;


bool quietMessages = false;

void void
warnf ( warning_t level, warnf ( warning_t level,
const char *module, const char *module,


+ 9
- 12
src/debug.h View File

@@ -68,6 +68,8 @@
*/ */






#ifndef _DEBUG_H #ifndef _DEBUG_H
#define _DEBUG_H #define _DEBUG_H


@@ -83,6 +85,8 @@
#define __FUNCTION__ NULL #define __FUNCTION__ NULL
#endif #endif


extern bool quietMessages;

typedef enum { typedef enum {
W_MESSAGE = 0, W_MESSAGE = 0,
W_WARNING, W_WARNING,
@@ -95,20 +99,13 @@ warnf ( warning_t level,
const char *file, const char *file,
const char *function, int line, const char *fmt, ... ); const char *function, int line, const char *fmt, ... );


//We do not use NDEBUG anymore. Messages are a command line switch.
//Warnings, asserts and errors are always important.


#ifndef NDEBUG
#define DMESSAGE( fmt, args... ) warnf( W_MESSAGE, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args )
#define DWARNING( fmt, args... ) warnf( W_WARNING, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args )
#define ASSERT( pred, fmt, args... ) do { if ( ! (pred) ) { warnf( W_FATAL, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args ); abort(); } } while ( 0 )
#else
#define DMESSAGE( fmt, args... )
#define DWARNING( fmt, args... )
#define ASSERT( pred, fmt, args... ) (void)(pred)
#endif

/* these are always defined */
#define MESSAGE( fmt, args... ) warnf( W_MESSAGE, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args )
// #define MESSAGE( fmt, args... ) warnf( W_MESSAGE, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args )
#define MESSAGE( fmt, args... ) do { if ( ! (quietMessages) ) { warnf( W_MESSAGE, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args ); } } while ( 0 )
#define WARNING( fmt, args... ) warnf( W_WARNING, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args ) #define WARNING( fmt, args... ) warnf( W_WARNING, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args )
#define FATAL( fmt, args... ) ( warnf( W_FATAL, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args ), abort() ) #define FATAL( fmt, args... ) ( warnf( W_FATAL, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args ), abort() )
#define ASSERT( pred, fmt, args... ) do { if ( ! (pred) ) { warnf( W_FATAL, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args ); abort(); } } while ( 0 )


#endif #endif

+ 3
- 3
src/nsm-legacy-gui.cpp View File

@@ -1071,7 +1071,7 @@ private:
/* need at least one argument... */ /* need at least one argument... */
return 0; return 0;


DMESSAGE( "Relaying broadcast" );
MESSAGE( "Relaying broadcast" );


foreach_daemon( d ) foreach_daemon( d )
{ {
@@ -1337,7 +1337,7 @@ main (int argc, char **argv )
{ {
case 'n': case 'n':
{ {
DMESSAGE( "Adding %s to daemon list", optarg );
MESSAGE( "Adding %s to daemon list", optarg );
Daemon *d = new Daemon; Daemon *d = new Daemon;


d->url = optarg; d->url = optarg;
@@ -1412,7 +1412,7 @@ main (int argc, char **argv )


for ( ; optind < argc; i++, optind++ ) for ( ; optind < argc; i++, optind++ )
{ {
DMESSAGE( "Passing argument: %s", argv[optind] );
MESSAGE( "Passing argument: %s", argv[optind] );
args[i] = argv[optind]; args[i] = argv[optind];
} }




+ 10
- 10
src/nsm-proxy.cpp View File

@@ -202,7 +202,7 @@ public:


void save ( void ) void save ( void )
{ {
DMESSAGE( "Sending process save signal" );
MESSAGE( "Sending process save signal" );
if ( _pid ) if ( _pid )
::kill( _pid, _save_signal ); ::kill( _pid, _save_signal );
} }
@@ -261,7 +261,7 @@ public:
while ( 2 == fscanf( fp, "%m[^\n]\n\t%m[^\n]\n", &name, &value ) ) while ( 2 == fscanf( fp, "%m[^\n]\n\t%m[^\n]\n", &name, &value ) )
{ {


DMESSAGE( "%s=%s", name, value );
MESSAGE( "%s=%s", name, value );


if ( !strcmp( name, "executable" ) ) if ( !strcmp( name, "executable" ) )
_executable = value; _executable = value;
@@ -301,7 +301,7 @@ public:


void update ( lo_address to ) void update ( lo_address to )
{ {
DMESSAGE( "Sending update" );
MESSAGE( "Sending update" );


lo_send_from( to, losrv, LO_TT_IMMEDIATE, "/nsm/proxy/save_signal", "i", _save_signal ); lo_send_from( to, losrv, LO_TT_IMMEDIATE, "/nsm/proxy/save_signal", "i", _save_signal );
lo_send_from( to, losrv, LO_TT_IMMEDIATE, "/nsm/proxy/label", "s", _label ? _label : "" ); lo_send_from( to, losrv, LO_TT_IMMEDIATE, "/nsm/proxy/label", "s", _label ? _label : "" );
@@ -603,12 +603,12 @@ signal_handler ( int x )
void void
set_traps ( void ) set_traps ( void )
{ {
signal( SIGHUP, signal_handler );
signal( SIGINT, signal_handler );
// signal( SIGQUIT, signal_handler );
// signal( SIGSEGV, signal_handler );
// signal( SIGPIPE, signal_handler );
signal( SIGTERM, signal_handler );
signal( SIGHUP, signal_handler );
signal( SIGINT, signal_handler );
// signal( SIGQUIT, signal_handler );
// signal( SIGSEGV, signal_handler );
// signal( SIGPIPE, signal_handler );
signal( SIGTERM, signal_handler );
} }




@@ -645,7 +645,7 @@ die ( void )
{ {
if ( gui_pid ) if ( gui_pid )
{ {
DMESSAGE( "Killing GUI" );
MESSAGE( "Killing GUI" );


kill( gui_pid, SIGTERM ); kill( gui_pid, SIGTERM );
} }


+ 13
- 9
src/nsmd.cpp View File

@@ -282,7 +282,6 @@ static std::list< Client* > client;


/* helper macros for defining OSC handlers */ /* helper macros for defining OSC handlers */
#define OSC_NAME( name ) osc_ ## name #define OSC_NAME( name ) osc_ ## name
// #define OSCDMSG() DMESSAGE( "Got OSC message: %s", path );
#define OSC_HANDLER( name ) static int OSC_NAME( name ) ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ) #define OSC_HANDLER( name ) static int OSC_NAME( name ) ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data )


static char *session_path = NULL; static char *session_path = NULL;
@@ -1467,7 +1466,7 @@ load_session_file ( const char * path )
{ //This is not the case when --load-session was used. GUI announce will come later. { //This is not the case when --load-session was used. GUI announce will come later.


//Send two parameters to signal that the session was loaded: simple session-name, relative session path below session root //Send two parameters to signal that the session was loaded: simple session-name, relative session path below session root
DMESSAGE( "Informing GUI about running session name: %s with relative path %s", session_name, session_path + strlen( session_root ) );
MESSAGE( "Informing GUI about running session name: %s with relative path %s", session_name, session_path + strlen( session_root ) );
osc_server->send( gui_addr, "/nsm/gui/session/name", session_name, session_path + strlen( session_root )); osc_server->send( gui_addr, "/nsm/gui/session/name", session_name, session_path + strlen( session_root ));
} }


@@ -1663,7 +1662,7 @@ OSC_HANDLER( new )
osc_server->send( gui_addr, "/nsm/gui/session/session", &argv[0]->s ); osc_server->send( gui_addr, "/nsm/gui/session/session", &argv[0]->s );


//Send two parameters to signal that the session was loaded: simple session-name, relative session path below session root //Send two parameters to signal that the session was loaded: simple session-name, relative session path below session root
DMESSAGE( "Informing GUI about running session name: %s with relative path %s", session_name, session_path + strlen( session_root ) );
MESSAGE( "Informing GUI about running session name: %s with relative path %s", session_name, session_path + strlen( session_root ) );
osc_server->send( gui_addr, "/nsm/gui/session/name", session_name, session_path + strlen( session_root )); osc_server->send( gui_addr, "/nsm/gui/session/name", session_name, session_path + strlen( session_root ));
} }


@@ -2306,7 +2305,7 @@ announce_gui( const char *url, bool is_reply )
//No session_path without session_name. We only need to test for session_name. //No session_path without session_name. We only need to test for session_name.
if ( !session_name || session_name[0] == '\0' ) if ( !session_name || session_name[0] == '\0' )
{ {
DMESSAGE( "Informing GUI that no session is running by sending two empty strings" );
MESSAGE( "Informing GUI that no session is running by sending two empty strings" );
osc_server->send( gui_addr, "/nsm/gui/session/name", "", "" ); //Empty string = no current session osc_server->send( gui_addr, "/nsm/gui/session/name", "", "" ); //Empty string = no current session
} }
else else
@@ -2331,11 +2330,11 @@ announce_gui( const char *url, bool is_reply )
osc_server->send( gui_addr, "/nsm/gui/client/new", c->client_id, c->name ); // upgrade to pretty-name osc_server->send( gui_addr, "/nsm/gui/client/new", c->client_id, c->name ); // upgrade to pretty-name
} }


DMESSAGE( "Informing GUI about running session name: %s with relative path %s", session_name, session_path + strlen( session_root ) );
MESSAGE( "Informing GUI about running session name: %s with relative path %s", session_name, session_path + strlen( session_root ) );
osc_server->send( gui_addr, "/nsm/gui/session/name", session_name, session_path + strlen( session_root )); osc_server->send( gui_addr, "/nsm/gui/session/name", session_name, session_path + strlen( session_root ));
} }


DMESSAGE( "Registration with GUI complete\n" );
MESSAGE( "Registration with GUI complete\n" );
} }




@@ -2410,6 +2409,7 @@ int main(int argc, char *argv[])
{ "help", no_argument, 0, 'h' }, { "help", no_argument, 0, 'h' },
{ "version", no_argument, 0, 'v' }, { "version", no_argument, 0, 'v' },
{ "load-session", required_argument, 0, 'l'}, { "load-session", required_argument, 0, 'l'},
{ "quiet", no_argument, 0, 'q'}, //supresses all normal MESSAGE except WARNING and FATAL
{ 0, 0, 0, 0 } { 0, 0, 0, 0 }
}; };


@@ -2436,21 +2436,24 @@ int main(int argc, char *argv[])
break; break;
} }
case 'p': case 'p':
DMESSAGE( "Using OSC port %s", optarg );
MESSAGE( "Using OSC port %s", optarg );
osc_port = optarg; osc_port = optarg;
break; break;
case 'g': case 'g':
DMESSAGE( "Going to connect to GUI at: %s", optarg );
MESSAGE( "Going to connect to GUI at: %s", optarg );
gui_url = optarg; gui_url = optarg;
break; break;
case 'l': case 'l':
DMESSAGE( "Loading existing session file %s", optarg);
MESSAGE( "Loading existing session file %s", optarg);
load_session = optarg; load_session = optarg;
break; break;
case 'v': case 'v':
printf( "%s " VERSION_STRING "\n", argv[0] ); printf( "%s " VERSION_STRING "\n", argv[0] );
exit(0); exit(0);
break; break;
case 'q':
quietMessages = true; //from debug.h
break;
case 'h': case 'h':
//Print usage message according to POSIX.1-2017 //Print usage message according to POSIX.1-2017
const char *usage = const char *usage =
@@ -2468,6 +2471,7 @@ int main(int argc, char *argv[])
" --load-session name Load existing session [Example: \"My Song\"].\n" " --load-session name Load existing session [Example: \"My Song\"].\n"
" --gui-url url Connect to running legacy-gui [Example: osc.udp://mycomputer.localdomain:38356/].\n" " --gui-url url Connect to running legacy-gui [Example: osc.udp://mycomputer.localdomain:38356/].\n"
" --detach Detach from console.\n" " --detach Detach from console.\n"
" --quiet Suppress messages except warnings and errors.\n"
"\n\n" "\n\n"
"nsmd can be run headless with existing sessions. To create new ones it is recommended to use a GUI\n" "nsmd can be run headless with existing sessions. To create new ones it is recommended to use a GUI\n"
"such as nsm-legacy-gui (included) or Agordejo (separate package)\n" "such as nsm-legacy-gui (included) or Agordejo (separate package)\n"


Loading…
Cancel
Save