WebPlaybackSessionInterfaceMac.h [plain text]
#pragma once
#if PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE)
#include "HTMLMediaElementEnums.h"
#include "WebPlaybackSessionInterface.h"
#include "WebPlaybackSessionModel.h"
#include <wtf/RefCounted.h>
#include <wtf/RetainPtr.h>
#include <wtf/text/WTFString.h>
OBJC_CLASS WebPlaybackControlsManager;
namespace WebCore {
class IntRect;
class WebPlaybackSessionModel;
class WEBCORE_EXPORT WebPlaybackSessionInterfaceMac final
: public WebPlaybackSessionInterface
, public WebPlaybackSessionModelClient
, public RefCounted<WebPlaybackSessionInterfaceMac> {
public:
static Ref<WebPlaybackSessionInterfaceMac> create(WebPlaybackSessionModel&);
virtual ~WebPlaybackSessionInterfaceMac();
WebPlaybackSessionModel* webPlaybackSessionModel() const { return m_playbackSessionModel; }
WEBCORE_EXPORT void resetMediaState() final { }
WEBCORE_EXPORT void durationChanged(double) final;
WEBCORE_EXPORT void currentTimeChanged(double , double ) final;
WEBCORE_EXPORT void rateChanged(bool , float ) final;
WEBCORE_EXPORT void seekableRangesChanged(const TimeRanges&, double , double ) final;
WEBCORE_EXPORT void audioMediaSelectionOptionsChanged(const Vector<MediaSelectionOption>& , uint64_t ) final;
WEBCORE_EXPORT void legibleMediaSelectionOptionsChanged(const Vector<MediaSelectionOption>& , uint64_t ) final;
WEBCORE_EXPORT void audioMediaSelectionIndexChanged(uint64_t) final;
WEBCORE_EXPORT void legibleMediaSelectionIndexChanged(uint64_t) final;
WEBCORE_EXPORT void externalPlaybackChanged(bool , WebPlaybackSessionModel::ExternalPlaybackTargetType, const String& ) final;
WEBCORE_EXPORT void invalidate();
WEBCORE_EXPORT void ensureControlsManager();
#if ENABLE(WEB_PLAYBACK_CONTROLS_MANAGER)
WEBCORE_EXPORT void setPlayBackControlsManager(WebPlaybackControlsManager *);
WEBCORE_EXPORT WebPlaybackControlsManager *playBackControlsManager();
#endif
WEBCORE_EXPORT void beginScrubbing();
WEBCORE_EXPORT void endScrubbing();
private:
WebPlaybackSessionInterfaceMac(WebPlaybackSessionModel&);
WebPlaybackSessionModel* m_playbackSessionModel { nullptr };
#if ENABLE(WEB_PLAYBACK_CONTROLS_MANAGER)
WebPlaybackControlsManager *m_playbackControlsManager { nullptr };
void updatePlaybackControlsManagerTiming(double currentTime, double anchorTime, double playbackRate, bool isPlaying);
#endif
};
}
#endif // PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE)