forked from suyu/suyu
Merge pull request #2658 from ogniK5377/QueryAudioDeviceOutputEvent
IAudioDevice::QueryAudioDeviceOutputEvent
This commit is contained in:
commit
3c7eed16dc
1 changed files with 16 additions and 3 deletions
|
@ -167,13 +167,12 @@ public:
|
||||||
{3, &IAudioDevice::GetActiveAudioDeviceName, "GetActiveAudioDeviceName"},
|
{3, &IAudioDevice::GetActiveAudioDeviceName, "GetActiveAudioDeviceName"},
|
||||||
{4, &IAudioDevice::QueryAudioDeviceSystemEvent, "QueryAudioDeviceSystemEvent"},
|
{4, &IAudioDevice::QueryAudioDeviceSystemEvent, "QueryAudioDeviceSystemEvent"},
|
||||||
{5, &IAudioDevice::GetActiveChannelCount, "GetActiveChannelCount"},
|
{5, &IAudioDevice::GetActiveChannelCount, "GetActiveChannelCount"},
|
||||||
{6, &IAudioDevice::ListAudioDeviceName,
|
{6, &IAudioDevice::ListAudioDeviceName, "ListAudioDeviceNameAuto"},
|
||||||
"ListAudioDeviceNameAuto"}, // TODO(ogniK): Confirm if autos are identical to non auto
|
|
||||||
{7, &IAudioDevice::SetAudioDeviceOutputVolume, "SetAudioDeviceOutputVolumeAuto"},
|
{7, &IAudioDevice::SetAudioDeviceOutputVolume, "SetAudioDeviceOutputVolumeAuto"},
|
||||||
{8, nullptr, "GetAudioDeviceOutputVolumeAuto"},
|
{8, nullptr, "GetAudioDeviceOutputVolumeAuto"},
|
||||||
{10, &IAudioDevice::GetActiveAudioDeviceName, "GetActiveAudioDeviceNameAuto"},
|
{10, &IAudioDevice::GetActiveAudioDeviceName, "GetActiveAudioDeviceNameAuto"},
|
||||||
{11, nullptr, "QueryAudioDeviceInputEvent"},
|
{11, nullptr, "QueryAudioDeviceInputEvent"},
|
||||||
{12, nullptr, "QueryAudioDeviceOutputEvent"},
|
{12, &IAudioDevice::QueryAudioDeviceOutputEvent, "QueryAudioDeviceOutputEvent"},
|
||||||
{13, nullptr, "GetAudioSystemMasterVolumeSetting"},
|
{13, nullptr, "GetAudioSystemMasterVolumeSetting"},
|
||||||
};
|
};
|
||||||
RegisterHandlers(functions);
|
RegisterHandlers(functions);
|
||||||
|
@ -181,6 +180,11 @@ public:
|
||||||
auto& kernel = Core::System::GetInstance().Kernel();
|
auto& kernel = Core::System::GetInstance().Kernel();
|
||||||
buffer_event = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Automatic,
|
buffer_event = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Automatic,
|
||||||
"IAudioOutBufferReleasedEvent");
|
"IAudioOutBufferReleasedEvent");
|
||||||
|
|
||||||
|
// Should only be signalled when an audio output device has been changed, example: speaker
|
||||||
|
// to headset
|
||||||
|
audio_output_device_switch_event = Kernel::WritableEvent::CreateEventPair(
|
||||||
|
kernel, Kernel::ResetType::Automatic, "IAudioDevice:AudioOutputDeviceSwitchedEvent");
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -237,7 +241,16 @@ private:
|
||||||
rb.Push<u32>(1);
|
rb.Push<u32>(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QueryAudioDeviceOutputEvent(Kernel::HLERequestContext& ctx) {
|
||||||
|
LOG_DEBUG(Service_Audio, "called");
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2, 1};
|
||||||
|
rb.Push(RESULT_SUCCESS);
|
||||||
|
rb.PushCopyObjects(audio_output_device_switch_event.readable);
|
||||||
|
}
|
||||||
|
|
||||||
Kernel::EventPair buffer_event;
|
Kernel::EventPair buffer_event;
|
||||||
|
Kernel::EventPair audio_output_device_switch_event;
|
||||||
|
|
||||||
}; // namespace Audio
|
}; // namespace Audio
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue