Allow prepending backend names with - to remove them from the available devices

This commit is contained in:
Chris Robinson
2010-06-05 19:33:06 -07:00
parent 0fdec056fa
commit 80fbe8a788
2 changed files with 22 additions and 8 deletions
+20 -7
View File
@@ -436,13 +436,16 @@ static void alc_init(void)
int n;
size_t len;
const char *next = devs;
int endlist;
int endlist, delitem;
i = 0;
do {
devs = next;
next = strchr(devs, ',');
delitem = (devs[0] == '-');
if(devs[0] == '-') devs++;
if(!devs[0] || devs[0] == ',')
{
endlist = 0;
@@ -456,15 +459,25 @@ static void alc_init(void)
if(len == strlen(BackendList[n].name) &&
strncmp(BackendList[n].name, devs, len) == 0)
{
BackendInfo Bkp = BackendList[n];
while(n > i)
if(delitem)
{
BackendList[n] = BackendList[n-1];
--n;
do {
BackendList[n] = BackendList[n+1];
++n;
} while(BackendList[n].Init);
}
BackendList[n] = Bkp;
else
{
BackendInfo Bkp = BackendList[n];
while(n > i)
{
BackendList[n] = BackendList[n-1];
--n;
}
BackendList[n] = Bkp;
i++;
i++;
}
break;
}
}
+2 -1
View File
@@ -116,7 +116,8 @@
# duplicated names are ignored. Unlisted backends won't be considered for use
# unless the list is ended with a comma (eg. 'oss,' will list OSS first
# followed by all other available backends, while 'oss' will list OSS only).
# An empty list means the default.
# Backends prepended with - won't be available for use (eg. '-oss,' will allow
# all available backends except OSS). An empty list means the default.
#drivers = pulse,alsa,oss,solaris,dsound,winmm,port,null,wave
## excludefx: