diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/LV2-render.c | 16 | ||||
| -rw-r--r-- | src/worker.c | 38 |
2 files changed, 35 insertions, 19 deletions
diff --git a/src/LV2-render.c b/src/LV2-render.c index 490f1ae..124c6dd 100644 --- a/src/LV2-render.c +++ b/src/LV2-render.c @@ -79,6 +79,9 @@ #include "midi/fluidsynth_priv.h" #define DEBUG 0 +#define FILE_OK 0x0 +#define WRITE_OK 0x2 + int min(int x, int y) { return (x < y) ? x : y; @@ -592,6 +595,19 @@ main(int argc, char** argv) strcpy(jalv.opts.infile, "test.mid"); } + + //make sure input and output exist + if(access(jalv.opts.infile, FILE_OK)){ + fprintf(stderr, "ERROR:Could not find %s\n Please specify an input file with -i\n", jalv.opts.infile); + exit(1); + } + if(!access(jalv.opts.outfile, WRITE_OK)){ + fprintf(stderr, "ERROR:Could not write to %s\n.", jalv.opts.outfile); + exit(1); + } + + + if (! jalv.opts.sample_rate){ jalv.opts.sample_rate = 48000; } diff --git a/src/worker.c b/src/worker.c index 074ecf2..9fb92e2 100644 --- a/src/worker.c +++ b/src/worker.c @@ -22,9 +22,9 @@ jalv_worker_respond(LV2_Worker_Respond_Handle handle, const void* data) { Jalv* jalv = (Jalv*)handle; - jack_ringbuffer_write(jalv->worker.responses, - (const char*)&size, sizeof(size)); - jack_ringbuffer_write(jalv->worker.responses, (const char*)data, size); +// jack_ringbuffer_write(jalv->worker.responses, +// (const char*)&size, sizeof(size)); +// jack_ringbuffer_write(jalv->worker.responses, (const char*)data, size); return LV2_WORKER_SUCCESS; } @@ -40,7 +40,7 @@ worker_func(void* data) } uint32_t size = 0; - jack_ringbuffer_read(jalv->worker.requests, (char*)&size, sizeof(size)); +// jack_ringbuffer_read(jalv->worker.requests, (char*)&size, sizeof(size)); if (!(buf = realloc(buf, size))) { fprintf(stderr, "error: realloc() failed\n"); @@ -48,7 +48,7 @@ worker_func(void* data) return NULL; } - jack_ringbuffer_read(jalv->worker.requests, (char*)buf, size); +// jack_ringbuffer_read(jalv->worker.requests, (char*)buf, size); jalv->worker.iface->work( jalv->instance->lv2_handle, jalv_worker_respond, jalv, size, buf); @@ -65,11 +65,11 @@ jalv_worker_init(Jalv* jalv, { worker->iface = iface; zix_thread_create(&worker->thread, 4096, worker_func, jalv); - worker->requests = jack_ringbuffer_create(4096); - worker->responses = jack_ringbuffer_create(4096); +// worker->requests = jack_ringbuffer_create(4096); +// worker->responses = jack_ringbuffer_create(4096); worker->response = malloc(4096); - jack_ringbuffer_mlock(worker->requests); - jack_ringbuffer_mlock(worker->responses); +// jack_ringbuffer_mlock(worker->requests); +// jack_ringbuffer_mlock(worker->responses); } void @@ -78,8 +78,8 @@ jalv_worker_finish(JalvWorker* worker) if (worker->requests) { zix_sem_post(&worker->sem); zix_thread_join(worker->thread, NULL); - jack_ringbuffer_free(worker->requests); - jack_ringbuffer_free(worker->responses); +// jack_ringbuffer_free(worker->requests); +// jack_ringbuffer_free(worker->responses); free(worker->response); } } @@ -90,9 +90,9 @@ jalv_worker_schedule(LV2_Worker_Schedule_Handle handle, const void* data) { Jalv* jalv = (Jalv*)handle; - jack_ringbuffer_write(jalv->worker.requests, - (const char*)&size, sizeof(size)); - jack_ringbuffer_write(jalv->worker.requests, (const char*)data, size); +// jack_ringbuffer_write(jalv->worker.requests, +// (const char*)&size, sizeof(size)); +// jack_ringbuffer_write(jalv->worker.requests, (const char*)data, size); zix_sem_post(&jalv->worker.sem); return LV2_WORKER_SUCCESS; } @@ -101,13 +101,13 @@ void jalv_worker_emit_responses(Jalv* jalv, JalvWorker* worker) { if (worker->responses) { - uint32_t read_space = jack_ringbuffer_read_space(worker->responses); + uint32_t read_space;// = jack_ringbuffer_read_space(worker->responses); while (read_space) { uint32_t size = 0; - jack_ringbuffer_read(worker->responses, (char*)&size, sizeof(size)); - - jack_ringbuffer_read( - worker->responses, (char*)worker->response, size); +// jack_ringbuffer_read(worker->responses, (char*)&size, sizeof(size)); +// +// jack_ringbuffer_read( +// worker->responses, (char*)worker->response, size); worker->iface->work_response( jalv->instance->lv2_handle, size, worker->response); |
