Implement "drivers" config option

This commit is contained in:
Chris Robinson
2007-12-12 03:46:43 -08:00
parent 7ade93e38c
commit ba02526612
2 changed files with 41 additions and 1 deletions
+41
View File
@@ -191,11 +191,52 @@ static void InitAL(void)
if(!done)
{
int i;
const char *devs;
InitializeCriticalSection(&g_mutex);
ALTHUNK_INIT();
ReadALConfig();
devs = GetConfigValue(NULL, "drivers", "");
if(devs[0])
{
int n;
size_t len;
const char *next = devs;
i = 0;
do {
devs = next;
next = strchr(devs, ',');
if(!devs[0] || devs[0] == ',')
continue;
len = (next ? ((size_t)(next-devs)) : strlen(devs));
for(n = i;BackendList[n].Init;n++)
{
if(len == strlen(BackendList[n].name) &&
strncmp(BackendList[n].name, devs, len) == 0)
{
const char *name = BackendList[i].name;
void (*Init)(BackendFuncs*) = BackendList[i].Init;
BackendList[i].name = BackendList[n].name;
BackendList[i].Init = BackendList[n].Init;
BackendList[n].name = name;
BackendList[n].Init = Init;
i++;
}
}
} while(next++);
BackendList[i].name = NULL;
BackendList[i].Init = NULL;
}
for(i = 0;BackendList[i].Init;i++)
BackendList[i].Init(&BackendList[i].Funcs);
done = 1;
-1
View File
@@ -23,7 +23,6 @@ refresh = 0 # Sets the number of frames-per-update. Default is calculated as
# 8192*frequency/22050. Note that the actual granularity may or
# may not be less than this.
# TODO: Implement this option
drivers = # Sets the backend driver list order, comma-seperated. Unknown
# backends and duplicated names are ignored, and unlisted backends
# won't be considered for use. An empty list means the default.