Allow prepending backend names with - to remove them from the available devices
This commit is contained in:
@@ -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
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user