static void clear_devlist(vector_DevMap *devlist) { DevMap *iter, *end; iter = VECTOR_ITER_BEGIN(*devlist); end = VECTOR_ITER_END(*devlist); for(;iter != end;iter++) { AL_STRING_DEINIT(iter->name); AL_STRING_DEINIT(iter->device_name); } VECTOR_RESIZE(*devlist, 0); }
static void clear_devlist(vector_DevMap *list) { DevMap *iter, *end; iter = VECTOR_ITER_BEGIN(*list); end = VECTOR_ITER_END(*list); for(;iter != end;++iter) AL_STRING_DEINIT(iter->name); VECTOR_RESIZE(*list, 0); }
ALsoundfont *ALsoundfont_getDefSoundfont(ALCcontext *context) { ALCdevice *device = context->Device; al_string fname = AL_STRING_INIT_STATIC(); const char *namelist; if(device->DefaultSfont) return device->DefaultSfont; device->DefaultSfont = calloc(1, sizeof(device->DefaultSfont[0])); ALsoundfont_Construct(device->DefaultSfont); namelist = getenv("ALSOFT_SOUNDFONT"); if(!namelist || !namelist[0]) ConfigValueStr("midi", "soundfont", &namelist); while(namelist && namelist[0]) { const char *next, *end; FILE *f; while(*namelist && (isspace(*namelist) || *namelist == ',')) namelist++; if(!*namelist) break; next = strchr(namelist, ','); end = next ? next++ : (namelist+strlen(namelist)); while(--end != namelist && isspace(*end)) { } if(end == namelist) continue; al_string_append_range(&fname, namelist, end+1); namelist = next; f = OpenDataFile(al_string_get_cstr(fname), "openal/soundfonts"); if(f == NULL) ERR("Failed to open %s\n", al_string_get_cstr(fname)); else { Reader reader; reader.cb = ALsoundfont_read; reader.ptr = f; reader.error = 0; TRACE("Loading %s\n", al_string_get_cstr(fname)); loadSf2(&reader, device->DefaultSfont, context); fclose(f); } al_string_clear(&fname); } AL_STRING_DEINIT(fname); return device->DefaultSfont; }