bump micro version
[jack.git] / tools / ipunload.c
bloba49418c2d242eec579751a2ebce4fe7a80d18cda
1 #include <string.h>
2 #include <stdlib.h>
3 #include <stdio.h>
4 #include <jack/jack.h>
5 #include <jack/intclient.h>
7 int
8 main (int argc, char *argv[])
10 char *my_name;
11 char *client_name;
12 jack_client_t *client;
13 jack_status_t status;
14 jack_intclient_t intclient;
16 /* validate args */
17 if ((argc < 2) || (argc > 3)) {
18 fprintf (stderr, "usage: %s client-name [ server-name ]]\n",
19 argv[0]);
20 return 1;
23 /* use `basename $0` for my own client name */
24 my_name = strrchr(argv[0], '/');
25 if (my_name == 0) {
26 my_name = argv[0];
27 } else {
28 my_name++;
31 /* first, become a JACK client */
32 if (argc > 2) {
33 client = jack_client_open (my_name,
34 (JackServerName|JackNoStartServer),
35 &status, argv[2]);
36 } else {
37 client = jack_client_open (my_name, JackNoStartServer, &status);
40 if (client == NULL) {
41 if (status & JackServerFailed) {
42 fprintf (stderr, "JACK server not running.\n");
43 } else {
44 fprintf (stderr, "JACK open failed, "
45 "status = 0x%2.0x\n", status);
47 exit (1);
50 /* then, get the internal client handle */
51 client_name = argv[1];
52 intclient = jack_internal_client_handle (client, client_name, &status);
53 if (status & JackFailure) {
54 fprintf (stderr, "client %s not found.\n", client_name);
55 exit (2);
58 /* now, unload the internal client */
59 status = jack_internal_client_unload (client, intclient);
60 if (status & JackFailure) {
61 if (status & JackNoSuchClient) {
62 fprintf (stderr, "client %s is gone.\n",
63 client_name);
64 } else {
65 fprintf (stderr, "could not unload %s, "
66 "returns 0x%2.0x\n", client_name, status);
68 exit (3);
69 } else {
70 fprintf (stdout, "%s unloaded.\n", client_name);
73 return 0;