MediaSessionManagerMac.h [plain text]
#pragma once
#if PLATFORM(MAC)
#include "GenericTaskQueue.h"
#include "PlatformMediaSessionManager.h"
namespace WebCore {
class MediaSessionManagerMac : public PlatformMediaSessionManager {
public:
virtual ~MediaSessionManagerMac();
bool hasActiveNowPlayingSession() const final { return m_nowPlayingActive; }
String lastUpdatedNowPlayingTitle() const final { return m_lastUpdatedNowPlayingTitle; }
double lastUpdatedNowPlayingDuration() const final { return m_lastUpdatedNowPlayingDuration; }
double lastUpdatedNowPlayingElapsedTime() const final { return m_lastUpdatedNowPlayingElapsedTime; }
uint64_t lastUpdatedNowPlayingInfoUniqueIdentifier() const final { return m_lastUpdatedNowPlayingInfoUniqueIdentifier; }
bool registeredAsNowPlayingApplication() const final { return m_registeredAsNowPlayingApplication; }
private:
friend class PlatformMediaSessionManager;
MediaSessionManagerMac();
void scheduleUpdateNowPlayingInfo() override;
void removeSession(PlatformMediaSession&) override;
bool sessionWillBeginPlayback(PlatformMediaSession&) override;
void sessionWillEndPlayback(PlatformMediaSession&) override;
void sessionDidEndRemoteScrubbing(const PlatformMediaSession&) override;
void clientCharacteristicsChanged(PlatformMediaSession&) override;
void updateNowPlayingInfo();
PlatformMediaSession* nowPlayingEligibleSession();
bool m_nowPlayingActive { false };
bool m_isInBackground { false };
bool m_registeredAsNowPlayingApplication { false };
String m_lastUpdatedNowPlayingTitle;
double m_lastUpdatedNowPlayingDuration { NAN };
double m_lastUpdatedNowPlayingElapsedTime { NAN };
uint64_t m_lastUpdatedNowPlayingInfoUniqueIdentifier { 0 };
GenericTaskQueue<Timer> m_nowPlayingUpdateTaskQueue;
};
}
#endif // PLATFORM(MAC)