// cppcheck-suppress missingIncludeSystem #include "looper.h" #include "pipe.h" #include #include #include #include #include int main(int argc, char *argv[]) { (void)argc; (void)argv; const char *client_name = "looper"; jack_options_t options = JackNullOption; jack_status_t status; jack_client_t *client = jack_client_open(client_name, 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"); return 1; } if (status & JackNameNotUnique) client_name = jack_get_client_name(client); jack_set_process_callback(client, process_callback, NULL); jack_on_shutdown(client, jack_shutdown_cb, NULL); if (looper_init(client) != 0) { fprintf(stderr, "looper initialisation failed\n"); jack_client_close(client); return 1; } if (pipe_start_reader() != 0) { fprintf(stderr, "pipe reader initialisation failed\n"); jack_client_close(client); return 1; } if (jack_activate(client)) { fprintf(stderr, "Cannot activate client\n"); jack_client_close(client); return 1; } fprintf(stderr, "looper running (client name '%s')\n", client_name); while (1) { looper_process_commands(client); { struct timespec ts = {.tv_sec = 0, .tv_nsec = 1000000}; nanosleep(&ts, NULL); } /* check commands every 1 ms */ } jack_client_close(client); return 0; }