From 653f1f9736e32754f6e91e41b83e4513a523be55 Mon Sep 17 00:00:00 2001 From: Torben Hohn Date: Sat, 7 Nov 2009 18:09:38 +0100 Subject: [PATCH] make bufsize report bufsize, and add samplerate --- example-clients/bufsize.c | 21 ++++++--- example-clients/samplerate.c | 87 ++++++++++++++++++++++++++++++++++++ example-clients/wscript | 1 + 3 files changed, 104 insertions(+), 5 deletions(-) create mode 100644 example-clients/samplerate.c diff --git a/example-clients/bufsize.c b/example-clients/bufsize.c index d867a9ea..aded1100 100644 --- a/example-clients/bufsize.c +++ b/example-clients/bufsize.c @@ -30,6 +30,7 @@ char *package; /* program name */ jack_client_t *client; jack_nframes_t nframes; +int just_print_bufsize=0; void jack_shutdown(void *arg) { @@ -54,6 +55,10 @@ void parse_arguments(int argc, char *argv[]) else package++; + if (argc==1) { + just_print_bufsize = 1; + return; + } if (argc < 2) { fprintf(stderr, "usage: %s \n", package); exit(9); @@ -74,7 +79,7 @@ int main(int argc, char *argv[]) parse_arguments(argc, argv); /* become a JACK client */ - if ((client = jack_client_open(package, JackNullOption, NULL)) == 0) { + if ((client = jack_client_new(package)) == 0) { fprintf(stderr, "JACK server not running?\n"); exit(1); } @@ -86,10 +91,16 @@ int main(int argc, char *argv[]) jack_on_shutdown(client, jack_shutdown, 0); - rc = jack_set_buffer_size(client, nframes); - if (rc) - fprintf(stderr, "jack_set_buffer_size(): %s\n", strerror(rc)); - + if (just_print_bufsize) { + fprintf(stdout, "%d", jack_get_buffer_size( client ) ); + rc=0; + } + else + { + rc = jack_set_buffer_size(client, nframes); + if (rc) + fprintf(stderr, "jack_set_buffer_size(): %s\n", strerror(rc)); + } jack_client_close(client); return rc; diff --git a/example-clients/samplerate.c b/example-clients/samplerate.c new file mode 100644 index 00000000..34551a9e --- /dev/null +++ b/example-clients/samplerate.c @@ -0,0 +1,87 @@ +/* + * 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 +#include +#include +#include +#include +#include +#include +#include + +char *package; /* program name */ +jack_client_t *client; + +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==1) { + return; + } + fprintf(stderr, "usage: %s [bufsize]\n", package); + exit(9); +} + +int main(int argc, char *argv[]) +{ + int rc; + + parse_arguments(argc, argv); + + /* 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); + + fprintf(stdout, "%d", jack_get_sample_rate( client ) ); + + jack_client_close(client); + + return 0; +} diff --git a/example-clients/wscript b/example-clients/wscript index 34e750ad..7a01cdd4 100644 --- a/example-clients/wscript +++ b/example-clients/wscript @@ -16,6 +16,7 @@ example_programs = { 'jack_showtime' : 'showtime.c', 'jack_alias' : 'alias.c', 'jack_bufsize' : 'bufsize.c', + 'jack_samplerate' : 'samplerate.c', 'jack_evmon' : 'evmon.c', 'jack_monitor_client' : 'monitor_client.c', 'jack_thru' : 'thru_client.c',