kodi: update alsa/pulse patch after PR13119

This commit is contained in:
MilhouseVH 2018-01-01 14:32:24 +00:00
parent 219a08aade
commit cbed03d62b

View File

@ -1,79 +1,126 @@
diff -Naur a/xbmc/cores/AudioEngine/AESinkFactory.cpp b/xbmc/cores/AudioEngine/AESinkFactory.cpp commit 81214c86f437863c0a8f4ac2e45de81fccc621b4
--- a/xbmc/cores/AudioEngine/AESinkFactory.cpp 2016-01-12 22:00:19.000000000 +0100 Author: Lukas Rusak <lorusak@gmail.com>
+++ b/xbmc/cores/AudioEngine/AESinkFactory.cpp 2016-01-25 10:25:46.375653966 +0100 Date: Mon Dec 11 23:44:41 2017 -0800
@@ -28,6 +28,9 @@
#elif defined(TARGET_RASPBERRY_PI) [linux] allow using alsa and pulse together
#include "Sinks/AESinkPi.h"
#include "Sinks/AESinkALSA.h" diff --git a/xbmc/windowing/X11/WinSystemX11GLContext.cpp b/xbmc/windowing/X11/WinSystemX11GLContext.cpp
+ #if defined(HAS_PULSEAUDIO) index 24394d7631..0914d28820 100644
+ #include "Sinks/AESinkPULSE.h" --- a/xbmc/windowing/X11/WinSystemX11GLContext.cpp
+ #endif +++ b/xbmc/windowing/X11/WinSystemX11GLContext.cpp
#elif defined(TARGET_DARWIN_IOS) @@ -52,31 +52,8 @@ std::unique_ptr<CWinSystemBase> CWinSystemBase::CreateWinSystem()
#include "Sinks/AESinkDARWINIOS.h"
#elif defined(TARGET_DARWIN_OSX)
@@ -67,6 +70,9 @@
#elif defined(TARGET_RASPBERRY_PI)
driver == "PI" ||
driver == "ALSA" ||
+ #if defined(HAS_PULSEAUDIO)
+ driver == "PULSE" ||
+ #endif
#elif defined(TARGET_DARWIN_IOS)
driver == "DARWINIOS" ||
#elif defined(TARGET_DARWIN_OSX)
@@ -108,6 +114,10 @@
#elif defined(TARGET_RASPBERRY_PI)
if (driver == "PI")
sink = new CAESinkPi();
+ #if defined(HAS_PULSEAUDIO)
+ if (driver == "PULSE")
+ sink = new CAESinkPULSE();
+ #endif
#if defined(HAS_ALSA)
if (driver == "ALSA")
sink = new CAESinkALSA();
@@ -209,6 +219,16 @@
if(!info.m_deviceInfoList.empty())
list.push_back(info);
#endif
+ #if defined(HAS_PULSEAUDIO)
+ info.m_deviceInfoList.clear();
+ info.m_sinkName = "PULSE";
+ CAESinkPULSE::EnumerateDevicesEx(info.m_deviceInfoList, force);
+ if(!info.m_deviceInfoList.empty())
+ {
+ list.push_back(info);
+ return;
+ }
+ #endif
#elif defined(TARGET_DARWIN_IOS)
info.m_deviceInfoList.clear(); CWinSystemX11GLContext::CWinSystemX11GLContext()
@@ -253,21 +273,20 @@ {
CLog::Log(LOGNOTICE, "User specified Sink %s could not be enumerated", envSink.c_str()); - std::string envSink;
} - if (getenv("AE_SINK"))
- envSink = getenv("AE_SINK");
- if (StringUtils::EqualsNoCase(envSink, "ALSA"))
- {
- X11::ALSARegister();
- }
- else if (StringUtils::EqualsNoCase(envSink, "PULSE"))
- {
- X11::PulseAudioRegister();
- }
- else if (StringUtils::EqualsNoCase(envSink, "SNDIO"))
- {
- X11::SndioRegister();
- }
- else
- {
- if (!X11::PulseAudioRegister())
- {
- if (!X11::ALSARegister())
- {
- X11::SndioRegister();
- }
- }
- }
+ X11::ALSARegister();
+ X11::PulseAudioRegister();
}
- #if defined(HAS_PULSEAUDIO) CWinSystemX11GLContext::~CWinSystemX11GLContext()
+ #if defined(HAS_ALSA) diff --git a/xbmc/windowing/amlogic/WinSystemAmlogic.cpp b/xbmc/windowing/amlogic/WinSystemAmlogic.cpp
info.m_deviceInfoList.clear(); index 4b8199760e..e50a31daf9 100644
- info.m_sinkName = "PULSE"; --- a/xbmc/windowing/amlogic/WinSystemAmlogic.cpp
- CAESinkPULSE::EnumerateDevicesEx(info.m_deviceInfoList, force); +++ b/xbmc/windowing/amlogic/WinSystemAmlogic.cpp
+ info.m_sinkName = "ALSA"; @@ -32,6 +32,7 @@
+ CAESinkALSA::EnumerateDevicesEx(info.m_deviceInfoList, force); // AESink Factory
if(!info.m_deviceInfoList.empty()) #include "cores/AudioEngine/AESinkFactory.h"
{ #include "cores/AudioEngine/Sinks/AESinkALSA.h"
list.push_back(info); +#include "cores/AudioEngine/Sinks/AESinkPULSE.h"
- return; #include "guilib/GraphicContext.h"
} #include "guilib/Resolution.h"
#endif #include "settings/Settings.h"
@@ -78,6 +79,7 @@ CWinSystemAmlogic::CWinSystemAmlogic()
// Register sink
AE::CAESinkFactory::ClearSinks();
CAESinkALSA::Register();
+ CAESinkPULSE::Register();
}
- #if defined(HAS_ALSA) CWinSystemAmlogic::~CWinSystemAmlogic()
+ #if defined(HAS_PULSEAUDIO) diff --git a/xbmc/windowing/gbm/WinSystemGbm.cpp b/xbmc/windowing/gbm/WinSystemGbm.cpp
info.m_deviceInfoList.clear(); index 3ef426f677..7a1dfe1c8e 100644
- info.m_sinkName = "ALSA"; --- a/xbmc/windowing/gbm/WinSystemGbm.cpp
- CAESinkALSA::EnumerateDevicesEx(info.m_deviceInfoList, force); +++ b/xbmc/windowing/gbm/WinSystemGbm.cpp
+ info.m_sinkName = "PULSE"; @@ -37,31 +37,8 @@ CWinSystemGbm::CWinSystemGbm() :
+ CAESinkPULSE::EnumerateDevicesEx(info.m_deviceInfoList, force); m_nativeDisplay(nullptr),
if(!info.m_deviceInfoList.empty()) m_nativeWindow(nullptr)
{ {
list.push_back(info); - std::string envSink;
- if (getenv("AE_SINK"))
- envSink = getenv("AE_SINK");
- if (StringUtils::EqualsNoCase(envSink, "ALSA"))
- {
- GBM::ALSARegister();
- }
- else if (StringUtils::EqualsNoCase(envSink, "PULSE"))
- {
- GBM::PulseAudioRegister();
- }
- else if (StringUtils::EqualsNoCase(envSink, "SNDIO"))
- {
- GBM::SndioRegister();
- }
- else
- {
- if (!GBM::PulseAudioRegister())
- {
- if (!GBM::ALSARegister())
- {
- GBM::SndioRegister();
- }
- }
- }
+ GBM::ALSARegister();
+ GBM::PulseAudioRegister();
m_winEvents.reset(new CWinEventsLinux());
}
diff --git a/xbmc/windowing/rpi/WinSystemRpi.cpp b/xbmc/windowing/rpi/WinSystemRpi.cpp
index 9e7f8bd9be..464cf1342b 100644
--- a/xbmc/windowing/rpi/WinSystemRpi.cpp
+++ b/xbmc/windowing/rpi/WinSystemRpi.cpp
@@ -34,7 +34,9 @@
#include "utils/log.h"
#include "../WinEventsLinux.h"
#include "cores/AudioEngine/AESinkFactory.h"
+#include "cores/AudioEngine/Sinks/AESinkALSA.h"
#include "cores/AudioEngine/Sinks/AESinkPi.h"
+#include "cores/AudioEngine/Sinks/AESinkPULSE.h"
#include <EGL/egl.h>
#include <EGL/eglplatform.h>
@@ -55,6 +57,8 @@ CWinSystemRpi::CWinSystemRpi()
m_winEvents.reset(new CWinEventsLinux());
AE::CAESinkFactory::ClearSinks();
CAESinkPi::Register();
+ CAESinkALSA::Register();
+ CAESinkPULSE::Register();
}
CWinSystemRpi::~CWinSystemRpi()