瀏覽代碼

LibWeb: Expose volume controls through the platform audio plugin

Timothy Flynn 2 年之前
父節點
當前提交
d3b8d88598

+ 5 - 0
Ladybird/AudioCodecPluginLadybird.cpp

@@ -86,4 +86,9 @@ void AudioCodecPluginLadybird::playback_ended()
     m_audio_output->suspend();
 }
 
+void AudioCodecPluginLadybird::set_volume(double volume)
+{
+    m_audio_output->setVolume(volume);
+}
+
 }

+ 2 - 0
Ladybird/AudioCodecPluginLadybird.h

@@ -31,6 +31,8 @@ public:
     virtual void pause_playback() override;
     virtual void playback_ended() override;
 
+    virtual void set_volume(double) override;
+
 private:
     AudioCodecPluginLadybird(NonnullOwnPtr<QMediaDevices>, NonnullOwnPtr<QAudioSink>);
 

+ 2 - 0
Userland/Libraries/LibWeb/Platform/AudioCodecPlugin.h

@@ -30,6 +30,8 @@ public:
     virtual void pause_playback() = 0;
     virtual void playback_ended() = 0;
 
+    virtual void set_volume(double) = 0;
+
 protected:
     AudioCodecPlugin();
 };

+ 5 - 0
Userland/Services/WebContent/AudioCodecPluginSerenity.cpp

@@ -56,4 +56,9 @@ void AudioCodecPluginSerenity::playback_ended()
     m_connection->async_clear_buffer();
 }
 
+void AudioCodecPluginSerenity::set_volume(double volume)
+{
+    m_connection->async_set_self_volume(volume);
+}
+
 }

+ 2 - 0
Userland/Services/WebContent/AudioCodecPluginSerenity.h

@@ -28,6 +28,8 @@ public:
     virtual void pause_playback() override;
     virtual void playback_ended() override;
 
+    virtual void set_volume(double) override;
+
 private:
     explicit AudioCodecPluginSerenity(NonnullRefPtr<Audio::ConnectionToServer>);