diff options
author | cbdev <cb@cbcdn.com> | 2020-01-12 17:34:14 +0100 |
---|---|---|
committer | cbdev <cb@cbcdn.com> | 2020-01-12 17:34:14 +0100 |
commit | 78b21a9ac3f975f35ec7b61108531e1495eb91c0 (patch) | |
tree | f41cfc78f3392d501293c3afdd7b42111c863615 /config.c | |
parent | 0a696be5af7db63c1c7354518c839d8543f1ba25 (diff) | |
download | midimonster-78b21a9ac3f975f35ec7b61108531e1495eb91c0.tar.gz midimonster-78b21a9ac3f975f35ec7b61108531e1495eb91c0.tar.bz2 midimonster-78b21a9ac3f975f35ec7b61108531e1495eb91c0.zip |
Rework instance creation
Diffstat (limited to 'config.c')
-rw-r--r-- | config.c | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -279,7 +279,7 @@ static int config_map(char* to_raw, char* from_raw){ || config_glob_scan(instance_from, &spec_from)){ goto done; } - + if((spec_to.channels != spec_from.channels && spec_from.channels != 1 && spec_to.channels != 1) || spec_to.channels == 0 || spec_from.channels == 0){ @@ -298,7 +298,7 @@ static int config_map(char* to_raw, char* from_raw){ for(n = 0; !rv && n < max(spec_from.channels, spec_to.channels); n++){ channel_from = config_glob_resolve(instance_from, &spec_from, min(n, spec_from.channels), mmchannel_input); channel_to = config_glob_resolve(instance_to, &spec_to, min(n, spec_to.channels), mmchannel_output); - + if(!channel_from || !channel_to){ rv = 1; goto done; @@ -356,7 +356,7 @@ static int config_line(char* line){ else{ //backend instance configuration parser_state = instance_cfg; - + //trim braces line[strlen(line) - 1] = 0; line++; @@ -388,9 +388,13 @@ static int config_line(char* line){ return 1; } - current_instance = current_backend->create(); + current_instance = mm_instance(); if(!current_instance){ - fprintf(stderr, "Failed to instantiate backend %s\n", line); + return 1; + } + + if(current_backend->create(current_instance)){ + fprintf(stderr, "Failed to create %s instance %s\n", line, separator); return 1; } |