54 lines
1.3 KiB
C
54 lines
1.3 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <jack/jack.h>
|
|
#include "engine.h"
|
|
#include "gui.h"
|
|
|
|
static jack_client_t *client = NULL;
|
|
static float *buffer = NULL;
|
|
static int buffer_size = 0;
|
|
|
|
int main(void)
|
|
{
|
|
/* create JACK client */
|
|
const char *client_name = "jack_looper_gui_test";
|
|
jack_options_t options = JackNullOption;
|
|
jack_status_t status;
|
|
|
|
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;
|
|
}
|
|
|
|
/* allocate audio buffer */
|
|
buffer_size = 4096;
|
|
buffer = calloc(buffer_size, sizeof(float));
|
|
if (!buffer) {
|
|
fprintf(stderr, "Failed to allocate audio buffer\n");
|
|
jack_client_close(client);
|
|
return 1;
|
|
}
|
|
|
|
/* initialize engine */
|
|
if (engine_init(client, buffer, buffer_size) != 0) {
|
|
fprintf(stderr, "Failed to initialize engine\n");
|
|
free(buffer);
|
|
jack_client_close(client);
|
|
return 1;
|
|
}
|
|
|
|
/* run GUI */
|
|
int ret = gui_main(client, buffer, buffer_size);
|
|
|
|
/* cleanup */
|
|
engine_cleanup(client);
|
|
free(buffer);
|
|
jack_client_close(client);
|
|
|
|
return ret;
|
|
}
|