Remove libao sound backend

A single person uses it[0], and it sometimes messes up the Linux
buildbots ("ninja: error: 'ao', needed by 'Binaries/dolphin-emu', missing
and no known rule to make it").

[0]: https://analytics.dolphin-emu.org/stats/popular-audio-backends.txt
This commit is contained in:
Michael Maltese 2017-03-31 14:59:54 -07:00
parent 0aec9fa4db
commit af63235dc4
9 changed files with 2 additions and 193 deletions

View File

@ -1,42 +0,0 @@
# - Find AO library
# This module defines
# AO_INCLUDE_DIR
# AO_LIBRARIES
# AO_FOUND
#
# vim: expandtab sw=4 ts=4 sts=4:
include(FindPkgConfig)
pkg_check_modules (AO_PKG QUIET ao)
find_path(AO_INCLUDE_DIR NAMES ao/ao.h
PATHS
${AO_PKG_INCLUDE_DIRS}
/usr/include/ao
/usr/include
/usr/local/include/ao
/usr/local/include
)
find_library(AO_LIBRARIES NAMES ao
PATHS
${AO_PKG_LIBRARY_DIRS}
/usr/lib
/usr/local/lib
)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(AO
REQUIRED_VARS AO_LIBRARIES AO_INCLUDE_DIR)
if(AO_FOUND)
if(NOT TARGET AO::AO)
add_library(AO::AO UNKNOWN IMPORTED)
set_target_properties(AO::AO PROPERTIES
IMPORTED_LOCATION ${AO_LIBRARIES}
INTERFACE_INCLUDE_DIRECTORIES ${AO_INCLUDE_DIR}
)
endif()
endif()
mark_as_advanced(AO_INCLUDE_DIR AO_LIBRARIES)

View File

@ -21,7 +21,6 @@ option(ENABLE_LTO "Enables Link Time Optimization" OFF)
option(ENABLE_GENERIC "Enables generic build that should run on any little-endian host" OFF)
option(ENABLE_HEADLESS "Enables running Dolphin as a headless variant" OFF)
option(ENABLE_ALSA "Enables ALSA sound backend" ON)
option(ENABLE_AO "Enables libao sound backend" ON)
option(ENABLE_PULSEAUDIO "Enables PulseAudio sound backend" ON)
option(ENABLE_OPENAL "Enables OpenAL sound backend" ON)
option(ENABLE_LLVM "Enables LLVM support, for disassembly" ON)

View File

@ -1,82 +0,0 @@
// Copyright 2008 Dolphin Emulator Project
// Licensed under GPLv2+
// Refer to the license.txt file included.
#include <cstring>
#include "AudioCommon/AOSoundStream.h"
#include "AudioCommon/Mixer.h"
#include "Common/Logging/Log.h"
#include "Common/MsgHandler.h"
#if defined(HAVE_AO) && HAVE_AO
void AOSound::SoundLoop()
{
Common::SetCurrentThreadName("Audio thread - ao");
uint_32 numBytesToRender = 256;
ao_initialize();
default_driver = ao_default_driver_id();
format.bits = 16;
format.channels = 2;
format.rate = m_mixer->GetSampleRate();
format.byte_format = AO_FMT_LITTLE;
device = ao_open_live(default_driver, &format, nullptr /* no options */);
if (!device)
{
PanicAlertT("AudioCommon: Error opening AO device.\n");
ao_shutdown();
Stop();
return;
}
buf_size = format.bits / 8 * format.channels * format.rate;
while (m_run_thread.IsSet())
{
m_mixer->Mix(realtimeBuffer, numBytesToRender >> 2);
{
std::lock_guard<std::mutex> lk(soundCriticalSection);
ao_play(device, (char*)realtimeBuffer, numBytesToRender);
}
soundSyncEvent.Wait();
}
}
bool AOSound::Start()
{
m_run_thread.Set();
memset(realtimeBuffer, 0, sizeof(realtimeBuffer));
thread = std::thread(&AOSound::SoundLoop, this);
return true;
}
void AOSound::Update()
{
soundSyncEvent.Set();
}
void AOSound::Stop()
{
m_run_thread.Clear();
soundSyncEvent.Set();
{
std::lock_guard<std::mutex> lk(soundCriticalSection);
thread.join();
if (device)
ao_close(device);
ao_shutdown();
device = nullptr;
}
}
#endif

View File

@ -1,42 +0,0 @@
// Copyright 2008 Dolphin Emulator Project
// Licensed under GPLv2+
// Refer to the license.txt file included.
#pragma once
#include <mutex>
#include <thread>
#include "AudioCommon/SoundStream.h"
#include "Common/Event.h"
#include "Common/Thread.h"
#if defined(HAVE_AO) && HAVE_AO
#include <ao/ao.h>
#endif
class AOSound final : public SoundStream
{
#if defined(HAVE_AO) && HAVE_AO
std::thread thread;
Common::Flag m_run_thread;
std::mutex soundCriticalSection;
Common::Event soundSyncEvent;
int buf_size;
ao_device* device;
ao_sample_format format;
int default_driver;
short realtimeBuffer[1024 * 1024];
public:
bool Start() override;
void SoundLoop() override;
void Stop() override;
void Update() override;
static bool isValid() { return true; }
#endif
};

View File

@ -3,7 +3,6 @@
// Refer to the license.txt file included.
#include "AudioCommon/AudioCommon.h"
#include "AudioCommon/AOSoundStream.h"
#include "AudioCommon/AlsaSoundStream.h"
#include "AudioCommon/CoreAudioSoundStream.h"
#include "AudioCommon/Mixer.h"
@ -42,8 +41,6 @@ void InitSoundStream()
else if (XAudio2_7::isValid())
g_sound_stream = std::make_unique<XAudio2_7>();
}
else if (backend == BACKEND_AOSOUND && AOSound::isValid())
g_sound_stream = std::make_unique<AOSound>();
else if (backend == BACKEND_ALSA && AlsaSound::isValid())
g_sound_stream = std::make_unique<AlsaSound>();
else if (backend == BACKEND_COREAUDIO && CoreAudioSound::isValid())
@ -115,8 +112,6 @@ std::vector<std::string> GetSoundBackends()
backends.push_back(BACKEND_NULLSOUND);
if (XAudio2_7::isValid() || XAudio2::isValid())
backends.push_back(BACKEND_XAUDIO2);
if (AOSound::isValid())
backends.push_back(BACKEND_AOSOUND);
if (AlsaSound::isValid())
backends.push_back(BACKEND_ALSA);
if (CoreAudioSound::isValid())

