PlaybackSessionInterfaceMac.h [plain text]
#pragma once
#if PLATFORM(MAC) && ENABLE(VIDEO_PRESENTATION_MODE)
#include "HTMLMediaElementEnums.h"
#include "PlaybackSessionInterface.h"
#include "PlaybackSessionModel.h"
#include <wtf/RefCounted.h>
#include <wtf/RetainPtr.h>
#include <wtf/text/WTFString.h>
OBJC_CLASS WebPlaybackControlsManager;
namespace WebCore {
class IntRect;
class PlaybackSessionModel;
class WEBCORE_EXPORT PlaybackSessionInterfaceMac final
: public PlaybackSessionInterface
, public PlaybackSessionModelClient
, public RefCounted<PlaybackSessionInterfaceMac> {
public:
static Ref<PlaybackSessionInterfaceMac> create(PlaybackSessionModel&);
virtual ~PlaybackSessionInterfaceMac();
PlaybackSessionModel* playbackSessionModel() 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 , PlaybackSessionModel::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:
PlaybackSessionInterfaceMac(PlaybackSessionModel&);
PlaybackSessionModel* 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)