Skip to content

Commit

Permalink
[ios/osx] adds Darwin sinks for ActiveAE and drop the CoreAudio engine.
Browse files Browse the repository at this point in the history
  • Loading branch information
Jonathan Marshall committed Feb 21, 2014
1 parent e585af6 commit c13a3d4
Show file tree
Hide file tree
Showing 38 changed files with 1,697 additions and 6,765 deletions.
162 changes: 52 additions & 110 deletions XBMC.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

19 changes: 1 addition & 18 deletions xbmc/cores/AudioEngine/AEFactory.cpp
Expand Up @@ -22,12 +22,7 @@
#include "AEFactory.h"
#include "Utils/AEUtil.h"

#if defined(TARGET_DARWIN)
#include "Engines/CoreAudio/CoreAudioAE.h"
#include "settings/lib/SettingsManager.h"
#else
#include "Engines/ActiveAE/ActiveAE.h"
#endif
#include "Engines/ActiveAE/ActiveAE.h"

#include "guilib/LocalizeStrings.h"
#include "settings/lib/Setting.h"
Expand All @@ -45,11 +40,7 @@ IAE *CAEFactory::GetEngine()

bool CAEFactory::LoadEngine()
{
#if defined(TARGET_DARWIN)
return CAEFactory::LoadEngine(AE_ENGINE_COREAUDIO);
#else
return CAEFactory::LoadEngine(AE_ENGINE_ACTIVE);
#endif
}

bool CAEFactory::LoadEngine(enum AEEngine engine)
Expand All @@ -61,11 +52,7 @@ bool CAEFactory::LoadEngine(enum AEEngine engine)
switch(engine)
{
case AE_ENGINE_NULL :
#if defined(TARGET_DARWIN)
case AE_ENGINE_COREAUDIO: AE = new CCoreAudioAE(); break;
#else
case AE_ENGINE_ACTIVE : AE = new ActiveAE::CActiveAE(); break;
#endif
default:
return false;
}
Expand Down Expand Up @@ -355,12 +342,10 @@ void CAEFactory::SettingOptionsAudioDevicesFillerGeneral(const CSetting *setting
bool foundValue = false;
AEDeviceList sinkList;
EnumerateOutputDevices(sinkList, passthrough);
#if !defined(TARGET_DARWIN)
if (sinkList.size() == 0)
list.push_back(std::make_pair("Error - no devices found", "error"));
else
{
#endif
for (AEDeviceList::const_iterator sink = sinkList.begin(); sink != sinkList.end(); ++sink)
{
if (sink == sinkList.begin())
Expand All @@ -371,9 +356,7 @@ void CAEFactory::SettingOptionsAudioDevicesFillerGeneral(const CSetting *setting
if (StringUtils::EqualsNoCase(current, sink->second))
foundValue = true;
}
#if !defined(TARGET_DARWIN)
}
#endif

if (!foundValue)
current = firstDevice;
Expand Down
28 changes: 28 additions & 0 deletions xbmc/cores/AudioEngine/AESinkFactory.cpp
Expand Up @@ -27,6 +27,10 @@
#include "Sinks/AESinkAUDIOTRACK.h"
#elif defined(TARGET_RASPBERRY_PI)
#include "Sinks/AESinkPi.h"
#elif defined(TARGET_DARWIN_IOS)
#include "Sinks/AESinkDARWINIOS.h"
#elif defined(TARGET_DARWIN_OSX)
#include "Sinks/AESinkDARWINOSX.h"
#elif defined(TARGET_LINUX) || defined(TARGET_FREEBSD)
#if defined(HAS_ALSA)
#include "Sinks/AESinkALSA.h"
Expand Down Expand Up @@ -62,6 +66,10 @@ void CAESinkFactory::ParseDevice(std::string &device, std::string &driver)
driver == "AUDIOTRACK" ||
#elif defined(TARGET_RASPBERRY_PI)
driver == "PI" ||
#elif defined(TARGET_DARWIN_IOS)
driver == "DARWINIOS" ||
#elif defined(TARGET_DARWIN_OSX)
driver == "DARWINOSX" ||
#elif defined(TARGET_LINUX) || defined(TARGET_FREEBSD)
#if defined(HAS_ALSA)
driver == "ALSA" ||
Expand Down Expand Up @@ -97,6 +105,10 @@ IAESink *CAESinkFactory::TrySink(std::string &driver, std::string &device, AEAud
sink = new CAESinkAUDIOTRACK();
#elif defined(TARGET_RASPBERRY_PI)
sink = new CAESinkPi();
#elif defined(TARGET_DARWIN_IOS)
sink = new CAESinkDARWINIOS();
#elif defined(TARGET_DARWIN_OSX)
sink = new CAESinkDARWINOSX();
#elif defined(TARGET_LINUX) || defined(TARGET_FREEBSD)
#if defined(HAS_PULSEAUDIO)
else if (driver == "PULSE")
Expand Down Expand Up @@ -175,6 +187,22 @@ void CAESinkFactory::EnumerateEx(AESinkInfoList &list, bool force)
if(!info.m_deviceInfoList.empty())
list.push_back(info);

#elif defined(TARGET_DARWIN_IOS)

info.m_deviceInfoList.clear();
info.m_sinkName = "DARWINIOS";
CAESinkDARWINIOS::EnumerateDevicesEx(info.m_deviceInfoList, force);
if(!info.m_deviceInfoList.empty())
list.push_back(info);

#elif defined(TARGET_DARWIN_OSX)

info.m_deviceInfoList.clear();
info.m_sinkName = "DARWINOSX";
CAESinkDARWINOSX::EnumerateDevicesEx(info.m_deviceInfoList, force);
if(!info.m_deviceInfoList.empty())
list.push_back(info);

#elif defined(TARGET_LINUX) || defined(TARGET_FREEBSD)
// check if user wants us to do something specific
if (getenv("AE_SINK"))
Expand Down

0 comments on commit c13a3d4

Please sign in to comment.