From 5149ab52baa1ce6926c4f764f0b0b368f0dbef88 Mon Sep 17 00:00:00 2001 From: Derk-Jan Hartman Date: Sun, 5 Jun 2005 23:47:31 +0000 Subject: [PATCH] * backport of [11313] --- modules/audio_output/auhal.c | 62 +++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/modules/audio_output/auhal.c b/modules/audio_output/auhal.c index bb446e47f3..2e173184ba 100644 --- a/modules/audio_output/auhal.c +++ b/modules/audio_output/auhal.c @@ -300,36 +300,40 @@ static int Open( vlc_object_t * p_this ) continue; default: msg_Warn( p_aout, "Unrecognized channel form provided by driver: %d", (int)layout->mChannelDescriptions[i].mChannelLabel ); - switch( layout->mNumberChannelDescriptions ) + if( i == 0 ) { - /* We make assumptions based on number of channels here. - * Unfortunatly Apple has provided no 100% method to retrieve the speaker configuration */ - case 1: - p_aout->output.output.i_physical_channels = AOUT_CHAN_CENTER; - break; - case 4: - p_aout->output.output.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | - AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT; - break; - case 6: - p_aout->output.output.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | - AOUT_CHAN_CENTER | AOUT_CHAN_LFE | - AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT; - break; - case 7: - p_aout->output.output.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | - AOUT_CHAN_CENTER | AOUT_CHAN_LFE | - AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT | AOUT_CHAN_REARCENTER; - break; - case 8: - p_aout->output.output.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | - AOUT_CHAN_CENTER | AOUT_CHAN_LFE | - AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT | - AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT; - break; - case 2: - default: - p_aout->output.output.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT; + msg_Warn( p_aout, "Probably no channellayout is set. force based on channelcount" ); + switch( layout->mNumberChannelDescriptions ) + { + /* We make assumptions based on number of channels here. + * Unfortunatly Apple has provided no 100% method to retrieve the speaker configuration */ + case 1: + p_aout->output.output.i_physical_channels = AOUT_CHAN_CENTER; + break; + case 4: + p_aout->output.output.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | + AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT; + break; + case 6: + p_aout->output.output.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | + AOUT_CHAN_CENTER | AOUT_CHAN_LFE | + AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT; + break; + case 7: + p_aout->output.output.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | + AOUT_CHAN_CENTER | AOUT_CHAN_LFE | + AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT | AOUT_CHAN_REARCENTER; + break; + case 8: + p_aout->output.output.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT | + AOUT_CHAN_CENTER | AOUT_CHAN_LFE | + AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT | + AOUT_CHAN_REARLEFT | AOUT_CHAN_REARRIGHT; + break; + case 2: + default: + p_aout->output.output.i_physical_channels = AOUT_CHAN_LEFT | AOUT_CHAN_RIGHT; + } } break; } -- 2.39.2