diff options
| author | bunnei <bunneidev@gmail.com> | 2019-07-04 01:42:22 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-07-04 01:42:22 -0400 | 
| commit | 3c7eed16dc290de13d7036f939e3364eb941f747 (patch) | |
| tree | f4a58dcbef12307fab060ecaac6e7ae9063740b5 /src/core/hle | |
| parent | 70b595a63b53e657ec2fe6640d16f20cb24d433e (diff) | |
| parent | 965608e6d16adabd6193605b889e239f4329ac16 (diff) | |
Merge pull request #2658 from ogniK5377/QueryAudioDeviceOutputEvent
IAudioDevice::QueryAudioDeviceOutputEvent
Diffstat (limited to 'src/core/hle')
| -rw-r--r-- | src/core/hle/service/audio/audren_u.cpp | 19 | 
1 files changed, 16 insertions, 3 deletions
| diff --git a/src/core/hle/service/audio/audren_u.cpp b/src/core/hle/service/audio/audren_u.cpp index 75db0c2dc..3711e1ea1 100644 --- a/src/core/hle/service/audio/audren_u.cpp +++ b/src/core/hle/service/audio/audren_u.cpp @@ -167,13 +167,12 @@ public:              {3, &IAudioDevice::GetActiveAudioDeviceName, "GetActiveAudioDeviceName"},              {4, &IAudioDevice::QueryAudioDeviceSystemEvent, "QueryAudioDeviceSystemEvent"},              {5, &IAudioDevice::GetActiveChannelCount, "GetActiveChannelCount"}, -            {6, &IAudioDevice::ListAudioDeviceName, -             "ListAudioDeviceNameAuto"}, // TODO(ogniK): Confirm if autos are identical to non auto +            {6, &IAudioDevice::ListAudioDeviceName, "ListAudioDeviceNameAuto"},              {7, &IAudioDevice::SetAudioDeviceOutputVolume, "SetAudioDeviceOutputVolumeAuto"},              {8, nullptr, "GetAudioDeviceOutputVolumeAuto"},              {10, &IAudioDevice::GetActiveAudioDeviceName, "GetActiveAudioDeviceNameAuto"},              {11, nullptr, "QueryAudioDeviceInputEvent"}, -            {12, nullptr, "QueryAudioDeviceOutputEvent"}, +            {12, &IAudioDevice::QueryAudioDeviceOutputEvent, "QueryAudioDeviceOutputEvent"},              {13, nullptr, "GetAudioSystemMasterVolumeSetting"},          };          RegisterHandlers(functions); @@ -181,6 +180,11 @@ public:          auto& kernel = Core::System::GetInstance().Kernel();          buffer_event = Kernel::WritableEvent::CreateEventPair(kernel, Kernel::ResetType::Automatic,                                                                "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: @@ -237,7 +241,16 @@ private:          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 audio_output_device_switch_event;  }; // namespace Audio | 
