implemented a workaround to avoid connecting with the multiaudio add-on in mono
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4459 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -412,14 +412,19 @@ DefaultManager::ConnectMixerToOutput()
|
|||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < 5; i++) {
|
for (int i = 0; i < 6; i++) {
|
||||||
switch (i) {
|
switch (i) {
|
||||||
case 0:
|
case 0:
|
||||||
printf("DefaultManager: Trying connect in native format\n");
|
printf("DefaultManager: Trying connect in native format (1)\n");
|
||||||
if (B_OK != roster->GetFormatFor(input, &format)) {
|
if (B_OK != roster->GetFormatFor(input, &format)) {
|
||||||
ERROR("DefaultManager: GetFormatFor failed\n");
|
ERROR("DefaultManager: GetFormatFor failed\n");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
// XXX BeOS R5 multiaudio node bug workaround
|
||||||
|
if (format.u.raw_audio.channel_count == 1) {
|
||||||
|
printf("##### WARNING! DefaultManager: ignored mono format\n");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
@@ -447,9 +452,19 @@ DefaultManager::ConnectMixerToOutput()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 4:
|
case 4:
|
||||||
|
// BeOS R5 multiaudio node bug workaround
|
||||||
|
printf("DefaultManager: Trying connect in native format (2)\n");
|
||||||
|
if (B_OK != roster->GetFormatFor(input, &format)) {
|
||||||
|
ERROR("DefaultManager: GetFormatFor failed\n");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 5:
|
||||||
printf("DefaultManager: Trying connect in format 4\n");
|
printf("DefaultManager: Trying connect in format 4\n");
|
||||||
memset(&format, 0, sizeof(format));
|
memset(&format, 0, sizeof(format));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
rv = roster->Connect(output.source, input.destination, &format, &newoutput, &newinput);
|
rv = roster->Connect(output.source, input.destination, &format, &newoutput, &newinput);
|
||||||
if (rv == B_OK)
|
if (rv == B_OK)
|
||||||
|
|||||||
Reference in New Issue
Block a user