Browse Source

Minor cleanup for 'midi_latency_test.c'.

tags/1.9.8
Devin Anderson 14 years ago
parent
commit
dd4012c6ca
1 changed files with 25 additions and 13 deletions
  1. +25
    -13
      example-clients/midi_latency_test.c

+ 25
- 13
example-clients/midi_latency_test.c View File

@@ -95,11 +95,13 @@ char *program_name;
jack_port_t *remote_in_port;
jack_port_t *remote_out_port;
size_t samples;

#ifdef __APPLE__
sem_t* semaphore;
#else
sem_t semaphore;
#endif

pthread_mutex_t start_mutex;
int timeout;
jack_nframes_t total_latency;
@@ -216,11 +218,13 @@ handle_process(jack_nframes_t frames, void *arg)
messages_received++;
if (messages_received == samples) {
process_state = 2;
#ifdef __APPLE__

#ifdef __APPLE__
sem_post(semaphore);
#else
#else
sem_post(&semaphore);
#endif
#endif

break;
}
send_message:
@@ -310,11 +314,13 @@ set_process_error(const char *source, const char *message)
error_source = source;
error_message = message;
process_state = -1;
#ifdef __APPLE__

#ifdef __APPLE__
sem_post(semaphore);
#else
sem_post(&semaphore);
#endif

}

int
@@ -472,6 +478,7 @@ main(int argc, char **argv)
jack_on_shutdown(client, handle_shutdown, NULL);
jack_set_info_function(handle_info);
process_state = 0;

#ifdef __APPLE__
// sem_init is not implemented on OSX
char name[128];
@@ -488,6 +495,7 @@ main(int argc, char **argv)
goto unregister_out_port;
}
#endif

code = pthread_mutex_init(&start_mutex, NULL);
if (code) {
error_message = strerror(errno);
@@ -523,15 +531,19 @@ main(int argc, char **argv)
error_source = "pthread_mutex_unlock";
goto deactivate_client;
}

#ifdef __APPLE__
while (sem_wait(semaphore) != 0) {}
while (sem_wait(semaphore) != 0) {
#else
if (sem_wait(&semaphore)) {
error_message = strerror(errno);
error_source = "sem_wait";
goto deactivate_client;
}
while (sem_wait(&semaphore) != 0) {
#endif

if (errno != EINTR) {
error_message = strerror(errno);
error_source = "sem_wait";
goto deactivate_client;
}
}
if (process_state == 2) {
double average_latency = ((double) total_latency) / samples;
double average_latency_time = total_latency_time / samples;
@@ -599,11 +611,14 @@ main(int argc, char **argv)
destroy_mutex:
pthread_mutex_destroy(&start_mutex);
destroy_semaphore:

#ifdef __APPLE__
sem_destroy(semaphore);
sem_unlink(name);
#else
sem_destroy(&semaphore);
#endif

unregister_out_port:
jack_port_unregister(client, out_port);
unregister_in_port:
@@ -623,8 +638,5 @@ main(int argc, char **argv)
output_error(error_source, error_message);
exit(EXIT_FAILURE);
}
#ifdef __APPLE__
sem_unlink(name);
#endif
return EXIT_SUCCESS;
}

Loading…
Cancel
Save