Fix loading filenames starting with "file://" (used in lv2 presets)

This commit is contained in:
falkTX 2014-10-24 03:12:39 +01:00
parent f7ae7079c9
commit f6e1a21108
2 changed files with 7 additions and 3 deletions

8
drmr.c
View File

@ -31,7 +31,7 @@ static void* load_thread(void* arg) {
DrMr* drmr = (DrMr*)arg;
drmr_sample *loaded_samples,*old_samples;
int loaded_count, old_scount;
char *request;
char *request, *request_orig;
for(;;) {
pthread_mutex_lock(&drmr->load_mutex);
pthread_cond_wait(&drmr->load_cond,
@ -39,7 +39,9 @@ static void* load_thread(void* arg) {
pthread_mutex_unlock(&drmr->load_mutex);
old_samples = drmr->samples;
old_scount = drmr->num_samples;
request = drmr->request_buf[drmr->curReq];
request_orig = request = drmr->request_buf[drmr->curReq];
if (!strncmp(request, "file://", 7))
request += 7;
loaded_samples = load_hydrogen_kit(request,drmr->rate,&loaded_count);
if (!loaded_samples) {
fprintf(stderr,"Failed to load kit at: %s\n",request);
@ -57,7 +59,7 @@ static void* load_thread(void* arg) {
pthread_mutex_unlock(&drmr->load_mutex);
}
if (old_scount > 0) free_samples(old_samples,old_scount);
drmr->current_path = request;
drmr->current_path = request_orig;
current_kit_changed = 1;
}
return 0;

View File

@ -723,6 +723,8 @@ port_event(LV2UI_Handle handle,
lv2_atom_object_get(obj, ui->uris.kit_path, &path, 0);
if (path) {
char *kitpath = LV2_ATOM_BODY(path);
if (!strncmp(kitpath, "file://", 7))
kitpath += 7;
char *realp = realpath(kitpath,NULL);
if (!realp) {
fprintf(stderr,"Passed a path I can't resolve, bailing out\n");