| @@ -1,6 +1,6 @@ | |||||
| /* | /* | ||||
| * Carla Native Plugins | * Carla Native Plugins | ||||
| * Copyright (C) 2013-2014 Filipe Coelho <falktx@falktx.com> | |||||
| * Copyright (C) 2013-2015 Filipe Coelho <falktx@falktx.com> | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or | * This program is free software; you can redistribute it and/or | ||||
| * modify it under the terms of the GNU General Public License as | * modify it under the terms of the GNU General Public License as | ||||
| @@ -554,6 +554,69 @@ static void writePluginFile(const NativePluginDescriptor* const pluginDesc) | |||||
| text += " doap:name \"" + String(pluginDesc->name) + "\" ;\n"; | text += " doap:name \"" + String(pluginDesc->name) + "\" ;\n"; | ||||
| text += " doap:maintainer [ foaf:name \"" + String(pluginDesc->maker) + "\" ] .\n"; | text += " doap:maintainer [ foaf:name \"" + String(pluginDesc->maker) + "\" ] .\n"; | ||||
| #if 0 | |||||
| // ------------------------------------------------------------------- | |||||
| // Presets | |||||
| if (pluginDesc->get_midi_program_count != nullptr && pluginDesc->get_midi_program_info != nullptr && pluginHandle != nullptr) | |||||
| { | |||||
| if (const uint32_t presetCount = pluginDesc->get_midi_program_count(pluginHandle)) | |||||
| { | |||||
| const String presetsFile("carla.lv2/" + pluginLabel + "-presets.ttl"); | |||||
| std::fstream presetsStream(presetsFile.toRawUTF8(), std::ios::out); | |||||
| String presetId, presetText; | |||||
| presetText += "@prefix lv2: <http://lv2plug.in/ns/lv2core#> .\n"; | |||||
| presetText += "@prefix pset: <http://lv2plug.in/ns/ext/presets#> .\n"; | |||||
| presetText += "@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n"; | |||||
| for (uint32_t i=0; i<presetCount; ++i) | |||||
| { | |||||
| const NativeMidiProgram* const midiProg(pluginDesc->get_midi_program_info(pluginHandle, i)); | |||||
| pluginDesc->set_midi_program(pluginHandle, 0, midiProg->bank, midiProg->program); | |||||
| presetId = String::formatted("%03i", i+1); | |||||
| text += "\n<http://kxstudio.sf.net/carla/plugins/" + pluginLabel + "#preset" + presetId + ">\n"; | |||||
| text += " a pset:Preset ;\n"; | |||||
| text += " lv2:appliesTo <http://kxstudio.sf.net/carla/plugins/" + pluginLabel + "> ;\n"; | |||||
| text += " rdfs:seeAlso <" + pluginLabel + "-presets.ttl> .\n"; | |||||
| presetText += "\n<http://kxstudio.sf.net/carla/plugins/" + pluginLabel + "#preset" + presetId + ">\n"; | |||||
| presetText += " a pset:Preset ;\n"; | |||||
| presetText += " lv2:appliesTo <http://kxstudio.sf.net/carla/plugins/" + pluginLabel + "> ;\n"; | |||||
| presetText += " rdfs:label \"" + String(midiProg->name) + "\" ;\n"; | |||||
| for (uint32_t j=0; j < paramCount; ++j) | |||||
| { | |||||
| const NativeParameter* paramInfo(pluginDesc->get_parameter_info(pluginHandle, j)); | |||||
| const String paramName(paramInfo->name != nullptr ? paramInfo->name : ""); | |||||
| const String paramUnit(paramInfo->unit != nullptr ? paramInfo->unit : ""); | |||||
| CARLA_SAFE_ASSERT_RETURN(paramInfo != nullptr,) | |||||
| if (j == 0) | |||||
| presetText += " lv2:port [\n"; | |||||
| presetText += " lv2:symbol \"" + nameToSymbol(paramName, j) + "\" ;\n"; | |||||
| presetText += " pset:value " + String::formatted("%f", pluginDesc->get_parameter_value(pluginHandle, j)) + " ;\n"; | |||||
| if (j+1 == paramCount) | |||||
| presetText += " ] ;\n\n"; | |||||
| else | |||||
| presetText += " ] , [\n"; | |||||
| } | |||||
| presetsStream << presetText.toRawUTF8(); | |||||
| presetText.clear(); | |||||
| } | |||||
| presetsStream.close(); | |||||
| } | |||||
| } | |||||
| #endif | |||||
| // ------------------------------------------------------------------- | // ------------------------------------------------------------------- | ||||
| // Write file now | // Write file now | ||||