59 lines
2.3 KiB
C++
Executable File
59 lines
2.3 KiB
C++
Executable File
// SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#pragma once
|
|
|
|
#include "audio_core/renderer/audio_device.h"
|
|
#include "core/hle/service/cmif_types.h"
|
|
#include "core/hle/service/kernel_helpers.h"
|
|
#include "core/hle/service/service.h"
|
|
|
|
namespace Kernel {
|
|
class KReadableEvent;
|
|
}
|
|
|
|
namespace Service::Audio {
|
|
|
|
using AudioCore::Renderer::AudioDevice;
|
|
|
|
class IAudioDevice final : public ServiceFramework<IAudioDevice> {
|
|
|
|
public:
|
|
explicit IAudioDevice(Core::System& system_, u64 applet_resource_user_id, u32 revision,
|
|
u32 device_num);
|
|
~IAudioDevice() override;
|
|
|
|
private:
|
|
Result ListAudioDeviceName(
|
|
OutArray<AudioDevice::AudioDeviceName, BufferAttr_HipcMapAlias> out_names,
|
|
Out<s32> out_count);
|
|
Result SetAudioDeviceOutputVolume(
|
|
InArray<AudioDevice::AudioDeviceName, BufferAttr_HipcMapAlias> name, f32 volume);
|
|
Result GetAudioDeviceOutputVolume(
|
|
Out<f32> out_volume, InArray<AudioDevice::AudioDeviceName, BufferAttr_HipcMapAlias> name);
|
|
Result GetActiveAudioDeviceName(
|
|
OutArray<AudioDevice::AudioDeviceName, BufferAttr_HipcMapAlias> out_name);
|
|
Result ListAudioDeviceNameAuto(
|
|
OutArray<AudioDevice::AudioDeviceName, BufferAttr_HipcAutoSelect> out_names,
|
|
Out<s32> out_count);
|
|
Result SetAudioDeviceOutputVolumeAuto(
|
|
InArray<AudioDevice::AudioDeviceName, BufferAttr_HipcAutoSelect> name, f32 volume);
|
|
Result GetAudioDeviceOutputVolumeAuto(
|
|
Out<f32> out_volume, InArray<AudioDevice::AudioDeviceName, BufferAttr_HipcAutoSelect> name);
|
|
Result GetActiveAudioDeviceNameAuto(
|
|
OutArray<AudioDevice::AudioDeviceName, BufferAttr_HipcAutoSelect> out_name);
|
|
Result QueryAudioDeviceSystemEvent(OutCopyHandle<Kernel::KReadableEvent> out_event);
|
|
Result QueryAudioDeviceInputEvent(OutCopyHandle<Kernel::KReadableEvent> out_event);
|
|
Result QueryAudioDeviceOutputEvent(OutCopyHandle<Kernel::KReadableEvent> out_event);
|
|
Result GetActiveChannelCount(Out<u32> out_active_channel_count);
|
|
Result ListAudioOutputDeviceName(
|
|
OutArray<AudioDevice::AudioDeviceName, BufferAttr_HipcMapAlias> out_names,
|
|
Out<s32> out_count);
|
|
|
|
KernelHelpers::ServiceContext service_context;
|
|
std::unique_ptr<AudioCore::Renderer::AudioDevice> impl;
|
|
Kernel::KEvent* event;
|
|
};
|
|
|
|
} // namespace Service::Audio
|