- case AOUT_CHAN_CHANNEL: return "CHANNEL";
- case AOUT_CHAN_CHANNEL1: return "CHANNEL1";
- case AOUT_CHAN_CHANNEL2: return "CHANNEL2";
- case AOUT_CHAN_MONO: return "MONO";
- case AOUT_CHAN_STEREO: return "STEREO";
- case AOUT_CHAN_3F: return "3F";
- case AOUT_CHAN_2F1R: return "2F1R";
- case AOUT_CHAN_3F1R: return "3F1R";
- case AOUT_CHAN_2F2R: return "2F2R";
- case AOUT_CHAN_3F2R: return "3F2R";
- case AOUT_CHAN_DOLBY: return "DOLBY";
- case AOUT_CHAN_CHANNEL | AOUT_CHAN_LFE: return "CHANNEL|LFE";
- case AOUT_CHAN_CHANNEL1 | AOUT_CHAN_LFE: return "CHANNEL1|LFE";
- case AOUT_CHAN_CHANNEL2 | AOUT_CHAN_LFE: return "CHANNEL2|LFE";
- case AOUT_CHAN_MONO | AOUT_CHAN_LFE: return "MONO|LFE";
- case AOUT_CHAN_STEREO | AOUT_CHAN_LFE: return "STEREO|LFE";
- case AOUT_CHAN_3F | AOUT_CHAN_LFE: return "3F|LFE";
- case AOUT_CHAN_2F1R | AOUT_CHAN_LFE: return "2F1R|LFE";
- case AOUT_CHAN_3F1R | AOUT_CHAN_LFE: return "3F1R|LFE";
- case AOUT_CHAN_2F2R | AOUT_CHAN_LFE: return "2F2R|LFE";
- case AOUT_CHAN_3F2R | AOUT_CHAN_LFE: return "3F2R|LFE";
- case AOUT_CHAN_DOLBY | AOUT_CHAN_LFE: return "DOLBY|LFE";
+ case AOUT_CHAN_LEFT:
+ case AOUT_CHAN_RIGHT:
+ case AOUT_CHAN_CENTER:
+ if ( (p_format->i_original_channels & AOUT_CHAN_CENTER)
+ || (p_format->i_original_channels
+ & (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT)) )
+ return "Mono";
+ else if ( p_format->i_original_channels & AOUT_CHAN_LEFT )
+ return "Left";
+ return "Right";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT:
+ if ( p_format->i_original_channels & AOUT_CHAN_REVERSESTEREO )
+ {
+ if ( p_format->i_original_channels & AOUT_CHAN_DOLBYSTEREO )
+ return "Dolby/Reverse";
+ return "Stereo/Reverse";
+ }
+ else
+ {
+ if ( p_format->i_original_channels & AOUT_CHAN_DOLBYSTEREO )
+ return "Dolby";
+ else if ( p_format->i_original_channels & AOUT_CHAN_DUALMONO )
+ return "Dual-mono";
+ else if ( p_format->i_original_channels == AOUT_CHAN_CENTER )
+ return "Stereo/Mono";
+ else if ( !(p_format->i_original_channels & AOUT_CHAN_RIGHT) )
+ return "Stereo/Left";
+ else if ( !(p_format->i_original_channels & AOUT_CHAN_LEFT) )
+ return "Stereo/Right";
+ return "Stereo";
+ }
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER:
+ return "3F";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_REARCENTER:
+ return "2F1R";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
+ | AOUT_CHAN_REARCENTER:
+ return "3F1R";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT
+ | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT:
+ return "2F2R";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT
+ | AOUT_CHAN_MIDDLELEFT | AOUT_CHAN_MIDDLERIGHT:
+ return "2F2M";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
+ | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT:
+ return "3F2R";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
+ | AOUT_CHAN_MIDDLELEFT | AOUT_CHAN_MIDDLERIGHT:
+ return "3F2M";
+
+ case AOUT_CHAN_CENTER | AOUT_CHAN_LFE:
+ if ( (p_format->i_original_channels & AOUT_CHAN_CENTER)
+ || (p_format->i_original_channels
+ & (AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT)) )
+ return "Mono/LFE";
+ else if ( p_format->i_original_channels & AOUT_CHAN_LEFT )
+ return "Left/LFE";
+ return "Right/LFE";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_LFE:
+ if ( p_format->i_original_channels & AOUT_CHAN_DOLBYSTEREO )
+ return "Dolby/LFE";
+ else if ( p_format->i_original_channels & AOUT_CHAN_DUALMONO )
+ return "Dual-mono/LFE";
+ else if ( p_format->i_original_channels == AOUT_CHAN_CENTER )
+ return "Mono/LFE";
+ else if ( !(p_format->i_original_channels & AOUT_CHAN_RIGHT) )
+ return "Stereo/Left/LFE";
+ else if ( !(p_format->i_original_channels & AOUT_CHAN_LEFT) )
+ return "Stereo/Right/LFE";
+ return "Stereo/LFE";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER | AOUT_CHAN_LFE:
+ return "3F/LFE";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_REARCENTER
+ | AOUT_CHAN_LFE:
+ return "2F1R/LFE";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
+ | AOUT_CHAN_REARCENTER | AOUT_CHAN_LFE:
+ return "3F1R/LFE";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT
+ | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT | AOUT_CHAN_LFE:
+ return "2F2R/LFE";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT
+ | AOUT_CHAN_MIDDLELEFT | AOUT_CHAN_MIDDLERIGHT | AOUT_CHAN_LFE:
+ return "2F2M/LFE";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
+ | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT | AOUT_CHAN_LFE:
+ return "3F2R/LFE";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
+ | AOUT_CHAN_MIDDLELEFT | AOUT_CHAN_MIDDLERIGHT | AOUT_CHAN_LFE:
+ return "3F2M/LFE";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
+ | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT | AOUT_CHAN_MIDDLELEFT
+ | AOUT_CHAN_MIDDLERIGHT:
+ return "3F2M2R";
+ case AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | AOUT_CHAN_CENTER
+ | AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT | AOUT_CHAN_MIDDLELEFT
+ | AOUT_CHAN_MIDDLERIGHT | AOUT_CHAN_LFE:
+ return "3F2M2R/LFE";