1 // Copyright 2016 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_BROWSER_MEDIA_SESSION_PEPPER_PLAYER_DELEGATE_H_ 6 #define CONTENT_BROWSER_MEDIA_SESSION_PEPPER_PLAYER_DELEGATE_H_ 7 8 #include <stdint.h> 9 10 #include "base/macros.h" 11 #include "content/browser/media/session/media_session_player_observer.h" 12 13 namespace content { 14 15 class RenderFrameHost; 16 17 class PepperPlayerDelegate : public MediaSessionPlayerObserver { 18 public: 19 // The Id can only be 0 for PepperPlayerDelegate. Declare the constant here so 20 // it can be used elsewhere. 21 static const int kPlayerId; 22 23 PepperPlayerDelegate(RenderFrameHost* render_frame_host, int32_t pp_instance); 24 ~PepperPlayerDelegate() override; 25 26 // MediaSessionPlayerObserver implementation. 27 void OnSuspend(int player_id) override; 28 void OnResume(int player_id) override; 29 void OnSeekForward(int player_id, base::TimeDelta seek_time) override; 30 void OnSeekBackward(int player_id, base::TimeDelta seek_time) override; 31 void OnSetVolumeMultiplier(int player_id, double volume_multiplier) override; 32 void OnEnterPictureInPicture(int player_id) override; 33 void OnExitPictureInPicture(int player_id) override; 34 void OnSetAudioSinkId(int player_id, 35 const std::string& raw_device_id) override; 36 base::Optional<media_session::MediaPosition> GetPosition( 37 int player_id) const override; 38 bool IsPictureInPictureAvailable(int player_id) const override; 39 RenderFrameHost* render_frame_host() const override; 40 bool HasVideo(int player_id) const override; 41 std::string GetAudioOutputSinkId(int player_id) const override; 42 bool SupportsAudioOutputDeviceSwitching(int player_id) const override; 43 44 private: 45 void SetVolume(int player_id, double volume); 46 47 RenderFrameHost* render_frame_host_; 48 int32_t pp_instance_; 49 50 DISALLOW_COPY_AND_ASSIGN(PepperPlayerDelegate); 51 }; 52 53 } // namespace content 54 55 #endif // CONTENT_BROWSER_MEDIA_SESSION_PEPPER_PLAYER_DELEGATE_H_ 56