diff options
-rw-r--r-- | audio.c | 37 | ||||
-rw-r--r-- | audio.h | 3 | ||||
-rw-r--r-- | po/de_DE.po | 2 |
3 files changed, 39 insertions, 3 deletions
@@ -1,7 +1,7 @@ /// /// @file audio.c @brief Audio module /// -/// Copyright (c) 2009 - 2013 by Johns. All Rights Reserved. +/// Copyright (c) 2009 - 2014 by Johns. All Rights Reserved. /// /// Contributor(s): /// @@ -132,6 +132,7 @@ static const char *AudioModuleName; ///< which audio module to use static const AudioModule *AudioUsedModule = &NoopModule; static const char *AudioPCMDevice; ///< PCM device name static const char *AudioPassthroughDevice; ///< Passthrough device name +static char AudioAppendAES; ///< flag automatic append AES static const char *AudioMixerDevice; ///< mixer device name static const char *AudioMixerChannel; ///< mixer channel name static char AudioDoingInit; ///> flag in init, reduce error @@ -1007,6 +1008,26 @@ static snd_pcm_t *AlsaOpenPCM(int passthrough) Info(_("audio/alsa: using %sdevice '%s'\n"), passthrough ? "pass-through " : "", device); } + // + // for AC3 pass-through try to set the non-audio bit, use AES0=6 + // + if (passthrough && AudioAppendAES) { +#if 0 + // FIXME: not yet finished + char *buf; + const char *s; + int n; + + n = strlen(device); + buf = alloca(n + sizeof(":AES0=6") + 1); + strcpy(buf, device); + if (!(s = strchr(buf, ':'))) { + // no alsa parameters + strcpy(buf + n, ":AES=6"); + } + Debug(3, "audio/alsa: try '%s'\n", buf); +#endif + } // open none blocking; if device is already used, we don't want wait if ((err = snd_pcm_open(&handle, device, SND_PCM_STREAM_PLAYBACK, @@ -2781,6 +2802,20 @@ void AudioSetChannel(const char *channel) } /** +** Set automatic AES flag handling. +** +** @param onoff turn setting AES flag on or off +*/ +void AudioSetAutoAES(int onoff) +{ + if (onoff < 0) { + AudioAppendAES ^= 1; + } else { + AudioAppendAES = onoff; + } +} + +/** ** Initialize audio output module. ** ** @todo FIXME: make audio output module selectable. @@ -1,7 +1,7 @@ /// /// @file audio.h @brief Audio module headerfile /// -/// Copyright (c) 2009 - 2013 by Johns. All Rights Reserved. +/// Copyright (c) 2009 - 2014 by Johns. All Rights Reserved. /// /// Contributor(s): /// @@ -52,6 +52,7 @@ extern void AudioSetDevice(const char *); ///< set PCM audio device /// set pass-through device extern void AudioSetPassthroughDevice(const char *); extern void AudioSetChannel(const char *); ///< set mixer channel +extern void AudioSetAutoAES(int); ///< set automatic AES flag handling extern void AudioInit(void); ///< setup audio module extern void AudioExit(void); ///< cleanup and exit audio module diff --git a/po/de_DE.po b/po/de_DE.po index 50f7528..c9246c9 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -607,7 +607,7 @@ msgid " E-AC-3 pass-through" msgstr "" msgid "Enable (E-)AC-3 (decoder) downmix" -msgstr "Aktiviere (E-)AC-3 (decoder) downmix"" +msgstr "Aktiviere (E-)AC-3 (decoder) downmix" msgid "Volume control" msgstr "Lautstärkesteuerung" |