WebVideoFullscreenModelMediaElement.h [plain text]
#ifndef WebVideoFullscreenModelMediaElement_h
#define WebVideoFullscreenModelMediaElement_h
#if PLATFORM(IOS)
#include <WebCore/EventListener.h>
#include <WebCore/FloatRect.h>
#include <WebCore/PlatformLayer.h>
#include <WebCore/WebVideoFullscreenModel.h>
#include <wtf/RefPtr.h>
#include <wtf/RetainPtr.h>
#include <wtf/Vector.h>
namespace WebCore {
class HTMLMediaElement;
class TextTrack;
class WebVideoFullscreenInterface;
class WebVideoFullscreenModelMediaElement : public WebVideoFullscreenModel, public EventListener {
public:
WebVideoFullscreenModelMediaElement();
virtual ~WebVideoFullscreenModelMediaElement();
void setWebVideoFullscreenInterface(WebVideoFullscreenInterface* interface) {m_videoFullscreenInterface = interface;}
void setMediaElement(HTMLMediaElement*);
void setVideoFullscreenLayer(PlatformLayer*);
virtual void handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) override;
void updateForEventName(const WTF::AtomicString&);
bool operator==(const EventListener& rhs) override
{return static_cast<WebCore::EventListener*>(this) == &rhs;}
virtual void play() override;
virtual void pause() override;
virtual void togglePlayState() override;
virtual void beginScrubbing() override;
virtual void endScrubbing() override;
virtual void seekToTime(double time) override;
virtual void fastSeek(double time) override;
virtual void beginScanningForward() override;
virtual void beginScanningBackward() override;
virtual void endScanning() override;
virtual void requestExitFullscreen() override;
virtual void setVideoLayerFrame(FloatRect) override;
virtual void setVideoLayerGravity(WebVideoFullscreenModel::VideoGravity) override;
virtual void selectAudioMediaOption(uint64_t index) override;
virtual void selectLegibleMediaOption(uint64_t index) override;
private:
static const Vector<WTF::AtomicString>& observedEventNames();
const WTF::AtomicString& eventNameAll();
RefPtr<HTMLMediaElement> m_mediaElement;
RetainPtr<PlatformLayer> m_videoFullscreenLayer;
bool m_isListening;
WebVideoFullscreenInterface* m_videoFullscreenInterface;
FloatRect m_videoFrame;
Vector<RefPtr<TextTrack>> m_legibleTracksForMenu;
void updateLegibleOptions();
};
}
#endif
#endif