aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend.c
diff options
context:
space:
mode:
authorcbdev <cb@cbcdn.com>2019-12-11 23:02:22 +0100
committercbdev <cb@cbcdn.com>2019-12-11 23:02:22 +0100
commitf65fb8baaba285f5ff4b02af111420ba4479f5d9 (patch)
tree39f9a832ed220270d37d15edc50433635ed9bfe1 /backend.c
parente60eff52920cf063e7625344764521a791c8be3e (diff)
downloadmidimonster-f65fb8baaba285f5ff4b02af111420ba4479f5d9.tar.gz
midimonster-f65fb8baaba285f5ff4b02af111420ba4479f5d9.tar.bz2
midimonster-f65fb8baaba285f5ff4b02af111420ba4479f5d9.zip
Simplify plugin_start API
Diffstat (limited to 'backend.c')
-rw-r--r--backend.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/backend.c b/backend.c
index 3a18f41..f5efca7 100644
--- a/backend.c
+++ b/backend.c
@@ -256,20 +256,34 @@ MM_API int mm_backend_register(backend b){
int backends_start(){
int rv = 0, current;
- size_t u, p;
+ size_t n, u, p;
+ instance** inst = NULL;
+
for(u = 0; u < nbackends; u++){
//only start backends that have instances
for(p = 0; p < ninstances && instances[p]->backend != backends + u; p++){
}
+
+ //backend has no instances, skip the start call
if(p == ninstances){
- fprintf(stderr, "Skipping start of backend %s\n", backends[u].name);
continue;
}
+
+ //fetch list of instances
+ if(mm_backend_instances(backends[u].name, &n, &inst)){
+ fprintf(stderr, "Failed to fetch instance list for initialization of backend %s\n", backends[u].name);
+ return 1;
+ }
- current = backends[u].start();
+ //start the backend
+ current = backends[u].start(n, inst);
if(current){
fprintf(stderr, "Failed to start backend %s\n", backends[u].name);
}
+
+ //clean up
+ free(inst);
+ inst = NULL;
rv |= current;
}
return rv;