From f3468eb1e18710ebcacf8d556a7de27245f7ecae Mon Sep 17 00:00:00 2001 From: fritsch Date: Fri, 1 Feb 2013 15:33:19 +0100 Subject: AE: introduce force flag into interface --- xbmc/cores/AudioEngine/AESinkFactory.cpp | 10 +++++----- xbmc/cores/AudioEngine/AESinkFactory.h | 2 +- xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp | 2 +- xbmc/cores/AudioEngine/Sinks/AESinkALSA.h | 2 +- xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp | 2 +- xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.h | 2 +- xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp | 2 +- xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.h | 2 +- xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp | 2 +- xbmc/cores/AudioEngine/Sinks/AESinkOSS.h | 2 +- xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp | 2 +- xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h | 4 ++-- 12 files changed, 17 insertions(+), 17 deletions(-) diff --git a/xbmc/cores/AudioEngine/AESinkFactory.cpp b/xbmc/cores/AudioEngine/AESinkFactory.cpp index b066ecd30e..9917f11722 100644 --- a/xbmc/cores/AudioEngine/AESinkFactory.cpp +++ b/xbmc/cores/AudioEngine/AESinkFactory.cpp @@ -129,15 +129,15 @@ IAESink *CAESinkFactory::Create(std::string &device, AEAudioFormat &desiredForma return NULL; } -#define ENUMERATE_SINK(SINK) { \ +#define ENUMERATE_SINK(SINK, force) { \ AESinkInfo info; \ info.m_sinkName = #SINK; \ - CAESink ##SINK::EnumerateDevicesEx(info.m_deviceInfoList); \ + CAESink ##SINK::EnumerateDevicesEx(info.m_deviceInfoList, force); \ if(!info.m_deviceInfoList.empty()) \ list.push_back(info); \ } -void CAESinkFactory::EnumerateEx(AESinkInfoList &list) +void CAESinkFactory::EnumerateEx(AESinkInfoList &list, bool force) { #if defined(TARGET_WINDOWS) ENUMERATE_SINK(DirectSound); @@ -147,10 +147,10 @@ void CAESinkFactory::EnumerateEx(AESinkInfoList &list) ENUMERATE_SINK(AUDIOTRACK); #elif defined(TARGET_LINUX) || defined(TARGET_FREEBSD) #if defined(HAS_ALSA) - ENUMERATE_SINK(ALSA); + ENUMERATE_SINK(ALSA, force); #endif - ENUMERATE_SINK(OSS); + ENUMERATE_SINK(OSS, force); #endif } diff --git a/xbmc/cores/AudioEngine/AESinkFactory.h b/xbmc/cores/AudioEngine/AESinkFactory.h index 99c53f9be2..185f562274 100644 --- a/xbmc/cores/AudioEngine/AESinkFactory.h +++ b/xbmc/cores/AudioEngine/AESinkFactory.h @@ -40,6 +40,6 @@ class CAESinkFactory public: static void ParseDevice(std::string &device, std::string &driver); static IAESink *Create(std::string &device, AEAudioFormat &desiredFormat, bool rawPassthrough); - static void EnumerateEx(AESinkInfoList &list); + static void EnumerateEx(AESinkInfoList &list, bool force = false); /* The force flag can be used to indicate the rescan devices */ }; diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp index 91218a48c3..df4098e04d 100644 --- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp +++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.cpp @@ -676,7 +676,7 @@ bool CAESinkALSA::OpenPCMDevice(const std::string &name, const std::string ¶ return false; } -void CAESinkALSA::EnumerateDevicesEx(AEDeviceInfoList &list) +void CAESinkALSA::EnumerateDevicesEx(AEDeviceInfoList &list, bool force) { /* ensure that ALSA has been initialized */ snd_lib_error_set_handler(sndLibErrorHandler); diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.h b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.h index db1ba80290..c1b1c76254 100644 --- a/xbmc/cores/AudioEngine/Sinks/AESinkALSA.h +++ b/xbmc/cores/AudioEngine/Sinks/AESinkALSA.h @@ -50,7 +50,7 @@ public: virtual unsigned int AddPackets (uint8_t *data, unsigned int frames, bool hasAudio); virtual void Drain (); - static void EnumerateDevicesEx(AEDeviceInfoList &list); + static void EnumerateDevicesEx(AEDeviceInfoList &list, bool force = false); private: CAEChannelInfo GetChannelLayout(AEAudioFormat format); void GetAESParams(const AEAudioFormat format, std::string& params); diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp index e8a787606a..8f23b41187 100644 --- a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp +++ b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.cpp @@ -236,7 +236,7 @@ void CAESinkAUDIOTRACK::SetVolume(float scale) m_volume_changed = true; } -void CAESinkAUDIOTRACK::EnumerateDevicesEx(AEDeviceInfoList &list) +void CAESinkAUDIOTRACK::EnumerateDevicesEx(AEDeviceInfoList &list, bool force) { m_info.m_channels.Reset(); m_info.m_dataFormats.clear(); diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.h b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.h index 46b35515f1..bbb7856e98 100644 --- a/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.h +++ b/xbmc/cores/AudioEngine/Sinks/AESinkAUDIOTRACK.h @@ -43,7 +43,7 @@ public: virtual void Drain (); virtual bool HasVolume (); virtual void SetVolume (float scale); - static void EnumerateDevicesEx(AEDeviceInfoList &list); + static void EnumerateDevicesEx(AEDeviceInfoList &list, bool force = false); private: virtual void Process(); diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp index fe57258b93..f0fb225b6e 100644 --- a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp +++ b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.cpp @@ -464,7 +464,7 @@ double CAESinkDirectSound::GetCacheTotal() return (double)m_dwBufferLen / (double)m_AvgBytesPerSec; } -void CAESinkDirectSound::EnumerateDevicesEx(AEDeviceInfoList &deviceInfoList) +void CAESinkDirectSound::EnumerateDevicesEx(AEDeviceInfoList &deviceInfoList, bool force) { CAEDeviceInfo deviceInfo; diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.h b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.h index 8d64001fd1..ffd281648c 100644 --- a/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.h +++ b/xbmc/cores/AudioEngine/Sinks/AESinkDirectSound.h @@ -43,8 +43,8 @@ public: virtual double GetCacheTime (); virtual double GetCacheTotal (); virtual unsigned int AddPackets (uint8_t *data, unsigned int frames, bool hasAudio); - static void EnumerateDevicesEx (AEDeviceInfoList &deviceInfoList); static std::string GetDefaultDevice (); + static void EnumerateDevicesEx (AEDeviceInfoList &deviceInfoList, bool force = false); private: void AEChannelsFromSpeakerMask(DWORD speakers); DWORD SpeakerMaskFromAEChannels(const CAEChannelInfo &channels); diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp index 06b9a7fc4f..970e2365ed 100644 --- a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp +++ b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.cpp @@ -427,7 +427,7 @@ void CAESinkOSS::Drain() // ??? } -void CAESinkOSS::EnumerateDevicesEx(AEDeviceInfoList &list) +void CAESinkOSS::EnumerateDevicesEx(AEDeviceInfoList &list, bool force) { int mixerfd; const char * mixerdev = "/dev/mixer"; diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h index aa8a9f8f9a..7e2db8beb8 100644 --- a/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h +++ b/xbmc/cores/AudioEngine/Sinks/AESinkOSS.h @@ -43,7 +43,7 @@ public: virtual double GetCacheTotal () { return 0.0; } /* FIXME */ virtual unsigned int AddPackets (uint8_t *data, unsigned int frames, bool hasAudio); virtual void Drain (); - static void EnumerateDevicesEx(AEDeviceInfoList &list); + static void EnumerateDevicesEx(AEDeviceInfoList &list, bool force = false); private: int m_fd; std::string m_device; diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp index 8475d60f7e..f238d75421 100644 --- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp +++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.cpp @@ -559,7 +559,7 @@ bool CAESinkWASAPI::SoftResume() return false; } -void CAESinkWASAPI::EnumerateDevicesEx(AEDeviceInfoList &deviceInfoList) +void CAESinkWASAPI::EnumerateDevicesEx(AEDeviceInfoList &deviceInfoList, bool force) { IMMDeviceEnumerator* pEnumerator = NULL; IMMDeviceCollection* pEnumDevices = NULL; diff --git a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h index a0c567ae7b..7111ea97a7 100644 --- a/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h +++ b/xbmc/cores/AudioEngine/Sinks/AESinkWASAPI.h @@ -45,7 +45,7 @@ public: virtual unsigned int AddPackets (uint8_t *data, unsigned int frames, bool hasAudio); virtual bool SoftSuspend (); virtual bool SoftResume (); - static void EnumerateDevicesEx (AEDeviceInfoList &deviceInfoList); + static void EnumerateDevicesEx (AEDeviceInfoList &deviceInfoList, bool force = false); private: bool InitializeExclusive(AEAudioFormat &format); void AEChannelsFromSpeakerMask(DWORD speakers); @@ -78,4 +78,4 @@ private: unsigned int m_uiBufferLen; /* wasapi endpoint buffer size, in frames */ double m_avgTimeWaiting; /* time between next buffer of data from SoftAE and driver call for data */ double m_sinkLatency; /* time in seconds of total duration of the two WASAPI buffers */ -}; \ No newline at end of file +}; -- cgit v1.2.3