Browse Source

add examples...

tags/0.120.1
Torben Hohn 16 years ago
parent
commit
ecdbe0a5d5
3 changed files with 119 additions and 0 deletions
  1. +12
    -0
      example-clients/simple_client.c
  2. +5
    -0
      tools/Makefile.am
  3. +102
    -0
      tools/session_notify.c

+ 12
- 0
example-clients/simple_client.c View File

@@ -37,6 +37,17 @@ process (jack_nframes_t nframes, void *arg)
return 0;
}

char *session_callback( jack_session_event_t code, char *path, char *prefix, void *arg )
{
printf( "session notification\n" );
printf( "path %s, prefix %s, type: %s", path, prefix, code == JackSessionSave ? "save" : "quit" );

if( code == JackSessionQuit )
exit(1);

return strdup( "jack_simpleclient" );
}

/**
* JACK calls this shutdown_callback if the server ever shuts down or
* decides to disconnect the client.
@@ -88,6 +99,7 @@ main (int argc, char *argv[])

jack_on_shutdown (client, jack_shutdown, 0);

jack_set_session_callback( client, session_callback, NULL );
/* display the current sample rate.
*/



+ 5
- 0
tools/Makefile.am View File

@@ -38,6 +38,7 @@ bin_PROGRAMS = jack_load \
jack_alias \
jack_bufsize \
jack_samplerate \
jack_session_notify \
jack_wait \
$(JACK_TRANSPORT) \
$(NETJACK_TOOLS)
@@ -96,6 +97,10 @@ jack_samplerate_SOURCES = samplerate.c
jack_samplerate_LDFLAGS = @OS_LDFLAGS@
jack_samplerate_LDADD = $(top_builddir)/libjack/libjack.la

jack_session_notify_SOURCES = session_notify.c
jack_session_notify_LDFLAGS = @OS_LDFLAGS@
jack_session_notify_LDADD = $(top_builddir)/libjack/libjack.la

if HAVE_READLINE
jack_transport_SOURCES = transport.c
jack_transport_LDFLAGS = -lreadline @READLINE_DEPS@ @OS_LDFLAGS@


+ 102
- 0
tools/session_notify.c View File

@@ -0,0 +1,102 @@
/*
* smaplerate.c -- get current samplerate
*
* Copyright (C) 2003 Jack O'Quin.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/

#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include <jack/jack.h>
#include <jack/transport.h>

char *package; /* program name */
jack_client_t *client;

jack_session_event_t notify_type;
char *save_path = NULL;

void jack_shutdown(void *arg)
{
fprintf(stderr, "JACK shut down, exiting ...\n");
exit(1);
}

void signal_handler(int sig)
{
jack_client_close(client);
fprintf(stderr, "signal received, exiting ...\n");
exit(0);
}

void parse_arguments(int argc, char *argv[])
{

/* basename $0 */
package = strrchr(argv[0], '/');
if (package == 0)
package = argv[0];
else
package++;

if (argc==2) {
if( !strcmp( argv[1], "quit" ) ) {
notify_type = JackSessionQuit;
return;
}
}
if (argc==3) {
if( !strcmp( argv[1], "save" ) ) {
notify_type = JackSessionSave;
save_path = argv[2];
}

}
fprintf(stderr, "usage: %s quit|save [path]\n", package);
exit(9);
}

int main(int argc, char *argv[])
{
parse_arguments(argc, argv);
int retval;

/* become a JACK client */
if ((client = jack_client_new(package)) == 0) {
fprintf(stderr, "JACK server not running?\n");
exit(1);
}

signal(SIGQUIT, signal_handler);
signal(SIGTERM, signal_handler);
signal(SIGHUP, signal_handler);
signal(SIGINT, signal_handler);

jack_on_shutdown(client, jack_shutdown, 0);


retval = jack_session_notify( client, notify_type, save_path );
printf( "session notify returned: %d", retval );


jack_client_close(client);

return 0;
}

Loading…
Cancel
Save