WebPlaybackSessionInterfaceMac.h [plain text]
#ifndef WebPlaybackSessionInterfaceMac_h
#define WebPlaybackSessionInterfaceMac_h
#if PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE)
#include "HTMLMediaElementEnums.h"
#include "WebPlaybackSessionInterface.h"
#include <wtf/RefCounted.h>
#include <wtf/RetainPtr.h>
#include <wtf/text/WTFString.h>
OBJC_CLASS WebPlaybackControlsManager;
namespace WebCore {
class IntRect;
class WebPlaybackSessionModel;
class WebPlaybackSessionInterfaceMacClient {
public:
virtual ~WebPlaybackSessionInterfaceMacClient() { }
virtual void rateChanged(bool isPlaying, float playbackRate) = 0;
};
class WEBCORE_EXPORT WebPlaybackSessionInterfaceMac final
: public WebPlaybackSessionInterface
, public RefCounted<WebPlaybackSessionInterfaceMac> {
public:
static Ref<WebPlaybackSessionInterfaceMac> create()
{
return adoptRef(*new WebPlaybackSessionInterfaceMac());
}
virtual ~WebPlaybackSessionInterfaceMac();
WebPlaybackSessionModel* webPlaybackSessionModel() const { return m_playbackSessionModel; }
WEBCORE_EXPORT void setWebPlaybackSessionModel(WebPlaybackSessionModel*);
WebPlaybackSessionInterfaceMacClient* client() const { return m_client; }
void setClient(WebPlaybackSessionInterfaceMacClient*);
WEBCORE_EXPORT void resetMediaState() final { }
WEBCORE_EXPORT void setDuration(double) final;
WEBCORE_EXPORT void setCurrentTime(double , double ) final;
WEBCORE_EXPORT void setBufferedTime(double) final { }
WEBCORE_EXPORT void setRate(bool , float ) final;
WEBCORE_EXPORT void setSeekableRanges(const TimeRanges&) final;
WEBCORE_EXPORT void setCanPlayFastReverse(bool) final { }
WEBCORE_EXPORT void setAudioMediaSelectionOptions(const Vector<String>& , uint64_t ) final;
WEBCORE_EXPORT void setLegibleMediaSelectionOptions(const Vector<String>& , uint64_t ) final;
WEBCORE_EXPORT void setExternalPlayback(bool, ExternalPlaybackTargetType, String) final { }
WEBCORE_EXPORT void setWirelessVideoPlaybackDisabled(bool) final { }
WEBCORE_EXPORT void invalidate();
WEBCORE_EXPORT void ensureControlsManager();
WEBCORE_EXPORT void setPlayBackControlsManager(WebPlaybackControlsManager *);
WEBCORE_EXPORT WebPlaybackControlsManager *playBackControlsManager();
private:
WebPlaybackSessionModel* m_playbackSessionModel { nullptr };
WebPlaybackControlsManager *m_playbackControlsManager;
WebPlaybackSessionInterfaceMacClient* m_client { nullptr };
};
}
#endif // PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE)
#endif