diff options
author | cbdev <cb@cbcdn.com> | 2017-06-04 18:13:29 +0200 |
---|---|---|
committer | cbdev <cb@cbcdn.com> | 2017-06-04 18:13:29 +0200 |
commit | 11e9dec049e64989c5f3656415d00c6c69851e8e (patch) | |
tree | f087aa41ead18a8b09657fd400bd8b20df80b13f /midimonster.c | |
parent | bae15293ddc859a1ea426f15e7fa476f71ece020 (diff) | |
download | midimonster-11e9dec049e64989c5f3656415d00c6c69851e8e.tar.gz midimonster-11e9dec049e64989c5f3656415d00c6c69851e8e.tar.bz2 midimonster-11e9dec049e64989c5f3656415d00c6c69851e8e.zip |
Move instance allocator to backend object, introduce backend start function
Diffstat (limited to 'midimonster.c')
-rw-r--r-- | midimonster.c | 69 |
1 files changed, 7 insertions, 62 deletions
diff --git a/midimonster.c b/midimonster.c index 765c1ce..e59b7f9 100644 --- a/midimonster.c +++ b/midimonster.c @@ -8,67 +8,6 @@ int artnet_init(); int midi_init(); int osc_init(); -static size_t ninstances = 0; -static instance** instances = NULL; - -instance* mm_instance(){ - instance** new_inst = realloc(instances, (ninstances + 1) * sizeof(instance*)); - if(!new_inst){ - //TODO free - fprintf(stderr, "Failed to allocate memory\n"); - ninstances = 0; - return NULL; - } - instances = new_inst; - instances[ninstances] = calloc(1, sizeof(instance)); - if(!instances[ninstances]){ - fprintf(stderr, "Failed to allocate memory\n"); - return NULL; - } - - return instances[ninstances++]; -} - -int mm_backend_instances(char* name, size_t* ninst, instance*** inst){ - backend* b = backend_match(name); - size_t n = 0, u; - //count number of affected instances - for(u = 0; u < ninstances; u++){ - if(instances[u]->backend == b){ - n++; - } - } - - *ninst = n; - *inst = calloc(n, sizeof(instance*)); - if(!*inst){ - fprintf(stderr, "Failed to allocate memory\n"); - return 1; - } - - n = 0; - for(u = 0; u < ninstances; u++){ - if(instances[u]->backend == b){ - (*inst)[n] = instances[u]; - n++; - } - } - return 0; -} - -static void instances_free(){ - size_t u; - for(u = 0; u < ninstances; u++){ - free(instances[u]->name); - instances[u]->name = NULL; - instances[u]->backend = NULL; - free(instances[u]); - instances[u] = NULL; - } - free(instances); - ninstances = 0; -} - int usage(char* fn){ fprintf(stderr, "MIDIMonster v0.1\n"); fprintf(stderr, "Usage:\n"); @@ -98,7 +37,13 @@ int main(int argc, char** argv){ return usage(argv[0]); } - //wait for events + //start backends + if(backends_start()){ + fprintf(stderr, "Failed to start backends\n"); + goto bail; + } + + //TODO wait for & translate events rv = EXIT_SUCCESS; bail: |