WebVideoFullscreenManagerProxy.h [plain text]
#ifndef WebVideoFullscreenManagerProxy_h
#define WebVideoFullscreenManagerProxy_h
#if PLATFORM(IOS)
#include "MessageReceiver.h"
#include <WebCore/GraphicsLayer.h>
#include <WebCore/WebVideoFullscreenInterfaceAVKit.h>
#include <WebCore/WebVideoFullscreenModel.h>
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
OBJC_CLASS UIView;
namespace WebKit {
class WebPageProxy;
class WebVideoFullscreenManagerProxy : public WebCore::WebVideoFullscreenInterfaceAVKit, public WebCore::WebVideoFullscreenChangeObserver, public WebCore::WebVideoFullscreenModel, private IPC::MessageReceiver {
public:
static PassRefPtr<WebVideoFullscreenManagerProxy> create(WebPageProxy&);
virtual ~WebVideoFullscreenManagerProxy();
virtual void invalidate() override;
virtual void requestExitFullscreen() override;
private:
explicit WebVideoFullscreenManagerProxy(WebPageProxy&);
virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&) override;
void setupFullscreenWithID(uint32_t, WebCore::IntRect initialRect, float hostingDeviceScaleFactor);
void setSeekableRangesVector(Vector<std::pair<double, double>>&);
void setExternalPlaybackProperties(bool enabled, uint32_t targetType, String localizedDeviceName);
virtual void didSetupFullscreen() override;
virtual void didEnterFullscreen() override;
virtual void didExitFullscreen() override;
virtual void didCleanupFullscreen() override;
virtual void play() override;
virtual void pause() override;
virtual void togglePlayState() override;
virtual void beginScrubbing() override;
virtual void endScrubbing() override;
virtual void seekToTime(double) override;
virtual void fastSeek(double time) override;
virtual void beginScanningForward() override;
virtual void beginScanningBackward() override;
virtual void endScanning() override;
virtual void setVideoLayerFrame(WebCore::FloatRect) override;
virtual void setVideoLayerGravity(WebCore::WebVideoFullscreenModel::VideoGravity) override;
virtual void selectAudioMediaOption(uint64_t) override;
virtual void selectLegibleMediaOption(uint64_t) override;
WebPageProxy* m_page;
RetainPtr<PlatformLayer> m_layerHost;
};
}
#endif // PLATFORM(IOS)
#endif // WebVideoFullscreenManagerProxy_h