diff --git a/src/core/hle/service/audio/audio.cpp b/src/core/hle/service/audio/audio.cpp new file mode 100644 index 0000000000..0ffd72e7b4 --- /dev/null +++ b/src/core/hle/service/audio/audio.cpp @@ -0,0 +1,17 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "core/hle/ipc_helpers.h" +#include "core/hle/service/audio/audio.h" +#include "core/hle/service/audio/audout_u.h" + +namespace Service { +namespace Audio { + +void InstallInterfaces(SM::ServiceManager& service_manager) { + std::make_shared()->InstallAsService(service_manager); +} + +} // namespace Audio +} // namespace Service diff --git a/src/core/hle/service/audio/audio.h b/src/core/hle/service/audio/audio.h new file mode 100644 index 0000000000..cbd56b2a87 --- /dev/null +++ b/src/core/hle/service/audio/audio.h @@ -0,0 +1,16 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "core/hle/service/service.h" + +namespace Service { +namespace Audio { + +/// Registers all Audio services with the specified service manager. +void InstallInterfaces(SM::ServiceManager& service_manager); + +} // namespace Audio +} // namespace Service diff --git a/src/core/hle/service/audio/audout_u.cpp b/src/core/hle/service/audio/audout_u.cpp new file mode 100644 index 0000000000..c028262c66 --- /dev/null +++ b/src/core/hle/service/audio/audout_u.cpp @@ -0,0 +1,26 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "common/logging/log.h" +#include "core/hle/ipc_helpers.h" +#include "core/hle/service/audio/audout_u.h" + +namespace Service { +namespace Audio { + +void AudOutU::ListAudioOuts(Kernel::HLERequestContext& ctx) { + LOG_WARNING(Service, "(STUBBED) called"); + IPC::RequestBuilder rb{ctx, 2}; + rb.Push(RESULT_SUCCESS); +} + +AudOutU::AudOutU() : ServiceFramework("audout:u") { + static const FunctionInfo functions[] = { + {0x00000000, &AudOutU::ListAudioOuts, "ListAudioOuts"}, + }; + RegisterHandlers(functions); +} + +} // namespace Audio +} // namespace Service diff --git a/src/core/hle/service/audio/audout_u.h b/src/core/hle/service/audio/audout_u.h new file mode 100644 index 0000000000..42680af945 --- /dev/null +++ b/src/core/hle/service/audio/audout_u.h @@ -0,0 +1,23 @@ +// Copyright 2018 yuzu emulator team +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "core/hle/kernel/hle_ipc.h" +#include "core/hle/service/service.h" + +namespace Service { +namespace Audio { + +class AudOutU final : public ServiceFramework { +public: + AudOutU(); + ~AudOutU() = default; + +private: + void ListAudioOuts(Kernel::HLERequestContext& ctx); +}; + +} // namespace Audio +} // namespace Service diff --git a/src/core/hle/service/service.cpp b/src/core/hle/service/service.cpp index 0ecc0eb16b..c275259805 100644 --- a/src/core/hle/service/service.cpp +++ b/src/core/hle/service/service.cpp @@ -17,6 +17,7 @@ #include "core/hle/service/am/am.h" #include "core/hle/service/aoc/aoc_u.h" #include "core/hle/service/apm/apm.h" +#include "core/hle/service/audio/audio.h" #include "core/hle/service/hid/hid.h" #include "core/hle/service/lm/lm.h" #include "core/hle/service/nvdrv/nvdrv.h" @@ -164,6 +165,7 @@ void Init() { AM::InstallInterfaces(*SM::g_service_manager); AOC::InstallInterfaces(*SM::g_service_manager); APM::InstallInterfaces(*SM::g_service_manager); + Audio::InstallInterfaces(*SM::g_service_manager); HID::InstallInterfaces(*SM::g_service_manager); LM::InstallInterfaces(*SM::g_service_manager); NVDRV::InstallInterfaces(*SM::g_service_manager);