| @@ -2,7 +2,7 @@ | |||||
| * transport.c -- JACK transport master example client. | * transport.c -- JACK transport master example client. | ||||
| * | * | ||||
| * Copyright (C) 2003 Jack O'Quin. | * Copyright (C) 2003 Jack O'Quin. | ||||
| * | |||||
| * | |||||
| * This program is free software; you can redistribute it and/or modify | * 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 | * it under the terms of the GNU General Public License as published by | ||||
| * the Free Software Foundation; either version 2 of the License, or | * the Free Software Foundation; either version 2 of the License, or | ||||
| @@ -53,7 +53,7 @@ volatile int time_reset = 1; /* true when time values change */ | |||||
| * | * | ||||
| * Runs in the process thread. Realtime, must not wait. | * Runs in the process thread. Realtime, must not wait. | ||||
| */ | */ | ||||
| static void timebase(jack_transport_state_t state, jack_nframes_t nframes, | |||||
| static void timebase(jack_transport_state_t state, jack_nframes_t nframes, | |||||
| jack_position_t *pos, int new_pos, void *arg) | jack_position_t *pos, int new_pos, void *arg) | ||||
| { | { | ||||
| double min; /* minutes since frame 0 */ | double min; /* minutes since frame 0 */ | ||||
| @@ -238,7 +238,7 @@ command_t commands[] = { | |||||
| {"?", com_help, "Synonym for `help'" }, | {"?", com_help, "Synonym for `help'" }, | ||||
| {(char *)NULL, (cmd_function_t *)NULL, (char *)NULL } | {(char *)NULL, (cmd_function_t *)NULL, (char *)NULL } | ||||
| }; | }; | ||||
| static command_t *find_command(char *name) | static command_t *find_command(char *name) | ||||
| { | { | ||||
| register int i; | register int i; | ||||
| @@ -258,7 +258,7 @@ static command_t *find_command(char *name) | |||||
| else | else | ||||
| return (&commands[i]); | return (&commands[i]); | ||||
| } | } | ||||
| return ((command_t *)NULL); | return ((command_t *)NULL); | ||||
| } | } | ||||
| @@ -302,33 +302,33 @@ static void execute_command(char *line) | |||||
| register int i; | register int i; | ||||
| command_t *command; | command_t *command; | ||||
| char *word; | char *word; | ||||
| /* Isolate the command word. */ | /* Isolate the command word. */ | ||||
| i = 0; | i = 0; | ||||
| while (line[i] && whitespace(line[i])) | while (line[i] && whitespace(line[i])) | ||||
| i++; | i++; | ||||
| word = line + i; | word = line + i; | ||||
| while (line[i] && !whitespace(line[i])) | while (line[i] && !whitespace(line[i])) | ||||
| i++; | i++; | ||||
| if (line[i]) | if (line[i]) | ||||
| line[i++] = '\0'; | line[i++] = '\0'; | ||||
| command = find_command(word); | command = find_command(word); | ||||
| if (!command) { | if (!command) { | ||||
| fprintf(stderr, "%s: No such command. There is `help\'.\n", | fprintf(stderr, "%s: No such command. There is `help\'.\n", | ||||
| word); | word); | ||||
| return; | return; | ||||
| } | } | ||||
| /* Get argument to command, if any. */ | /* Get argument to command, if any. */ | ||||
| while (whitespace(line[i])) | while (whitespace(line[i])) | ||||
| i++; | i++; | ||||
| word = line + i; | word = line + i; | ||||
| /* invoke the command function. */ | /* invoke the command function. */ | ||||
| (*command->func)(word); | (*command->func)(word); | ||||
| } | } | ||||
| @@ -345,28 +345,28 @@ static char *stripwhite(char *string) | |||||
| if (*s == '\0') | if (*s == '\0') | ||||
| return s; | return s; | ||||
| t = s + strlen (s) - 1; | t = s + strlen (s) - 1; | ||||
| while (t > s && whitespace(*t)) | while (t > s && whitespace(*t)) | ||||
| t--; | t--; | ||||
| *++t = '\0'; | *++t = '\0'; | ||||
| return s; | return s; | ||||
| } | } | ||||
| static char *dupstr(char *s) | static char *dupstr(char *s) | ||||
| { | { | ||||
| char *r = malloc(strlen(s) + 1); | char *r = malloc(strlen(s) + 1); | ||||
| strcpy(r, s); | strcpy(r, s); | ||||
| return r; | return r; | ||||
| } | } | ||||
| /* Readline generator function for command completion. */ | /* Readline generator function for command completion. */ | ||||
| static char *command_generator (const char *text, int state) | static char *command_generator (const char *text, int state) | ||||
| { | { | ||||
| static int list_index, len; | static int list_index, len; | ||||
| char *name; | char *name; | ||||
| /* If this is a new word to complete, initialize now. This | /* If this is a new word to complete, initialize now. This | ||||
| includes saving the length of TEXT for efficiency, and | includes saving the length of TEXT for efficiency, and | ||||
| initializing the index variable to 0. */ | initializing the index variable to 0. */ | ||||
| @@ -374,16 +374,16 @@ static char *command_generator (const char *text, int state) | |||||
| list_index = 0; | list_index = 0; | ||||
| len = strlen (text); | len = strlen (text); | ||||
| } | } | ||||
| /* Return the next name which partially matches from the | /* Return the next name which partially matches from the | ||||
| command list. */ | command list. */ | ||||
| while ((name = commands[list_index].name)) { | while ((name = commands[list_index].name)) { | ||||
| list_index++; | list_index++; | ||||
| if (strncmp(name, text, len) == 0) | if (strncmp(name, text, len) == 0) | ||||
| return dupstr(name); | return dupstr(name); | ||||
| } | } | ||||
| return (char *) NULL; /* No names matched. */ | return (char *) NULL; /* No names matched. */ | ||||
| } | } | ||||
| @@ -397,7 +397,7 @@ static void command_loop() | |||||
| /* Allow conditional parsing of the ~/.inputrc file. */ | /* Allow conditional parsing of the ~/.inputrc file. */ | ||||
| rl_readline_name = package; | rl_readline_name = package; | ||||
| /* Define a custom completion function. */ | /* Define a custom completion function. */ | ||||
| rl_completion_entry_function = command_generator; | rl_completion_entry_function = command_generator; | ||||
| #else | #else | ||||
| @@ -410,7 +410,7 @@ static void command_loop() | |||||
| #ifdef HAVE_READLINE | #ifdef HAVE_READLINE | ||||
| line = readline(prompt); | line = readline(prompt); | ||||
| if (line == NULL) { /* EOF? */ | if (line == NULL) { /* EOF? */ | ||||
| printf("\n"); /* close out prompt */ | printf("\n"); /* close out prompt */ | ||||
| done = 1; | done = 1; | ||||
| @@ -421,7 +421,7 @@ static void command_loop() | |||||
| fgets(line, sizeof(line), stdin); | fgets(line, sizeof(line), stdin); | ||||
| line[strlen(line)-1] = '\0'; | line[strlen(line)-1] = '\0'; | ||||
| #endif | #endif | ||||
| /* Remove leading and trailing whitespace from the line. */ | /* Remove leading and trailing whitespace from the line. */ | ||||
| cmd = stripwhite(line); | cmd = stripwhite(line); | ||||
| @@ -433,7 +433,7 @@ static void command_loop() | |||||
| #endif | #endif | ||||
| execute_command(cmd); | execute_command(cmd); | ||||
| } | } | ||||
| #ifdef HAVE_READLINE | #ifdef HAVE_READLINE | ||||
| free(line); /* realine() called malloc() */ | free(line); /* realine() called malloc() */ | ||||
| #endif | #endif | ||||