View File

@ -50,7 +50,6 @@
<ItemGroup>
<ClInclude Include="aldlist.h" />
<ClInclude Include="AlsaSoundStream.h" />
<ClInclude Include="AOSoundStream.h" />
<ClInclude Include="AudioCommon.h" />
<ClInclude Include="CoreAudioSoundStream.h" />
<ClInclude Include="DPL2Decoder.h" />
@ -78,4 +77,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
</Project>

View File

@ -30,9 +30,6 @@
<ClInclude Include="DPL2Decoder.h" />
<ClInclude Include="Mixer.h" />
<ClInclude Include="WaveFile.h" />
<ClInclude Include="AOSoundStream.h">
<Filter>SoundStreams</Filter>
</ClInclude>
<ClInclude Include="NullSoundStream.h">
<Filter>SoundStreams</Filter>
</ClInclude>
@ -64,4 +61,4 @@
<ItemGroup>
<Text Include="CMakeLists.txt" />
</ItemGroup>
</Project>
</Project>

View File

@ -29,20 +29,6 @@ else()
message(STATUS "ALSA explicitly disabled, disabling ALSA sound backend")
endif()
if(ENABLE_AO)
find_package(AO)
if(AO_FOUND)
message(STATUS "ao found, enabling ao sound backend")
target_sources(audiocommon PRIVATE AOSoundStream.cpp)
target_link_libraries(audiocommon PRIVATE AO::AO)
target_compile_definitions(audiocommon PRIVATE HAVE_AO=1)
else()
message(STATUS "ao NOT found, disabling ao sound backend")
endif()
else()
message(STATUS "ao explicitly disabled, disabling ao sound backend")
endif()
if(ENABLE_OPENAL)
if(WIN32)
set(ENV{OPENALDIR} ${PROJECT_SOURCE_DIR}/Externals/OpenAL)

View File

@ -32,7 +32,6 @@ class TMDReader;
// DSP Backend Types
#define BACKEND_NULLSOUND _trans("No audio output")
#define BACKEND_ALSA "ALSA"
#define BACKEND_AOSOUND "AOSound"
#define BACKEND_COREAUDIO "CoreAudio"
#define BACKEND_OPENAL "OpenAL"
#define BACKEND_PULSEAUDIO "Pulse"