- case 0x0: *pi_channels = AOUT_CHAN_CHANNEL; break;
- case 0x1: *pi_channels = AOUT_CHAN_MONO; break;
- case 0x2: *pi_channels = AOUT_CHAN_STEREO; break;
- case 0x3: *pi_channels = AOUT_CHAN_3F; break;
- case 0x4: *pi_channels = AOUT_CHAN_2F1R; break;
- case 0x5: *pi_channels = AOUT_CHAN_3F1R; break;
- case 0x6: *pi_channels = AOUT_CHAN_2F2R; break;
- case 0x7: *pi_channels = AOUT_CHAN_3F2R; break;
- case 0x8: *pi_channels = AOUT_CHAN_CHANNEL1; break;
- case 0x9: *pi_channels = AOUT_CHAN_CHANNEL2; break;
+ case 0x0:
+ /* Dual-mono = stereo + dual-mono */
+ *pi_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT
+ | AOUT_CHAN_DUALMONO;
+ break;
+ case 0x1:
+ /* Mono */
+ *pi_channels = AOUT_CHAN_CENTER;
+ break;
+ case 0x2:
+ /* Stereo */
+ *pi_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT;
+ break;
+ case 0x3:
+ /* 3F */
+ *pi_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER;
+ break;
+ case 0x4:
+ /* 2F1R */
+ *pi_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_REARCENTER;
+ break;
+ case 0x5:
+ /* 3F1R */
+ *pi_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
+ | AOUT_CHAN_REARCENTER;
+ break;
+ case 0x6:
+ /* 2F2R */
+ *pi_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT
+ | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT;
+ break;
+ case 0x7:
+ /* 3F2R */
+ *pi_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
+ | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT;
+ break;
+ default:
+ return 0;