void gojack_generic_callback_sync_destroy(struct gojack_generic_callback_sync *sync) { jack_set_freewheel_callback(sync->client, NULL, NULL); jack_set_buffer_size_callback(sync->client, NULL, NULL); jack_set_sample_rate_callback(sync->client, NULL, NULL); jack_set_client_registration_callback(sync->client, NULL, NULL); jack_set_port_registration_callback(sync->client, NULL, NULL); jack_set_port_connect_callback(sync->client, NULL, NULL); jack_set_port_rename_callback(sync->client, NULL, NULL); jack_set_graph_order_callback(sync->client, NULL, NULL); jack_set_xrun_callback(sync->client, NULL, NULL); jack_set_latency_callback(sync->client, NULL, NULL); cgo_callback_sync_destroy(sync->base); pthread_mutex_destroy(&sync->lock); free(sync); }
int main (int argc, char *argv[]) { jack_client_t *client; jack_options_t options = JackNullOption; jack_status_t status; if ((client = jack_client_open ("event-monitor", options, &status, NULL)) == 0) { fprintf (stderr, "jack_client_open() failed, " "status = 0x%2.0x\n", status); if (status & JackServerFailed) { fprintf (stderr, "Unable to connect to JACK server\n"); } return 1; } if (jack_set_port_registration_callback (client, port_callback, NULL)) { fprintf (stderr, "cannot set port registration callback\n"); return 1; } if (jack_set_port_connect_callback (client, connect_callback, NULL)) { fprintf (stderr, "cannot set port connect callback\n"); return 1; } if (jack_set_client_registration_callback (client, client_callback, NULL)) { fprintf (stderr, "cannot set client registration callback\n"); return 1; } if (jack_set_graph_order_callback (client, graph_callback, NULL)) { fprintf (stderr, "cannot set graph order registration callback\n"); return 1; } if (jack_set_property_change_callback (client, (JackPropertyChangeCallback) propchange, 0)) { fprintf (stderr, "cannot set property change callback\n"); return 1; } if (jack_activate (client)) { fprintf (stderr, "cannot activate client"); return 1; } sleep (-1); exit (0); }
struct gojack_generic_callback_sync * gojack_generic_callback_sync_create(jack_client_t *client) { struct gojack_generic_callback_sync *sync = (struct gojack_generic_callback_sync *) malloc(sizeof(struct gojack_generic_callback_sync)); void *arg = (void *) sync; sync->base = cgo_callback_sync_create(); cgo_callback_sync_set_log_callback(sync->base, &handle_log, NULL); pthread_mutex_init(&sync->lock, NULL); sync->client = client; jack_set_freewheel_callback(client, &handle_freewheel, arg); jack_set_buffer_size_callback(client, &handle_buffer_size, arg); //jack_set_sample_rate_callback(client, &handle_sample_rate, arg); jack_set_client_registration_callback(client, &handle_client_registration, arg); jack_set_port_registration_callback(client, &handle_port_registration, arg); jack_set_port_connect_callback(client, &handle_port_connect, arg); jack_set_port_rename_callback(client, &handle_port_rename, arg); jack_set_graph_order_callback(client, &handle_graph_order, arg); jack_set_xrun_callback(client, &handle_xrun, arg); //jack_set_latency_callback(client, &handle_latency, arg); return sync; }
int main (int argc, char *argv[]) { // Make output unbuffered setbuf(stdout, NULL); setbuf(stderr, NULL); if (argc >= 2 && ( strcmp(argv[1],"-h")==0 || strcmp(argv[1],"--help")==0)) { printf("send jack events as OSC message\n\n"); printf("syntax: jack_oscev <osc local port> <osc remote host> <osc remote port>\n\n"); printf("all params are optional. order matters.\n"); printf("default values: 6677 127.0.0.1 6678\n"); printf("example: jack_oscev 9988 10.10.10.42\n"); printf("test on .42: oscdump 6678\n\n"); printf("messages sent by jack_oscev (example content):\n"); printf(" /oscev/started\n"); printf(" /oscev/client/registered s \"meter\"\n"); printf(" /oscev/port/registered i 24\n"); printf(" /oscev/port/connected ii 2 24\n"); printf(" /oscev/port/disconnected ii 2 24\n"); printf(" /oscev/port/unregistered i 24\n"); printf(" /oscev/client/unregistered s \"meter\"\n\n"); //printf(""); printf("jack_oscev source at https://github.com/7890/jack_tools\n\n"); return(0); } //remote port if (argc >= 4) { osc_send_to_port=argv[3]; } if (argc >= 3) { osc_send_to_host=argv[2]; } //local port if (argc >= 2) { osc_my_server_port=argv[1]; } //init osc st = lo_server_thread_new(osc_my_server_port, error); loa = lo_address_new(osc_send_to_host, osc_send_to_port); lo_server_thread_start(st); lo_message reply=lo_message_new(); lo_send_message (loa, "/oscev/started", reply); lo_message_free (reply); jack_options_t options = JackNullOption; jack_status_t status; if ((client = jack_client_open ("oscev", options, &status, NULL)) == 0) { fprintf (stderr, "jack_client_open() failed, " "status = 0x%2.0x\n", status); if (status & JackServerFailed) { fprintf (stderr, "Unable to connect to JACK server\n"); } return 1; } if (jack_set_port_registration_callback (client, port_callback, NULL)) { fprintf (stderr, "cannot set port registration callback\n"); return 1; } if (jack_set_port_connect_callback (client, connect_callback, NULL)) { fprintf (stderr, "cannot set port connect callback\n"); return 1; } if (jack_set_client_registration_callback (client, client_callback, NULL)) { fprintf (stderr, "cannot set client registration callback\n"); return 1; } /* //don't register for now if (jack_set_graph_order_callback (client, graph_callback, NULL)) { fprintf (stderr, "cannot set graph order registration callback\n"); return 1; } */ if (jack_activate (client)) { fprintf (stderr, "cannot activate client"); return 1; } #ifndef WIN32 signal(SIGINT, signal_handler); signal(SIGQUIT, signal_handler); signal(SIGHUP, signal_handler); #endif signal(SIGABRT, signal_handler); signal(SIGTERM, signal_handler); #ifdef WIN32 Sleep(INFINITE); #else sleep (-1); #endif exit (0); }
int main (int argc, char *argv[]) { jack_status_t status; char* name; /* parse and validate command arguments */ if (parse_args (argc, argv)) exit (1); /* invalid command line */ /* first, become a JACK client */ client = jack_client_open (client_name, JackServerName, &status, server_name); if (client == NULL) { fprintf (stderr, "jack_client_open() failed, " "status = 0x%2.0x\n", status); if (status & JackServerFailed) { fprintf (stderr, "Unable to connect to JACK server\n"); } exit (1); } if (status & JackServerStarted) { fprintf (stderr, "JACK server started\n"); } if (status & JackNameNotUnique) { client_name = jack_get_client_name(client); fprintf (stderr, "unique name `%s' assigned\n", client_name); } /* then, load the internal client */ intclient = jack_internal_client_load (client, intclient_name, (JackLoadName|JackLoadInit), &status, load_name, load_init); if (status & JackFailure) { fprintf (stderr, "could not load %s, intclient = %d status = 0x%2.0x\n", load_name, (int)intclient, status); return 2; } if (status & JackNameNotUnique) { intclient_name = jack_get_internal_client_name (client, intclient); fprintf (stderr, "unique internal client name `%s' assigned\n", intclient_name); } fprintf (stdout, "%s is running.\n", load_name); name = jack_get_internal_client_name(client, intclient); if (name) { printf("client name = %s\n", name); free(name); } fflush(stdout); if (autoclose_opt) { jack_set_client_registration_callback(client, registration_callback, NULL); jack_activate(client); } if (wait_opt) { /* define a signal handler to unload the client, then * wait for it to exit */ #ifdef WIN32 signal(SIGINT, signal_handler); signal(SIGABRT, signal_handler); signal(SIGTERM, signal_handler); #else signal(SIGQUIT, signal_handler); signal(SIGTERM, signal_handler); signal(SIGHUP, signal_handler); signal(SIGINT, signal_handler); #endif while (idling) { #ifdef WIN32 Sleep(1000); #else sleep (1); #endif } } if (autoclose_opt) { jack_deactivate(client); } jack_client_close(client); return 0; }