aboutsummaryrefslogtreecommitdiffhomepage
path: root/midimonster.c
diff options
context:
space:
mode:
authorcbdev <cb@cbcdn.com>2017-06-04 18:13:29 +0200
committercbdev <cb@cbcdn.com>2017-06-04 18:13:29 +0200
commit11e9dec049e64989c5f3656415d00c6c69851e8e (patch)
treef087aa41ead18a8b09657fd400bd8b20df80b13f /midimonster.c
parentbae15293ddc859a1ea426f15e7fa476f71ece020 (diff)
downloadmidimonster-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.c69
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: