89 lines
1.8 KiB
C
89 lines
1.8 KiB
C
/** @file cpu_load.c
|
|
*
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <errno.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <math.h>
|
|
#include <signal.h>
|
|
#ifndef WIN32
|
|
#include <unistd.h>
|
|
#endif
|
|
#include <jack/jack.h>
|
|
|
|
|
|
jack_client_t *client;
|
|
|
|
static void signal_handler(int sig)
|
|
{
|
|
jack_client_close(client);
|
|
fprintf(stderr, "signal received, exiting ...\n");
|
|
exit(0);
|
|
}
|
|
|
|
|
|
/**
|
|
* JACK calls this shutdown_callback if the server ever shuts down or
|
|
* decides to disconnect the client.
|
|
*/
|
|
void
|
|
jack_shutdown(void *arg)
|
|
{
|
|
exit(1);
|
|
}
|
|
|
|
int
|
|
main(int argc, char *argv[])
|
|
{
|
|
jack_options_t options = JackNullOption;
|
|
jack_status_t status;
|
|
|
|
/* open a client connection to the JACK server */
|
|
|
|
client = jack_client_open ("jack_cpu_load", options, &status);
|
|
if (client == NULL) {
|
|
fprintf(stderr, "jack_client_open() failed, "
|
|
"status = 0x%2.0x\n", status);
|
|
if (status & JackServerFailed) {
|
|
fprintf(stderr, "Unable to connect to JACK server\n");
|
|
}
|
|
exit(1);
|
|
}
|
|
|
|
jack_on_shutdown(client, jack_shutdown, 0);
|
|
|
|
/* Tell the JACK server that we are ready to roll. Our
|
|
* process() callback will start running now. */
|
|
|
|
if (jack_activate(client)) {
|
|
fprintf(stderr, "cannot activate client");
|
|
exit(1);
|
|
}
|
|
|
|
/* install a signal handler to properly quits jack client */
|
|
#ifdef WIN32
|
|
signal(SIGINT, signal_handler);
|
|
signal(SIGABRT, signal_handler);
|
|
signal(SIGTERM, signal_handler);
|
|
#else
|
|
signal(SIGQUIT, signal_handler);
|
|
signal(SIGTERM, signal_handler);
|
|
signal(SIGHUP, signal_handler);
|
|
signal(SIGINT, signal_handler);
|
|
#endif
|
|
|
|
while (1) {
|
|
printf("jack DSP load %f\n", jack_cpu_load(client));
|
|
#ifdef WIN32
|
|
Sleep(1000);
|
|
#else
|
|
sleep(1);
|
|
#endif
|
|
}
|
|
|
|
jack_client_close(client);
|
|
exit(0 );
|
|
}
|