diff -aur triceratops-lv2-v0.2.0/presets.cpp triceratops-lv2-v0.2.0.patched/presets.cpp --- triceratops-lv2-v0.2.0/presets.cpp 2014-06-18 13:33:34.000000000 +0200 +++ triceratops-lv2-v0.2.0.patched/presets.cpp 2014-09-11 10:43:59.932732363 +0200 @@ -470,7 +470,7 @@ void presets::get_preset_names() { - //------------------- LOAD /usr/lib/lv2/triceratops-presets.lv2/ presets + //------------------- LOAD ~/.lv2/triceratops-presets.lv2/ presets stringstream home_lv2; home_lv2.str(""); @@ -484,74 +484,74 @@ { cout << "No presets found in " << dir << endl; closedir(dp); - return; + // return; } - - while ((dirp = readdir(dp)) != NULL) - { - if (string(dirp->d_name) != ".directory" && - string(dirp->d_name) != "." && - string(dirp->d_name) != ".." && - string(dirp->d_name) != "manifest.ttl") + else { + while ((dirp = readdir(dp)) != NULL) { - stringstream file_name; - file_name.str(""); - file_name << "." << dirp->d_name; - - stringstream preset_file_name_home; - preset_file_name_home.str(""); - preset_file_name_home << getenv("HOME") << "/.lv2/"; - preset_file_name_home << file_name.str().substr(1); - preset_file_name_home << "/"; - dir = preset_file_name_home.str(); - int file_name_length = file_name.str().length(); - preset_file_name_home << file_name.str().substr(1,file_name_length-4); - preset_file_name_home << "ttl"; - - bool our_preset = false; - - ifstream check_file(preset_file_name_home.str()); - string line; - int preset_category_number = 0; - - while (getline(check_file,line)) + if (string(dirp->d_name) != ".directory" && + string(dirp->d_name) != "." && + string(dirp->d_name) != ".." && + string(dirp->d_name) != "manifest.ttl") { - int triceratops_applies_to = - line.rfind("lv2:appliesTo "); + stringstream file_name; + file_name.str(""); + file_name << "." << dirp->d_name; + + stringstream preset_file_name_home; + preset_file_name_home.str(""); + preset_file_name_home << getenv("HOME") << "/.lv2/"; + preset_file_name_home << file_name.str().substr(1); + preset_file_name_home << "/"; + dir = preset_file_name_home.str(); + int file_name_length = file_name.str().length(); + preset_file_name_home << file_name.str().substr(1,file_name_length-4); + preset_file_name_home << "ttl"; - if (triceratops_applies_to > 0) our_preset = true; + bool our_preset = false; - int preset_category_finder = line.rfind("preset_category"); - if (preset_category_finder > 0) + ifstream check_file(preset_file_name_home.str()); + string line; + int preset_category_number = 0; + + while (getline(check_file,line)) { - getline(check_file,line); - istringstream (line.substr(line.rfind("pset:value") + 11)) >> preset_category_number; + int triceratops_applies_to = + line.rfind("lv2:appliesTo "); + + if (triceratops_applies_to > 0) our_preset = true; + + int preset_category_finder = line.rfind("preset_category"); + if (preset_category_finder > 0) + { + getline(check_file,line); + istringstream (line.substr(line.rfind("pset:value") + 11)) >> preset_category_number; + } } - } - if (our_preset) - { - preset_file_names.push_back(file_name.str()); - presets_object new_preset_object; + if (our_preset) + { + preset_file_names.push_back(file_name.str()); + presets_object new_preset_object; - new_preset_object.type = PRESET_TYPE_PRESET; - new_preset_object.category = preset_category_number; - - stringstream file_name_ttl; - file_name_ttl.str(""); - file_name_ttl << file_name.str().substr(1,file_name.str().size()-4) << "ttl"; + new_preset_object.type = PRESET_TYPE_PRESET; + new_preset_object.category = preset_category_number; - new_preset_object.name = file_name_ttl.str(); - new_preset_object.dir = dir; - new_preset_object.unfold = false; + stringstream file_name_ttl; + file_name_ttl.str(""); + file_name_ttl << file_name.str().substr(1,file_name.str().size()-4) << "ttl"; - preset_list.push_back(new_preset_object); + new_preset_object.name = file_name_ttl.str(); + new_preset_object.dir = dir; + new_preset_object.unfold = false; + + preset_list.push_back(new_preset_object); + } } - } + } + closedir(dp); } - closedir(dp); - //------------------- LOAD /usr/lib/lv2/triceratops-presets.lv2/ presets @@ -563,7 +563,6 @@ else { - while ((dirp = readdir(dp)) != NULL) { if (string(dirp->d_name) != ".directory" && @@ -1305,9 +1304,14 @@ string triceratops_ttl_file_name = ""; ifstream triceratops_ttl("/usr/lib/lv2/triceratops.lv2/triceratops.ttl" ); - if (triceratops_ttl) triceratops_ttl_file_name = "/usr/lib/lv2/triceratops.lv2/triceratops.ttl" ; - triceratops_ttl.open("/usr/local/lib/lv2/triceratops.lv2/triceratops.ttl" ); - if (triceratops_ttl) triceratops_ttl_file_name = "/usr/local/lib/lv2/triceratops.lv2/triceratops.ttl"; + if (triceratops_ttl) + { + triceratops_ttl_file_name = "/usr/lib/lv2/triceratops.lv2/triceratops.ttl"; + } else + { + triceratops_ttl.open("/usr/local/lib/lv2/triceratops.lv2/triceratops.ttl" ); + if (triceratops_ttl) triceratops_ttl_file_name = "/usr/local/lib/lv2/triceratops.lv2/triceratops.ttl"; + } int current_port = -1; int symbol_port = -1;