#include #include #include #include #include #include "ptap.h" static bool _last; static void addport(FILE *fp, const char *type, const char *type2, const char *symbol, const char *name, int index, const char *additional = "") { fprintf(fp, " [\n" " a lv2:%s , lv2:%s ;\n" " lv2:index %d ;\n" " lv2:symbol \"%s\" ;\n" " lv2:name \"%s\" ;\n" "%s" " ]%c\n", type, type2, index, symbol, name, additional,_last ? '.' : ','); } static void addttl(const char *file) { FILE *fp = fopen(file, "w"); char symbol[128]; char name[128]; fputs( "@prefix lv2: <" LV2_CORE_URI "#> .\n" "@prefix ui: <" LV2_UI_URI "#> .\n" "@prefix foaf: .\n" "@prefix doap: .\n" "\n" "<" PTAP_URI ">\n" " a lv2:Plugin , lv2:DelayPlugin ;\n" " lv2:binary ;\n" " doap:maintainer [\n" " foaf:name \"Peter Nelson\" ;\n" " foaf:homepage ;\n" " foaf:mbox ;\n" " ];\n" " doap:name \"PTap\" ;\n" " doap:license ;\n" " ui:ui <" PTAP_URI "#X11UI> ;\n" " lv2:port\n" , fp); for (int i = 0; i < NUM_CHANNELS; i++) { sprintf(symbol, "in_%d", i + 1); sprintf(name, "Audio In %d", i + 1); addport(fp, "InputPort", "AudioPort", symbol, name, TAP_INS + i); } for (int i = 0; i < NUM_CHANNELS; i++) { sprintf(symbol, "out_%d", i + 1); sprintf(name, "Audio Out %d", i + 1); addport(fp, "OutputPort", "AudioPort", symbol, name, TAP_OUTS + i); } for (int i = 0; i < NUM_TAPS; i++) { for (int j = 0; j < NUM_TAPS; j++) { sprintf(symbol, "tap_%d_gain_%d", i + 1, j + 1); sprintf(name, "Tap %d - Gain %d", i + 1, j + 1); addport(fp, "InputPort", "ControlPort", symbol, name, TAP_MATRIX + i * NUM_GAINS + j, " lv2:minimum -1.0 ;\n" " lv2:default 0.0 ;\n" " lv2:maximum 1.0 ;\n"); } for (int j = 0; j < NUM_CHANNELS; j++) { sprintf(symbol, "tap_%d_input_%d", i + 1, j + 1); sprintf(name, "Tap %d - Input %d", i + 1, j + 1); addport(fp, "InputPort", "ControlPort", symbol, name, TAP_MATRIX + i * NUM_GAINS + NUM_TAPS + j, " lv2:minimum -1.0 ;\n" " lv2:default 0.0 ;\n" " lv2:maximum 1.0 ;\n"); } sprintf(symbol, "tap_%d_gain", i + 1); sprintf(name, "Tap %d - Gain", i + 1); addport(fp, "InputPort", "ControlPort", symbol, name, TAP_GAINS + i, " lv2:minimum -1.0 ;\n" " lv2:default 0.0 ;\n" " lv2:maximum 1.0 ;\n"); sprintf(symbol, "tap_%d_delay", i + 1); sprintf(name, "Tap %d - Delay", i + 1); addport(fp, "InputPort", "ControlPort", symbol, name, TAP_DELAYS + i, " lv2:minimum 0.0 ;\n" " lv2:default 0.0 ;\n" " lv2:maximum 10.0 ;\n"); } for (int i = 0; i < NUM_CHANNELS; i++) { for (int j = 0; j < NUM_TAPS; j++) { sprintf(symbol, "out_%d_gain_%d", i + 1, j + 1); sprintf(name, "Output %d - Gain %d", i + 1, j + 1); addport(fp, "InputPort", "ControlPort", symbol, name, TAP_MATRIX + (i + NUM_TAPS) * NUM_GAINS + j, " lv2:minimum -1.0 ;\n" " lv2:default 0.0 ;\n" " lv2:maximum 1.0 ;\n"); } for (int j = 0; j < NUM_CHANNELS; j++) { sprintf(symbol, "out_%d_input_%d", i + 1, j + 1); sprintf(name, "Output %d - Input %d", i + 1, j + 1); addport(fp, "InputPort", "ControlPort", symbol, name, TAP_MATRIX + (i + NUM_TAPS) * NUM_GAINS + NUM_TAPS + j, i == j ? " lv2:minimum -1.0 ;\n" " lv2:default 1.0 ;\n" " lv2:maximum 1.0 ;\n" : " lv2:minimum -1.0 ;\n" " lv2:default 0.0 ;\n" " lv2:maximum 1.0 ;\n"); } if (i == NUM_CHANNELS - 1) _last = true; sprintf(symbol, "out_%d_gain", i + 1); sprintf(name, "Output %d - Gain", i + 1); addport(fp, "InputPort", "ControlPort", symbol, name, TAP_GAINS + NUM_TAPS + i, " lv2:minimum -1.0 ;\n" " lv2:default 1.0 ;\n" " lv2:maximum 1.0 ;\n"); } fclose(fp); } int main(int argc, char **argv) { if (!strcmp(argv[1], "rdf")) { addttl(argv[2]); } else if (!strcmp(argv[1], "h")) { } }