Changeset 185006 in webkit
- Timestamp:
- May 29, 2015 2:53:30 PM (9 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 24 edited
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/CMakeLists.txt
r184966 r185006 2102 2102 platform/audio/HRTFKernel.cpp 2103 2103 platform/audio/HRTFPanner.cpp 2104 platform/audio/MediaSession.cpp2105 2104 platform/audio/MediaSessionManager.cpp 2106 2105 platform/audio/MultiChannelResampler.cpp 2107 2106 platform/audio/Panner.cpp 2107 platform/audio/PlatformMediaSession.cpp 2108 2108 platform/audio/Reverb.cpp 2109 2109 platform/audio/ReverbAccumulationBuffer.cpp -
trunk/Source/WebCore/ChangeLog
r185004 r185006 1 2015-05-29 Matt Rajca <mrajca@apple.com> 2 3 Rename MediaSession and MediaSessionClient to PlatformMediaSession and PlatformMediaSessionClient so we can use MediaSession for the formal implementation of the Media Session spec. 4 https://bugs.webkit.org/show_bug.cgi?id=145447 5 6 Reviewed by Eric Carlson. 7 8 * Modules/webaudio/AudioContext.cpp: 9 (WebCore::AudioContext::AudioContext): 10 (WebCore::AudioContext::suspendPlayback): 11 * Modules/webaudio/AudioContext.h: 12 * WebCore.vcxproj/WebCore.vcxproj: 13 * WebCore.vcxproj/WebCore.vcxproj.filters: 14 * WebCore.xcodeproj/project.pbxproj: 15 * html/HTMLAudioElement.h: 16 * html/HTMLMediaElement.cpp: 17 (WebCore::HTMLMediaElement::pausedForUserInteraction): 18 (WebCore::HTMLMediaElement::mediaType): 19 (WebCore::HTMLMediaElement::presentationType): 20 (WebCore::HTMLMediaElement::displayType): 21 (WebCore::HTMLMediaElement::didReceiveRemoteControlCommand): 22 * html/HTMLMediaElement.h: 23 * html/HTMLMediaSession.cpp: 24 (WebCore::HTMLMediaSession::HTMLMediaSession): 25 (WebCore::HTMLMediaSession::requiresFullscreenForVideoPlayback): 26 * html/HTMLMediaSession.h: 27 * html/HTMLVideoElement.h: 28 * platform/RemoteCommandListener.h: 29 * platform/audio/MediaSessionManager.cpp: 30 (WebCore::MediaSessionManager::resetRestrictions): 31 (WebCore::MediaSessionManager::has): 32 (WebCore::MediaSessionManager::activeAudioSessionRequired): 33 (WebCore::MediaSessionManager::count): 34 (WebCore::MediaSessionManager::beginInterruption): 35 (WebCore::MediaSessionManager::endInterruption): 36 (WebCore::MediaSessionManager::addSession): 37 (WebCore::MediaSessionManager::removeSession): 38 (WebCore::MediaSessionManager::addRestriction): 39 (WebCore::MediaSessionManager::removeRestriction): 40 (WebCore::MediaSessionManager::restrictions): 41 (WebCore::MediaSessionManager::sessionWillBeginPlayback): 42 (WebCore::MediaSessionManager::sessionWillEndPlayback): 43 (WebCore::MediaSessionManager::setCurrentSession): 44 (WebCore::MediaSessionManager::currentSession): 45 (WebCore::MediaSessionManager::sessionRestrictsInlineVideoPlayback): 46 (WebCore::MediaSessionManager::sessionCanLoadMedia): 47 (WebCore::MediaSessionManager::applicationWillEnterBackground): 48 (WebCore::MediaSessionManager::applicationWillEnterForeground): 49 (WebCore::MediaSessionManager::didReceiveRemoteControlCommand): 50 (WebCore::MediaSessionManager::systemWillSleep): 51 (WebCore::MediaSessionManager::systemDidWake): 52 * platform/audio/MediaSessionManager.h: 53 (WebCore::MediaSessionManager::sessions): 54 * platform/audio/PlatformMediaSession.cpp: Renamed from Source/WebCore/platform/audio/MediaSession.cpp. 55 (WebCore::stateName): 56 (WebCore::PlatformMediaSession::create): 57 (WebCore::PlatformMediaSession::PlatformMediaSession): 58 (WebCore::PlatformMediaSession::~PlatformMediaSession): 59 (WebCore::PlatformMediaSession::setState): 60 (WebCore::PlatformMediaSession::beginInterruption): 61 (WebCore::PlatformMediaSession::endInterruption): 62 (WebCore::PlatformMediaSession::clientWillBeginPlayback): 63 (WebCore::PlatformMediaSession::clientWillPausePlayback): 64 (WebCore::PlatformMediaSession::pauseSession): 65 (WebCore::PlatformMediaSession::mediaType): 66 (WebCore::PlatformMediaSession::presentationType): 67 (WebCore::PlatformMediaSession::title): 68 (WebCore::PlatformMediaSession::duration): 69 (WebCore::PlatformMediaSession::currentTime): 70 (WebCore::PlatformMediaSession::canReceiveRemoteControlCommands): 71 (WebCore::PlatformMediaSession::didReceiveRemoteControlCommand): 72 (WebCore::PlatformMediaSession::visibilityChanged): 73 (WebCore::PlatformMediaSession::clientDataBufferingTimerFired): 74 (WebCore::PlatformMediaSession::updateClientDataBuffering): 75 (WebCore::PlatformMediaSession::isHidden): 76 (WebCore::PlatformMediaSession::displayType): 77 (WebCore::PlatformMediaSessionClient::mediaSessionTitle): 78 (WebCore::PlatformMediaSessionClient::mediaSessionDuration): 79 (WebCore::PlatformMediaSessionClient::mediaSessionCurrentTime): 80 * platform/audio/PlatformMediaSession.h: Renamed from Source/WebCore/platform/audio/MediaSession.h. 81 (WebCore::PlatformMediaSession::state): 82 (WebCore::PlatformMediaSession::canPlayToWirelessPlaybackTarget): 83 (WebCore::PlatformMediaSession::isPlayingToWirelessPlaybackTarget): 84 (WebCore::PlatformMediaSession::requiresPlaybackTargetRouteMonitoring): 85 (WebCore::PlatformMediaSession::client): 86 (WebCore::PlatformMediaSessionClient::PlatformMediaSessionClient): 87 (WebCore::PlatformMediaSessionClient::displayType): 88 (WebCore::PlatformMediaSessionClient::setShouldBufferData): 89 (WebCore::PlatformMediaSessionClient::elementIsHidden): 90 (WebCore::PlatformMediaSessionClient::wirelessRoutesAvailableDidChange): 91 (WebCore::PlatformMediaSessionClient::setWirelessPlaybackTarget): 92 (WebCore::PlatformMediaSessionClient::canPlayToWirelessPlaybackTarget): 93 (WebCore::PlatformMediaSessionClient::isPlayingToWirelessPlaybackTarget): 94 (WebCore::PlatformMediaSessionClient::setShouldPlayToPlaybackTarget): 95 (WebCore::PlatformMediaSessionClient::~PlatformMediaSessionClient): 96 * platform/audio/ios/MediaSessionManagerIOS.h: 97 * platform/audio/ios/MediaSessionManagerIOS.mm: 98 (WebCore::MediaSessionManageriOS::resetRestrictions): 99 (WebCore::MediaSessionManageriOS::sessionWillBeginPlayback): 100 (WebCore::MediaSessionManageriOS::sessionWillEndPlayback): 101 (WebCore::MediaSessionManageriOS::updateNowPlayingInfo): 102 (WebCore::MediaSessionManageriOS::sessionCanLoadMedia): 103 (-[WebMediaSessionHelper interruption:]): 104 * platform/audio/mac/MediaSessionManagerMac.cpp: 105 (MediaSessionManager::updateSessionState): 106 * platform/graphics/MediaPlayer.cpp: 107 (WebCore::MediaPlayer::handlePlaybackCommand): 108 * platform/graphics/MediaPlayer.h: 109 (WebCore::MediaPlayerClient::mediaPlayerHandlePlaybackCommand): 110 * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp: 111 (WebCore::MediaPlayerPrivateAVFoundation::rateChanged): 112 * platform/ios/RemoteCommandListenerIOS.mm: 113 (WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS): 114 * testing/Internals.cpp: 115 (WebCore::Internals::beginMediaSessionInterruption): 116 (WebCore::Internals::endMediaSessionInterruption): 117 (WebCore::Internals::setMediaSessionRestrictions): 118 (WebCore::Internals::postRemoteControlCommand): 119 1 120 2015-05-29 Alex Christensen <achristensen@webkit.org> 2 121 -
trunk/Source/WebCore/Modules/webaudio/AudioContext.cpp
r184802 r185006 130 130 AudioContext::AudioContext(Document& document) 131 131 : ActiveDOMObject(&document) 132 , m_mediaSession( MediaSession::create(*this))132 , m_mediaSession(PlatformMediaSession::create(*this)) 133 133 , m_eventQueue(std::make_unique<GenericEventQueue>(*this)) 134 134 , m_graphOwnerThread(UndefinedThreadIdentifier) … … 146 146 : ActiveDOMObject(&document) 147 147 , m_isOfflineContext(true) 148 , m_mediaSession( MediaSession::create(*this))148 , m_mediaSession(PlatformMediaSession::create(*this)) 149 149 , m_eventQueue(std::make_unique<GenericEventQueue>(*this)) 150 150 , m_graphOwnerThread(UndefinedThreadIdentifier) … … 1201 1201 1202 1202 if (m_state == State::Suspended) { 1203 if (m_mediaSession->state() == MediaSession::Interrupted)1203 if (m_mediaSession->state() == PlatformMediaSession::Interrupted) 1204 1204 setState(State::Interrupted); 1205 1205 return; … … 1210 1210 RefPtr<AudioContext> strongThis(this); 1211 1211 m_destinationNode->suspend([strongThis] { 1212 bool interrupted = strongThis->m_mediaSession->state() == MediaSession::Interrupted;1212 bool interrupted = strongThis->m_mediaSession->state() == PlatformMediaSession::Interrupted; 1213 1213 strongThis->setState(interrupted ? State::Interrupted : State::Suspended); 1214 1214 }); -
trunk/Source/WebCore/Modules/webaudio/AudioContext.h
r184651 r185006 34 34 #include "MediaCanStartListener.h" 35 35 #include "MediaProducer.h" 36 #include " MediaSession.h"36 #include "PlatformMediaSession.h" 37 37 #include <atomic> 38 38 #include <wtf/HashSet.h> … … 77 77 // For thread safety between the audio thread and the main thread, it has a rendering graph locking mechanism. 78 78 79 class AudioContext : public ActiveDOMObject, public ThreadSafeRefCounted<AudioContext>, public EventTargetWithInlineData, public MediaCanStartListener, public MediaProducer, private MediaSessionClient {79 class AudioContext : public ActiveDOMObject, public ThreadSafeRefCounted<AudioContext>, public EventTargetWithInlineData, public MediaCanStartListener, public MediaProducer, private PlatformMediaSessionClient { 80 80 public: 81 81 // Create an AudioContext for rendering to the audio hardware. … … 309 309 void derefUnfinishedSourceNodes(); 310 310 311 // MediaSessionClient312 virtual MediaSession::MediaType mediaType() const override { returnMediaSession::WebAudio; }313 virtual MediaSession::MediaType presentationType() const override { returnMediaSession::WebAudio; }311 // PlatformMediaSessionClient 312 virtual PlatformMediaSession::MediaType mediaType() const override { return PlatformMediaSession::WebAudio; } 313 virtual PlatformMediaSession::MediaType presentationType() const override { return PlatformMediaSession::WebAudio; } 314 314 virtual void mayResumePlayback(bool shouldResume) override; 315 315 virtual void suspendPlayback() override; 316 316 virtual bool canReceiveRemoteControlCommands() const override { return false; } 317 virtual void didReceiveRemoteControlCommand( MediaSession::RemoteControlCommandType) override { }317 virtual void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType) override { } 318 318 virtual bool overrideBackgroundPlaybackRestriction() const override { return false; } 319 319 … … 364 364 Vector<Vector<std::function<void()>>> m_stateReactions; 365 365 366 std::unique_ptr< MediaSession> m_mediaSession;366 std::unique_ptr<PlatformMediaSession> m_mediaSession; 367 367 std::unique_ptr<GenericEventQueue> m_eventQueue; 368 368 -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj
r184966 r185006 7396 7396 <ClCompile Include="..\platform\graphics\ISOVTTCue.cpp" /> 7397 7397 <ClCompile Include="..\platform\audio\AudioSession.cpp" /> 7398 <ClCompile Include="..\platform\audio\ MediaSession.cpp" />7398 <ClCompile Include="..\platform\audio\PlatformMediaSession.cpp" /> 7399 7399 <ClCompile Include="..\platform\audio\MediaSessionManager.cpp" /> 7400 7400 <ClCompile Include="..\platform\graphics\ANGLEWebKitBridge.cpp" /> … … 19765 19765 <ClInclude Include="..\platform\GenericTaskQueue.h" /> 19766 19766 <ClInclude Include="..\platform\audio\AudioSession.h" /> 19767 <ClInclude Include="..\platform\audio\ MediaSession.h" />19767 <ClInclude Include="..\platform\audio\PlatformMediaSession.h" /> 19768 19768 <ClInclude Include="..\platform\audio\MediaSessionManager.h" /> 19769 19769 <ClInclude Include="..\platform\graphics\ANGLEWebKitBridge.h" /> -
trunk/Source/WebCore/WebCore.vcxproj/WebCore.vcxproj.filters
r184966 r185006 7052 7052 <Filter>rendering\line</Filter> 7053 7053 </ClCompile> 7054 <ClCompile Include="..\platform\audio\ MediaSession.cpp">7054 <ClCompile Include="..\platform\audio\PlatformMediaSession.cpp"> 7055 7055 <Filter>platform\audio</Filter> 7056 7056 </ClCompile> … … 14499 14499 <Filter>platform\audio</Filter> 14500 14500 </ClInclude> 14501 <ClInclude Include="..\platform\audio\ MediaSession.h">14501 <ClInclude Include="..\platform\audio\PlatformMediaSession.h"> 14502 14502 <Filter>platform\audio</Filter> 14503 14503 </ClInclude> -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r184966 r185006 120 120 0709D7951AE55A29004E42F8 /* WebMediaSessionManagerClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 0709D7941AE55A29004E42F8 /* WebMediaSessionManagerClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; 121 121 0709FC4E1025DEE30059CDBA /* AccessibilitySlider.h in Headers */ = {isa = PBXBuildFile; fileRef = 0709FC4D1025DEE30059CDBA /* AccessibilitySlider.h */; }; 122 070E09191875EEFC003A1D3C /* MediaSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 070E09181875ED93003A1D3C /*MediaSession.h */; settings = {ATTRIBUTES = (Private, ); }; };123 070E091B1875EF71003A1D3C /* MediaSession.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 070E091A1875EF71003A1D3C /*MediaSession.cpp */; };122 070E09191875EEFC003A1D3C /* PlatformMediaSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 070E09181875ED93003A1D3C /* PlatformMediaSession.h */; settings = {ATTRIBUTES = (Private, ); }; }; 123 070E091B1875EF71003A1D3C /* PlatformMediaSession.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 070E091A1875EF71003A1D3C /* PlatformMediaSession.cpp */; }; 124 124 070F549817F12F6B00169E04 /* MediaStreamConstraintsValidationClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 070F549717F12F6B00169E04 /* MediaStreamConstraintsValidationClient.h */; }; 125 125 070F549E17F2402700169E04 /* AudioDestinationConsumer.h in Headers */ = {isa = PBXBuildFile; fileRef = 070F549D17F2402700169E04 /* AudioDestinationConsumer.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 7135 7135 0709FC4D1025DEE30059CDBA /* AccessibilitySlider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccessibilitySlider.h; sourceTree = "<group>"; }; 7136 7136 070DD8F50F01868000727DEB /* mediaControls.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = mediaControls.css; sourceTree = "<group>"; }; 7137 070E09181875ED93003A1D3C /* MediaSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path =MediaSession.h; sourceTree = "<group>"; };7138 070E091A1875EF71003A1D3C /* MediaSession.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path =MediaSession.cpp; sourceTree = "<group>"; };7137 070E09181875ED93003A1D3C /* PlatformMediaSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformMediaSession.h; sourceTree = "<group>"; }; 7138 070E091A1875EF71003A1D3C /* PlatformMediaSession.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformMediaSession.cpp; sourceTree = "<group>"; }; 7139 7139 070F549717F12F6B00169E04 /* MediaStreamConstraintsValidationClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MediaStreamConstraintsValidationClient.h; sourceTree = "<group>"; }; 7140 7140 070F549D17F2402700169E04 /* AudioDestinationConsumer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioDestinationConsumer.h; sourceTree = "<group>"; }; … … 23549 23549 FD31606A12B026F700C1A359 /* HRTFPanner.cpp */, 23550 23550 FD31606B12B026F700C1A359 /* HRTFPanner.h */, 23551 070E091A1875EF71003A1D3C /* MediaSession.cpp */,23552 070E09181875ED93003A1D3C /* MediaSession.h */,23553 23551 CDAE8C071746B95700532D78 /* MediaSessionManager.cpp */, 23554 23552 CDAE8C081746B95700532D78 /* MediaSessionManager.h */, … … 23557 23555 FD31606C12B026F700C1A359 /* Panner.cpp */, 23558 23556 FD31606D12B026F700C1A359 /* Panner.h */, 23557 070E091A1875EF71003A1D3C /* PlatformMediaSession.cpp */, 23558 070E09181875ED93003A1D3C /* PlatformMediaSession.h */, 23559 23559 FD31606E12B026F700C1A359 /* Reverb.cpp */, 23560 23560 FD31606F12B026F700C1A359 /* Reverb.h */, … … 25800 25800 CEEFCD7A19DB31F7003876D7 /* MediaResourceLoader.h in Headers */, 25801 25801 CDBEAEAD19D92B6C00BEBA88 /* MediaSelectionGroupAVFObjC.h in Headers */, 25802 070E09191875EEFC003A1D3C /* MediaSession.h in Headers */,25803 25802 07F944161864D046005D31CB /* MediaSessionManager.h in Headers */, 25804 25803 07638A991884487200E15A1B /* MediaSessionManagerIOS.h in Headers */, … … 26024 26023 F544F78915CFB2A800AF33A8 /* PlatformLocale.h in Headers */, 26025 26024 CEEFCD7C19DB33DC003876D7 /* PlatformMediaResourceLoader.h in Headers */, 26025 070E09191875EEFC003A1D3C /* PlatformMediaSession.h in Headers */, 26026 26026 932871C00B20DEB70049035A /* PlatformMenuDescription.h in Headers */, 26027 26027 41BF70100FE86F61005E8DEC /* PlatformMessagePortChannel.h in Headers */, … … 29379 29379 CEEFCD7919DB31F7003876D7 /* MediaResourceLoader.cpp in Sources */, 29380 29380 CDBEAEAC19D92B6C00BEBA88 /* MediaSelectionGroupAVFObjC.mm in Sources */, 29381 070E091B1875EF71003A1D3C /* MediaSession.cpp in Sources */,29382 29381 CDAE8C091746B95700532D78 /* MediaSessionManager.cpp in Sources */, 29383 29382 07638A9A1884487200E15A1B /* MediaSessionManagerIOS.mm in Sources */, … … 29550 29549 BCAA486F14A052530088FAC4 /* PlatformEventFactoryMac.mm in Sources */, 29551 29550 F544F78815CFB2A800AF33A8 /* PlatformLocale.cpp in Sources */, 29551 070E091B1875EF71003A1D3C /* PlatformMediaSession.cpp in Sources */, 29552 29552 41BF700F0FE86F61005E8DEC /* PlatformMessagePortChannel.cpp in Sources */, 29553 29553 C5278B0C17F212EA003A2998 /* PlatformPasteboardIOS.mm in Sources */, -
trunk/Source/WebCore/html/HTMLAudioElement.h
r177996 r185006 43 43 HTMLAudioElement(const QualifiedName&, Document&, bool); 44 44 45 virtual MediaSession::MediaType presentationType() const override { returnMediaSession::Audio; }45 virtual PlatformMediaSession::MediaType presentationType() const override { return PlatformMediaSession::Audio; } 46 46 }; 47 47 -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r184966 r185006 4534 4534 bool HTMLMediaElement::pausedForUserInteraction() const 4535 4535 { 4536 if (m_mediaSession->state() == MediaSession::Interrupted)4536 if (m_mediaSession->state() == PlatformMediaSession::Interrupted) 4537 4537 return true; 4538 4538 … … 6168 6168 } 6169 6169 6170 MediaSession::MediaType HTMLMediaElement::mediaType() const6170 PlatformMediaSession::MediaType HTMLMediaElement::mediaType() const 6171 6171 { 6172 6172 if (m_player && m_readyState >= HAVE_METADATA) 6173 return hasVideo() ? MediaSession::Video :MediaSession::Audio;6173 return hasVideo() ? PlatformMediaSession::Video : PlatformMediaSession::Audio; 6174 6174 6175 6175 return presentationType(); 6176 6176 } 6177 6177 6178 MediaSession::MediaType HTMLMediaElement::presentationType() const6178 PlatformMediaSession::MediaType HTMLMediaElement::presentationType() const 6179 6179 { 6180 6180 if (hasTagName(HTMLNames::videoTag)) 6181 return MediaSession::Video;6182 6183 return MediaSession::Audio;6184 } 6185 6186 MediaSession::DisplayType HTMLMediaElement::displayType() const6181 return PlatformMediaSession::Video; 6182 6183 return PlatformMediaSession::Audio; 6184 } 6185 6186 PlatformMediaSession::DisplayType HTMLMediaElement::displayType() const 6187 6187 { 6188 6188 if (m_videoFullscreenMode == VideoFullscreenModeStandard) 6189 return MediaSession::Fullscreen;6189 return PlatformMediaSession::Fullscreen; 6190 6190 if (m_videoFullscreenMode & VideoFullscreenModeOptimized) 6191 return MediaSession::Optimized;6191 return PlatformMediaSession::Optimized; 6192 6192 if (m_videoFullscreenMode == VideoFullscreenModeNone) 6193 return MediaSession::Normal;6193 return PlatformMediaSession::Normal; 6194 6194 6195 6195 ASSERT_NOT_REACHED(); 6196 return MediaSession::Normal;6196 return PlatformMediaSession::Normal; 6197 6197 } 6198 6198 … … 6226 6226 } 6227 6227 6228 void HTMLMediaElement::didReceiveRemoteControlCommand( MediaSession::RemoteControlCommandType command)6228 void HTMLMediaElement::didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType command) 6229 6229 { 6230 6230 LOG(Media, "HTMLMediaElement::didReceiveRemoteControlCommand(%p) - %i", this, static_cast<int>(command)); 6231 6231 6232 6232 switch (command) { 6233 case MediaSession::PlayCommand:6233 case PlatformMediaSession::PlayCommand: 6234 6234 play(); 6235 6235 break; 6236 case MediaSession::PauseCommand:6236 case PlatformMediaSession::PauseCommand: 6237 6237 pause(); 6238 6238 break; 6239 case MediaSession::TogglePlayPauseCommand:6239 case PlatformMediaSession::TogglePlayPauseCommand: 6240 6240 canPlay() ? play() : pause(); 6241 6241 break; 6242 case MediaSession::BeginSeekingBackwardCommand:6242 case PlatformMediaSession::BeginSeekingBackwardCommand: 6243 6243 beginScanning(Backward); 6244 6244 break; 6245 case MediaSession::BeginSeekingForwardCommand:6245 case PlatformMediaSession::BeginSeekingForwardCommand: 6246 6246 beginScanning(Forward); 6247 6247 break; 6248 case MediaSession::EndSeekingBackwardCommand:6249 case MediaSession::EndSeekingForwardCommand:6248 case PlatformMediaSession::EndSeekingBackwardCommand: 6249 case PlatformMediaSession::EndSeekingForwardCommand: 6250 6250 endScanning(); 6251 6251 break; -
trunk/Source/WebCore/html/HTMLMediaElement.h
r184966 r185006 98 98 class HTMLMediaElement 99 99 : public HTMLElement 100 , private MediaPlayerClient, public MediaPlayerSupportsTypeClient, private MediaCanStartListener, public ActiveDOMObject, public MediaControllerInterface , public MediaSessionClient, private MediaProducer100 , private MediaPlayerClient, public MediaPlayerSupportsTypeClient, private MediaCanStartListener, public ActiveDOMObject, public MediaControllerInterface , public PlatformMediaSessionClient, private MediaProducer 101 101 #if ENABLE(VIDEO_TRACK) 102 102 , private AudioTrackClient … … 569 569 570 570 virtual bool mediaPlayerShouldWaitForResponseToAuthenticationChallenge(const AuthenticationChallenge&) override; 571 virtual void mediaPlayerHandlePlaybackCommand( MediaSession::RemoteControlCommandType command) override { didReceiveRemoteControlCommand(command); }571 virtual void mediaPlayerHandlePlaybackCommand(PlatformMediaSession::RemoteControlCommandType command) override { didReceiveRemoteControlCommand(command); } 572 572 virtual String mediaPlayerSourceApplicationIdentifier() const override; 573 573 virtual Vector<String> mediaPlayerPreferredAudioCharacteristics() const override; … … 691 691 #endif 692 692 693 // MediaSessionClient Overrides694 virtual MediaSession::MediaType mediaType() const override;695 virtual MediaSession::MediaType presentationType() const override;696 virtual MediaSession::DisplayType displayType() const override;693 // PlatformMediaSessionClient Overrides 694 virtual PlatformMediaSession::MediaType mediaType() const override; 695 virtual PlatformMediaSession::MediaType presentationType() const override; 696 virtual PlatformMediaSession::DisplayType displayType() const override; 697 697 virtual void suspendPlayback() override; 698 698 virtual void mayResumePlayback(bool shouldResume) override; … … 701 701 virtual double mediaSessionCurrentTime() const override { return currentTime(); } 702 702 virtual bool canReceiveRemoteControlCommands() const override { return true; } 703 virtual void didReceiveRemoteControlCommand( MediaSession::RemoteControlCommandType) override;703 virtual void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType) override; 704 704 virtual bool overrideBackgroundPlaybackRestriction() const override; 705 705 -
trunk/Source/WebCore/html/HTMLVideoElement.h
r183160 r185006 105 105 virtual void setDisplayMode(DisplayMode) override; 106 106 107 virtual MediaSession::MediaType presentationType() const override { returnMediaSession::Video; }107 virtual PlatformMediaSession::MediaType presentationType() const override { return PlatformMediaSession::Video; } 108 108 109 109 std::unique_ptr<HTMLImageLoader> m_imageLoader; -
trunk/Source/WebCore/html/MediaElementSession.cpp
r184966 r185006 79 79 #endif 80 80 81 MediaElementSession::MediaElementSession( MediaSessionClient& client)82 : MediaSession(client)81 MediaElementSession::MediaElementSession(PlatformMediaSessionClient& client) 82 : PlatformMediaSession(client) 83 83 , m_restrictions(NoRestrictions) 84 84 #if ENABLE(WIRELESS_PLAYBACK_TARGET) -
trunk/Source/WebCore/html/MediaElementSession.h
r184966 r185006 30 30 31 31 #include "MediaPlayer.h" 32 #include " MediaSession.h"32 #include "PlatformMediaSession.h" 33 33 #include "Timer.h" 34 34 … … 39 39 class SourceBuffer; 40 40 41 class MediaElementSession final : public MediaSession {41 class MediaElementSession final : public PlatformMediaSession { 42 42 WTF_MAKE_FAST_ALLOCATED; 43 43 public: 44 explicit MediaElementSession( MediaSessionClient&);44 explicit MediaElementSession(PlatformMediaSessionClient&); 45 45 virtual ~MediaElementSession() { } 46 46 -
trunk/Source/WebCore/platform/RemoteCommandListener.h
r182068 r185006 27 27 #define RemoteCommandListener_h 28 28 29 #include " MediaSession.h"29 #include "PlatformMediaSession.h" 30 30 31 31 namespace WebCore { … … 35 35 public: 36 36 virtual ~RemoteCommandListenerClient() { } 37 virtual void didReceiveRemoteControlCommand( MediaSession::RemoteControlCommandType) = 0;37 virtual void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType) = 0; 38 38 }; 39 39 -
trunk/Source/WebCore/platform/audio/MediaSessionManager.cpp
r183096 r185006 32 32 #include "Logging.h" 33 33 #include "NotImplemented.h" 34 #include " MediaSession.h"34 #include "PlatformMediaSession.h" 35 35 36 36 namespace WebCore { … … 52 52 void MediaSessionManager::resetRestrictions() 53 53 { 54 m_restrictions[ MediaSession::Video] = NoRestrictions;55 m_restrictions[ MediaSession::Audio] = NoRestrictions;56 m_restrictions[ MediaSession::WebAudio] = NoRestrictions;57 } 58 59 bool MediaSessionManager::has( MediaSession::MediaType type) const60 { 61 ASSERT(type >= MediaSession::None && type <=MediaSession::WebAudio);54 m_restrictions[PlatformMediaSession::Video] = NoRestrictions; 55 m_restrictions[PlatformMediaSession::Audio] = NoRestrictions; 56 m_restrictions[PlatformMediaSession::WebAudio] = NoRestrictions; 57 } 58 59 bool MediaSessionManager::has(PlatformMediaSession::MediaType type) const 60 { 61 ASSERT(type >= PlatformMediaSession::None && type <= PlatformMediaSession::WebAudio); 62 62 63 63 for (auto* session : m_sessions) { … … 72 72 { 73 73 for (auto* session : m_sessions) { 74 if (session->mediaType() != MediaSession::None && session->state() ==MediaSession::State::Playing)74 if (session->mediaType() != PlatformMediaSession::None && session->state() == PlatformMediaSession::State::Playing) 75 75 return true; 76 76 } … … 79 79 } 80 80 81 int MediaSessionManager::count( MediaSession::MediaType type) const82 { 83 ASSERT(type >= MediaSession::None && type <=MediaSession::WebAudio);81 int MediaSessionManager::count(PlatformMediaSession::MediaType type) const 82 { 83 ASSERT(type >= PlatformMediaSession::None && type <= PlatformMediaSession::WebAudio); 84 84 85 85 int count = 0; … … 92 92 } 93 93 94 void MediaSessionManager::beginInterruption( MediaSession::InterruptionType type)94 void MediaSessionManager::beginInterruption(PlatformMediaSession::InterruptionType type) 95 95 { 96 96 LOG(Media, "MediaSessionManager::beginInterruption"); 97 97 98 98 m_interrupted = true; 99 Vector< MediaSession*> sessions = m_sessions;99 Vector<PlatformMediaSession*> sessions = m_sessions; 100 100 for (auto* session : sessions) 101 101 session->beginInterruption(type); … … 103 103 } 104 104 105 void MediaSessionManager::endInterruption( MediaSession::EndInterruptionFlags flags)105 void MediaSessionManager::endInterruption(PlatformMediaSession::EndInterruptionFlags flags) 106 106 { 107 107 LOG(Media, "MediaSessionManager::endInterruption"); 108 108 109 109 m_interrupted = false; 110 Vector< MediaSession*> sessions = m_sessions;110 Vector<PlatformMediaSession*> sessions = m_sessions; 111 111 for (auto* session : sessions) 112 112 session->endInterruption(flags); 113 113 } 114 114 115 void MediaSessionManager::addSession( MediaSession& session)115 void MediaSessionManager::addSession(PlatformMediaSession& session) 116 116 { 117 117 LOG(Media, "MediaSessionManager::addSession - %p", &session); … … 119 119 m_sessions.append(&session); 120 120 if (m_interrupted) 121 session.setState( MediaSession::Interrupted);121 session.setState(PlatformMediaSession::Interrupted); 122 122 123 123 if (!m_remoteCommandListener) … … 130 130 } 131 131 132 void MediaSessionManager::removeSession( MediaSession& session)132 void MediaSessionManager::removeSession(PlatformMediaSession& session) 133 133 { 134 134 LOG(Media, "MediaSessionManager::removeSession - %p", &session); … … 149 149 } 150 150 151 void MediaSessionManager::addRestriction( MediaSession::MediaType type, SessionRestrictions restriction)152 { 153 ASSERT(type > MediaSession::None && type <=MediaSession::WebAudio);151 void MediaSessionManager::addRestriction(PlatformMediaSession::MediaType type, SessionRestrictions restriction) 152 { 153 ASSERT(type > PlatformMediaSession::None && type <= PlatformMediaSession::WebAudio); 154 154 m_restrictions[type] |= restriction; 155 155 } 156 156 157 void MediaSessionManager::removeRestriction( MediaSession::MediaType type, SessionRestrictions restriction)158 { 159 ASSERT(type > MediaSession::None && type <=MediaSession::WebAudio);157 void MediaSessionManager::removeRestriction(PlatformMediaSession::MediaType type, SessionRestrictions restriction) 158 { 159 ASSERT(type > PlatformMediaSession::None && type <= PlatformMediaSession::WebAudio); 160 160 m_restrictions[type] &= ~restriction; 161 161 } 162 162 163 MediaSessionManager::SessionRestrictions MediaSessionManager::restrictions( MediaSession::MediaType type)164 { 165 ASSERT(type > MediaSession::None && type <=MediaSession::WebAudio);163 MediaSessionManager::SessionRestrictions MediaSessionManager::restrictions(PlatformMediaSession::MediaType type) 164 { 165 ASSERT(type > PlatformMediaSession::None && type <= PlatformMediaSession::WebAudio); 166 166 return m_restrictions[type]; 167 167 } 168 168 169 bool MediaSessionManager::sessionWillBeginPlayback( MediaSession& session)169 bool MediaSessionManager::sessionWillBeginPlayback(PlatformMediaSession& session) 170 170 { 171 171 LOG(Media, "MediaSessionManager::sessionWillBeginPlayback - %p", &session); … … 173 173 setCurrentSession(session); 174 174 175 MediaSession::MediaType sessionType = session.mediaType();175 PlatformMediaSession::MediaType sessionType = session.mediaType(); 176 176 SessionRestrictions restrictions = m_restrictions[sessionType]; 177 if (session.state() == MediaSession::Interrupted && restrictions & InterruptedPlaybackNotPermitted)177 if (session.state() == PlatformMediaSession::Interrupted && restrictions & InterruptedPlaybackNotPermitted) 178 178 return false; 179 179 … … 184 184 185 185 if (m_interrupted) 186 endInterruption( MediaSession::NoFlags);187 188 Vector< MediaSession*> sessions = m_sessions;186 endInterruption(PlatformMediaSession::NoFlags); 187 188 Vector<PlatformMediaSession*> sessions = m_sessions; 189 189 for (auto* oneSession : sessions) { 190 190 if (oneSession == &session) … … 198 198 } 199 199 200 void MediaSessionManager::sessionWillEndPlayback( MediaSession& session)200 void MediaSessionManager::sessionWillEndPlayback(PlatformMediaSession& session) 201 201 { 202 202 LOG(Media, "MediaSessionManager::sessionWillEndPlayback - %p", &session); … … 208 208 size_t lastPlayingSessionIndex = notFound; 209 209 for (size_t i = 0; i < m_sessions.size(); ++i) { 210 MediaSession* oneSession = m_sessions[i];210 PlatformMediaSession* oneSession = m_sessions[i]; 211 211 212 212 if (oneSession == &session) { … … 214 214 continue; 215 215 } 216 if (oneSession->state() == MediaSession::Playing) {216 if (oneSession->state() == PlatformMediaSession::Playing) { 217 217 lastPlayingSessionIndex = i; 218 218 continue; 219 219 } 220 if (oneSession->state() != MediaSession::Playing)220 if (oneSession->state() != PlatformMediaSession::Playing) 221 221 break; 222 222 } … … 233 233 } 234 234 235 void MediaSessionManager::setCurrentSession( MediaSession& session)235 void MediaSessionManager::setCurrentSession(PlatformMediaSession& session) 236 236 { 237 237 LOG(Media, "MediaSessionManager::setCurrentSession - %p", &session); … … 251 251 } 252 252 253 MediaSession* MediaSessionManager::currentSession()253 PlatformMediaSession* MediaSessionManager::currentSession() 254 254 { 255 255 if (!m_sessions.size()) … … 259 259 } 260 260 261 bool MediaSessionManager::sessionRestrictsInlineVideoPlayback(const MediaSession& session) const262 { 263 MediaSession::MediaType sessionType = session.presentationType();264 if (sessionType != MediaSession::Video)261 bool MediaSessionManager::sessionRestrictsInlineVideoPlayback(const PlatformMediaSession& session) const 262 { 263 PlatformMediaSession::MediaType sessionType = session.presentationType(); 264 if (sessionType != PlatformMediaSession::Video) 265 265 return false; 266 266 … … 268 268 } 269 269 270 bool MediaSessionManager::sessionCanLoadMedia(const MediaSession& session) const271 { 272 return session.state() == MediaSession::Playing || !session.isHidden() || session.isPlayingToWirelessPlaybackTarget();270 bool MediaSessionManager::sessionCanLoadMedia(const PlatformMediaSession& session) const 271 { 272 return session.state() == PlatformMediaSession::Playing || !session.isHidden() || session.isPlayingToWirelessPlaybackTarget(); 273 273 } 274 274 … … 276 276 { 277 277 LOG(Media, "MediaSessionManager::applicationWillEnterBackground"); 278 Vector< MediaSession*> sessions = m_sessions;278 Vector<PlatformMediaSession*> sessions = m_sessions; 279 279 for (auto* session : sessions) { 280 280 if (m_restrictions[session->mediaType()] & BackgroundProcessPlaybackRestricted) 281 session->beginInterruption( MediaSession::EnteringBackground);281 session->beginInterruption(PlatformMediaSession::EnteringBackground); 282 282 } 283 283 } … … 286 286 { 287 287 LOG(Media, "MediaSessionManager::applicationWillEnterForeground"); 288 Vector< MediaSession*> sessions = m_sessions;288 Vector<PlatformMediaSession*> sessions = m_sessions; 289 289 for (auto* session : sessions) { 290 290 if (m_restrictions[session->mediaType()] & BackgroundProcessPlaybackRestricted) 291 session->endInterruption( MediaSession::MayResumePlaying);291 session->endInterruption(PlatformMediaSession::MayResumePlaying); 292 292 } 293 293 } … … 299 299 #endif 300 300 301 void MediaSessionManager::didReceiveRemoteControlCommand( MediaSession::RemoteControlCommandType command)302 { 303 MediaSession* activeSession = currentSession();301 void MediaSessionManager::didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType command) 302 { 303 PlatformMediaSession* activeSession = currentSession(); 304 304 if (!activeSession || !activeSession->canReceiveRemoteControlCommands()) 305 305 return; … … 313 313 314 314 for (auto session : m_sessions) 315 session->beginInterruption( MediaSession::SystemSleep);315 session->beginInterruption(PlatformMediaSession::SystemSleep); 316 316 } 317 317 … … 322 322 323 323 for (auto session : m_sessions) 324 session->endInterruption( MediaSession::MayResumePlaying);324 session->endInterruption(PlatformMediaSession::MayResumePlaying); 325 325 } 326 326 -
trunk/Source/WebCore/platform/audio/MediaSessionManager.h
r183096 r185006 28 28 29 29 #include "AudioHardwareListener.h" 30 #include " MediaSession.h"30 #include "PlatformMediaSession.h" 31 31 #include "RemoteCommandListener.h" 32 32 #include "Settings.h" … … 38 38 39 39 class HTMLMediaElement; 40 class MediaSession;40 class PlatformMediaSession; 41 41 class RemoteCommandListener; 42 42 … … 47 47 virtual ~MediaSessionManager() { } 48 48 49 bool has( MediaSession::MediaType) const;50 int count( MediaSession::MediaType) const;49 bool has(PlatformMediaSession::MediaType) const; 50 int count(PlatformMediaSession::MediaType) const; 51 51 bool activeAudioSessionRequired() const; 52 52 53 WEBCORE_EXPORT void beginInterruption( MediaSession::InterruptionType);54 WEBCORE_EXPORT void endInterruption( MediaSession::EndInterruptionFlags);53 WEBCORE_EXPORT void beginInterruption(PlatformMediaSession::InterruptionType); 54 WEBCORE_EXPORT void endInterruption(PlatformMediaSession::EndInterruptionFlags); 55 55 56 56 WEBCORE_EXPORT void applicationWillEnterForeground() const; … … 69 69 typedef unsigned SessionRestrictions; 70 70 71 WEBCORE_EXPORT void addRestriction( MediaSession::MediaType, SessionRestrictions);72 WEBCORE_EXPORT void removeRestriction( MediaSession::MediaType, SessionRestrictions);73 WEBCORE_EXPORT SessionRestrictions restrictions( MediaSession::MediaType);71 WEBCORE_EXPORT void addRestriction(PlatformMediaSession::MediaType, SessionRestrictions); 72 WEBCORE_EXPORT void removeRestriction(PlatformMediaSession::MediaType, SessionRestrictions); 73 WEBCORE_EXPORT SessionRestrictions restrictions(PlatformMediaSession::MediaType); 74 74 virtual void resetRestrictions(); 75 75 76 virtual bool sessionWillBeginPlayback( MediaSession&);77 virtual void sessionWillEndPlayback( MediaSession&);76 virtual bool sessionWillBeginPlayback(PlatformMediaSession&); 77 virtual void sessionWillEndPlayback(PlatformMediaSession&); 78 78 79 bool sessionRestrictsInlineVideoPlayback(const MediaSession&) const;79 bool sessionRestrictsInlineVideoPlayback(const PlatformMediaSession&) const; 80 80 81 virtual bool sessionCanLoadMedia(const MediaSession&) const;81 virtual bool sessionCanLoadMedia(const PlatformMediaSession&) const; 82 82 83 83 #if PLATFORM(IOS) … … 86 86 #endif 87 87 88 void setCurrentSession( MediaSession&);89 MediaSession* currentSession();88 void setCurrentSession(PlatformMediaSession&); 89 PlatformMediaSession* currentSession(); 90 90 91 91 protected: 92 friend class MediaSession;92 friend class PlatformMediaSession; 93 93 explicit MediaSessionManager(); 94 94 95 void addSession( MediaSession&);96 void removeSession( MediaSession&);95 void addSession(PlatformMediaSession&); 96 void removeSession(PlatformMediaSession&); 97 97 98 Vector< MediaSession*> sessions() { return m_sessions; }98 Vector<PlatformMediaSession*> sessions() { return m_sessions; } 99 99 100 100 private: … … 104 104 105 105 // RemoteCommandListenerClient 106 WEBCORE_EXPORT virtual void didReceiveRemoteControlCommand( MediaSession::RemoteControlCommandType) override;106 WEBCORE_EXPORT virtual void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType) override; 107 107 108 108 // AudioHardwareListenerClient … … 115 115 virtual void systemDidWake() override; 116 116 117 SessionRestrictions m_restrictions[ MediaSession::WebAudio + 1];118 Vector< MediaSession*> m_sessions;117 SessionRestrictions m_restrictions[PlatformMediaSession::WebAudio + 1]; 118 Vector<PlatformMediaSession*> m_sessions; 119 119 std::unique_ptr<RemoteCommandListener> m_remoteCommandListener; 120 120 std::unique_ptr<SystemSleepListener> m_systemSleepListener; -
trunk/Source/WebCore/platform/audio/PlatformMediaSession.cpp
r185005 r185006 25 25 26 26 #include "config.h" 27 #include " MediaSession.h"27 #include "PlatformMediaSession.h" 28 28 29 29 #if ENABLE(VIDEO) … … 38 38 39 39 #if !LOG_DISABLED 40 static const char* stateName( MediaSession::State state)41 { 42 #define CASE(state) case MediaSession::state: return #state40 static const char* stateName(PlatformMediaSession::State state) 41 { 42 #define CASE(state) case PlatformMediaSession::state: return #state 43 43 switch (state) { 44 44 CASE(Idle); … … 53 53 #endif 54 54 55 std::unique_ptr< MediaSession> MediaSession::create(MediaSessionClient& client)56 { 57 return std::make_unique< MediaSession>(client);58 } 59 60 MediaSession::MediaSession(MediaSessionClient& client)55 std::unique_ptr<PlatformMediaSession> PlatformMediaSession::create(PlatformMediaSessionClient& client) 56 { 57 return std::make_unique<PlatformMediaSession>(client); 58 } 59 60 PlatformMediaSession::PlatformMediaSession(PlatformMediaSessionClient& client) 61 61 : m_client(client) 62 , m_clientDataBufferingTimer(*this, & MediaSession::clientDataBufferingTimerFired)62 , m_clientDataBufferingTimer(*this, &PlatformMediaSession::clientDataBufferingTimerFired) 63 63 , m_state(Idle) 64 64 , m_stateToRestore(Idle) … … 69 69 } 70 70 71 MediaSession::~MediaSession()71 PlatformMediaSession::~PlatformMediaSession() 72 72 { 73 73 MediaSessionManager::sharedManager().removeSession(*this); 74 74 } 75 75 76 void MediaSession::setState(State state)77 { 78 LOG(Media, " MediaSession::setState(%p) - %s", this, stateName(state));76 void PlatformMediaSession::setState(State state) 77 { 78 LOG(Media, "PlatformMediaSession::setState(%p) - %s", this, stateName(state)); 79 79 m_state = state; 80 80 } 81 81 82 void MediaSession::beginInterruption(InterruptionType type)83 { 84 LOG(Media, " MediaSession::beginInterruption(%p), state = %s, interruption count = %i", this, stateName(m_state), m_interruptionCount);82 void PlatformMediaSession::beginInterruption(InterruptionType type) 83 { 84 LOG(Media, "PlatformMediaSession::beginInterruption(%p), state = %s, interruption count = %i", this, stateName(m_state), m_interruptionCount); 85 85 86 86 if (++m_interruptionCount > 1 || (type == EnteringBackground && client().overrideBackgroundPlaybackRestriction())) … … 94 94 } 95 95 96 void MediaSession::endInterruption(EndInterruptionFlags flags)97 { 98 LOG(Media, " MediaSession::endInterruption(%p) - flags = %i, stateToRestore = %s, interruption count = %i", this, (int)flags, stateName(m_stateToRestore), m_interruptionCount);96 void PlatformMediaSession::endInterruption(EndInterruptionFlags flags) 97 { 98 LOG(Media, "PlatformMediaSession::endInterruption(%p) - flags = %i, stateToRestore = %s, interruption count = %i", this, (int)flags, stateName(m_stateToRestore), m_interruptionCount); 99 99 100 100 if (!m_interruptionCount) { 101 LOG(Media, " MediaSession::endInterruption(%p) - !! ignoring spurious interruption end !!", this);101 LOG(Media, "PlatformMediaSession::endInterruption(%p) - !! ignoring spurious interruption end !!", this); 102 102 return; 103 103 } … … 114 114 } 115 115 116 bool MediaSession::clientWillBeginPlayback()116 bool PlatformMediaSession::clientWillBeginPlayback() 117 117 { 118 118 if (m_notifyingClient) … … 130 130 } 131 131 132 bool MediaSession::clientWillPausePlayback()132 bool PlatformMediaSession::clientWillPausePlayback() 133 133 { 134 134 if (m_notifyingClient) 135 135 return true; 136 136 137 LOG(Media, " MediaSession::clientWillPausePlayback(%p)- state = %s", this, stateName(m_state));137 LOG(Media, "PlatformMediaSession::clientWillPausePlayback(%p)- state = %s", this, stateName(m_state)); 138 138 if (state() == Interrupted) { 139 139 m_stateToRestore = Paused; … … 149 149 } 150 150 151 void MediaSession::pauseSession()152 { 153 LOG(Media, " MediaSession::pauseSession(%p)", this);151 void PlatformMediaSession::pauseSession() 152 { 153 LOG(Media, "PlatformMediaSession::pauseSession(%p)", this); 154 154 m_client.suspendPlayback(); 155 155 } 156 156 157 MediaSession::MediaTypeMediaSession::mediaType() const157 PlatformMediaSession::MediaType PlatformMediaSession::mediaType() const 158 158 { 159 159 return m_client.mediaType(); 160 160 } 161 161 162 MediaSession::MediaTypeMediaSession::presentationType() const162 PlatformMediaSession::MediaType PlatformMediaSession::presentationType() const 163 163 { 164 164 return m_client.presentationType(); 165 165 } 166 166 167 String MediaSession::title() const167 String PlatformMediaSession::title() const 168 168 { 169 169 return m_client.mediaSessionTitle(); 170 170 } 171 171 172 double MediaSession::duration() const172 double PlatformMediaSession::duration() const 173 173 { 174 174 return m_client.mediaSessionDuration(); 175 175 } 176 176 177 double MediaSession::currentTime() const177 double PlatformMediaSession::currentTime() const 178 178 { 179 179 return m_client.mediaSessionCurrentTime(); 180 180 } 181 181 182 bool MediaSession::canReceiveRemoteControlCommands() const182 bool PlatformMediaSession::canReceiveRemoteControlCommands() const 183 183 { 184 184 return m_client.canReceiveRemoteControlCommands(); 185 185 } 186 186 187 void MediaSession::didReceiveRemoteControlCommand(RemoteControlCommandType command)187 void PlatformMediaSession::didReceiveRemoteControlCommand(RemoteControlCommandType command) 188 188 { 189 189 m_client.didReceiveRemoteControlCommand(command); 190 190 } 191 191 192 void MediaSession::visibilityChanged()192 void PlatformMediaSession::visibilityChanged() 193 193 { 194 194 if (!m_clientDataBufferingTimer.isActive()) … … 196 196 } 197 197 198 void MediaSession::clientDataBufferingTimerFired()199 { 200 LOG(Media, " MediaSession::clientDataBufferingTimerFired(%p)- visible = %s", this, m_client.elementIsHidden() ? "false" : "true");198 void PlatformMediaSession::clientDataBufferingTimerFired() 199 { 200 LOG(Media, "PlatformMediaSession::clientDataBufferingTimerFired(%p)- visible = %s", this, m_client.elementIsHidden() ? "false" : "true"); 201 201 202 202 updateClientDataBuffering(); … … 210 210 } 211 211 212 void MediaSession::updateClientDataBuffering()212 void PlatformMediaSession::updateClientDataBuffering() 213 213 { 214 214 if (m_clientDataBufferingTimer.isActive()) … … 218 218 } 219 219 220 bool MediaSession::isHidden() const220 bool PlatformMediaSession::isHidden() const 221 221 { 222 222 return m_client.elementIsHidden(); 223 223 } 224 224 225 MediaSession::DisplayTypeMediaSession::displayType() const225 PlatformMediaSession::DisplayType PlatformMediaSession::displayType() const 226 226 { 227 227 return m_client.displayType(); 228 228 } 229 229 230 String MediaSessionClient::mediaSessionTitle() const230 String PlatformMediaSessionClient::mediaSessionTitle() const 231 231 { 232 232 return String(); 233 233 } 234 234 235 double MediaSessionClient::mediaSessionDuration() const235 double PlatformMediaSessionClient::mediaSessionDuration() const 236 236 { 237 237 return MediaPlayer::invalidTime(); 238 238 } 239 239 240 double MediaSessionClient::mediaSessionCurrentTime() const240 double PlatformMediaSessionClient::mediaSessionCurrentTime() const 241 241 { 242 242 return MediaPlayer::invalidTime(); -
trunk/Source/WebCore/platform/audio/PlatformMediaSession.h
r185005 r185006 24 24 */ 25 25 26 #ifndef MediaSession_h27 #define MediaSession_h26 #ifndef PlatformMediaSession_h 27 #define PlatformMediaSession_h 28 28 29 29 #include "MediaProducer.h" … … 39 39 40 40 class MediaPlaybackTarget; 41 class MediaSessionClient;41 class PlatformMediaSessionClient; 42 42 43 class MediaSession43 class PlatformMediaSession 44 44 #if ENABLE(WIRELESS_PLAYBACK_TARGET) 45 45 : public MediaPlaybackTargetClient … … 47 47 { 48 48 public: 49 static std::unique_ptr< MediaSession> create(MediaSessionClient&);49 static std::unique_ptr<PlatformMediaSession> create(PlatformMediaSessionClient&); 50 50 51 MediaSession(MediaSessionClient&);52 virtual ~ MediaSession();51 PlatformMediaSession(PlatformMediaSessionClient&); 52 virtual ~PlatformMediaSession(); 53 53 54 54 enum MediaType { … … 134 134 135 135 protected: 136 MediaSessionClient& client() const { return m_client; }136 PlatformMediaSessionClient& client() const { return m_client; } 137 137 138 138 private: … … 140 140 void updateClientDataBuffering(); 141 141 142 MediaSessionClient& m_client;142 PlatformMediaSessionClient& m_client; 143 143 Timer m_clientDataBufferingTimer; 144 144 State m_state; … … 148 148 }; 149 149 150 class MediaSessionClient {151 WTF_MAKE_NONCOPYABLE( MediaSessionClient);150 class PlatformMediaSessionClient { 151 WTF_MAKE_NONCOPYABLE(PlatformMediaSessionClient); 152 152 public: 153 MediaSessionClient() { }153 PlatformMediaSessionClient() { } 154 154 155 virtual MediaSession::MediaType mediaType() const = 0;156 virtual MediaSession::MediaType presentationType() const = 0;157 virtual MediaSession::DisplayType displayType() const { returnMediaSession::Normal; }155 virtual PlatformMediaSession::MediaType mediaType() const = 0; 156 virtual PlatformMediaSession::MediaType presentationType() const = 0; 157 virtual PlatformMediaSession::DisplayType displayType() const { return PlatformMediaSession::Normal; } 158 158 159 159 virtual void mayResumePlayback(bool shouldResume) = 0; … … 165 165 166 166 virtual bool canReceiveRemoteControlCommands() const = 0; 167 virtual void didReceiveRemoteControlCommand( MediaSession::RemoteControlCommandType) = 0;167 virtual void didReceiveRemoteControlCommand(PlatformMediaSession::RemoteControlCommandType) = 0; 168 168 169 169 virtual void setShouldBufferData(bool) { } … … 179 179 180 180 protected: 181 virtual ~ MediaSessionClient() { }181 virtual ~PlatformMediaSessionClient() { } 182 182 }; 183 183 184 184 } 185 185 186 #endif // MediaSession_h186 #endif // PlatformMediaSession_h -
trunk/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.h
r182141 r185006 54 54 MediaSessionManageriOS(); 55 55 56 virtual bool sessionWillBeginPlayback( MediaSession&) override;57 virtual void sessionWillEndPlayback( MediaSession&) override;56 virtual bool sessionWillBeginPlayback(PlatformMediaSession&) override; 57 virtual void sessionWillEndPlayback(PlatformMediaSession&) override; 58 58 59 59 void updateNowPlayingInfo(); … … 63 63 virtual void configureWireLessTargetMonitoring() override; 64 64 65 virtual bool sessionCanLoadMedia(const MediaSession&) const override;65 virtual bool sessionCanLoadMedia(const PlatformMediaSession&) const override; 66 66 67 67 RetainPtr<WebMediaSessionHelper> m_objcObserver; -
trunk/Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm
r183181 r185006 32 32 #import "MediaPlayer.h" 33 33 #import "MediaPlayerSPI.h" 34 #import " MediaSession.h"34 #import "PlatformMediaSession.h" 35 35 #import "SoftLinking.h" 36 36 #import "SystemMemory.h" … … 139 139 static wkDeviceClass deviceClass = iosDeviceClass(); 140 140 if (deviceClass == wkDeviceClassiPhone || deviceClass == wkDeviceClassiPod) 141 addRestriction( MediaSession::Video, InlineVideoPlaybackRestricted);141 addRestriction(PlatformMediaSession::Video, InlineVideoPlaybackRestricted); 142 142 143 143 if (ramSize() < systemMemoryRequiredForVideoInBackgroundTabs) { 144 144 LOG(Media, "MediaSessionManageriOS::resetRestrictions - restricting video in background tabs because system memory = %zul", ramSize()); 145 addRestriction( MediaSession::Video, BackgroundTabPlaybackRestricted);145 addRestriction(PlatformMediaSession::Video, BackgroundTabPlaybackRestricted); 146 146 } 147 147 148 addRestriction( MediaSession::Video, ConcurrentPlaybackNotPermitted);149 addRestriction( MediaSession::Video, BackgroundProcessPlaybackRestricted);150 151 removeRestriction( MediaSession::Audio, ConcurrentPlaybackNotPermitted);152 removeRestriction( MediaSession::Audio, BackgroundProcessPlaybackRestricted);153 154 removeRestriction( MediaSession::WebAudio, ConcurrentPlaybackNotPermitted);155 removeRestriction( MediaSession::WebAudio, BackgroundProcessPlaybackRestricted);156 157 removeRestriction( MediaSession::Audio, MetadataPreloadingNotPermitted);158 removeRestriction( MediaSession::Video, MetadataPreloadingNotPermitted);159 160 addRestriction( MediaSession::Audio, AutoPreloadingNotPermitted);161 addRestriction( MediaSession::Video, AutoPreloadingNotPermitted);148 addRestriction(PlatformMediaSession::Video, ConcurrentPlaybackNotPermitted); 149 addRestriction(PlatformMediaSession::Video, BackgroundProcessPlaybackRestricted); 150 151 removeRestriction(PlatformMediaSession::Audio, ConcurrentPlaybackNotPermitted); 152 removeRestriction(PlatformMediaSession::Audio, BackgroundProcessPlaybackRestricted); 153 154 removeRestriction(PlatformMediaSession::WebAudio, ConcurrentPlaybackNotPermitted); 155 removeRestriction(PlatformMediaSession::WebAudio, BackgroundProcessPlaybackRestricted); 156 157 removeRestriction(PlatformMediaSession::Audio, MetadataPreloadingNotPermitted); 158 removeRestriction(PlatformMediaSession::Video, MetadataPreloadingNotPermitted); 159 160 addRestriction(PlatformMediaSession::Audio, AutoPreloadingNotPermitted); 161 addRestriction(PlatformMediaSession::Video, AutoPreloadingNotPermitted); 162 162 } 163 163 … … 169 169 void MediaSessionManageriOS::configureWireLessTargetMonitoring() 170 170 { 171 Vector< MediaSession*> sessions = this->sessions();171 Vector<PlatformMediaSession*> sessions = this->sessions(); 172 172 bool requiresMonitoring = false; 173 173 … … 187 187 } 188 188 189 bool MediaSessionManageriOS::sessionWillBeginPlayback( MediaSession& session)189 bool MediaSessionManageriOS::sessionWillBeginPlayback(PlatformMediaSession& session) 190 190 { 191 191 if (!MediaSessionManager::sessionWillBeginPlayback(session)) … … 196 196 } 197 197 198 void MediaSessionManageriOS::sessionWillEndPlayback( MediaSession& session)198 void MediaSessionManageriOS::sessionWillEndPlayback(PlatformMediaSession& session) 199 199 { 200 200 MediaSessionManager::sessionWillEndPlayback(session); … … 207 207 208 208 MPNowPlayingInfoCenter *nowPlaying = (MPNowPlayingInfoCenter *)[getMPNowPlayingInfoCenterClass() defaultCenter]; 209 const MediaSession* currentSession = this->currentSession();209 const PlatformMediaSession* currentSession = this->currentSession(); 210 210 211 211 if (!currentSession) { … … 228 228 [info setValue:@(currentTime) forKey:MPNowPlayingInfoPropertyElapsedPlaybackTime]; 229 229 230 [info setValue:(currentSession->state() == MediaSession::Playing ? @YES : @NO) forKey:MPNowPlayingInfoPropertyPlaybackRate];230 [info setValue:(currentSession->state() == PlatformMediaSession::Playing ? @YES : @NO) forKey:MPNowPlayingInfoPropertyPlaybackRate]; 231 231 [nowPlaying setNowPlayingInfo:info.get()]; 232 232 } 233 233 234 bool MediaSessionManageriOS::sessionCanLoadMedia(const MediaSession& session) const235 { 236 return session.state() == MediaSession::Playing || !session.isHidden() || session.displayType() ==MediaSession::Optimized;234 bool MediaSessionManageriOS::sessionCanLoadMedia(const PlatformMediaSession& session) const 235 { 236 return session.state() == PlatformMediaSession::Playing || !session.isHidden() || session.displayType() == PlatformMediaSession::Optimized; 237 237 } 238 238 239 239 void MediaSessionManageriOS::externalOutputDeviceAvailableDidChange() 240 240 { 241 Vector< MediaSession*> sessionList = sessions();241 Vector<PlatformMediaSession*> sessionList = sessions(); 242 242 bool haveTargets = [m_objcObserver hasWirelessTargetsAvailable]; 243 243 for (auto* session : sessionList) … … 384 384 385 385 NSUInteger type = [[[notification userInfo] objectForKey:AVAudioSessionInterruptionTypeKey] unsignedIntegerValue]; 386 MediaSession::EndInterruptionFlags flags =MediaSession::NoFlags;386 PlatformMediaSession::EndInterruptionFlags flags = PlatformMediaSession::NoFlags; 387 387 388 388 LOG(Media, "-[WebMediaSessionHelper interruption] - type = %i", (int)type); 389 389 390 390 if (type == AVAudioSessionInterruptionTypeEnded && [[[notification userInfo] objectForKey:AVAudioSessionInterruptionOptionKey] unsignedIntegerValue] == AVAudioSessionInterruptionOptionShouldResume) 391 flags = MediaSession::MayResumePlaying;391 flags = PlatformMediaSession::MayResumePlaying; 392 392 393 393 WebThreadRun(^{ … … 396 396 397 397 if (type == AVAudioSessionInterruptionTypeBegan) 398 _callback->beginInterruption( MediaSession::SystemInterruption);398 _callback->beginInterruption(PlatformMediaSession::SystemInterruption); 399 399 else 400 400 _callback->endInterruption(flags); -
trunk/Source/WebCore/platform/audio/mac/MediaSessionManagerMac.cpp
r182141 r185006 40 40 void MediaSessionManager::updateSessionState() 41 41 { 42 LOG(Media, "MediaSessionManager::updateSessionState() - types: Video(%d), Audio(%d), WebAudio(%d)", count( MediaSession::Video), count(MediaSession::Audio), count(MediaSession::WebAudio));42 LOG(Media, "MediaSessionManager::updateSessionState() - types: Video(%d), Audio(%d), WebAudio(%d)", count(PlatformMediaSession::Video), count(PlatformMediaSession::Audio), count(PlatformMediaSession::WebAudio)); 43 43 44 if (has( MediaSession::WebAudio))44 if (has(PlatformMediaSession::WebAudio)) 45 45 AudioSession::sharedSession().setPreferredBufferSize(kWebAudioBufferSize); 46 else if ((has( MediaSession::Video) || has(MediaSession::Audio)) && Settings::lowPowerVideoAudioBufferSizeEnabled()) {46 else if ((has(PlatformMediaSession::Video) || has(PlatformMediaSession::Audio)) && Settings::lowPowerVideoAudioBufferSizeEnabled()) { 47 47 // FIXME: <http://webkit.org/b/116725> Figure out why enabling the code below 48 48 // causes media LayoutTests to fail on 10.8. … … 61 61 return; 62 62 63 if (has( MediaSession::Video) || has(MediaSession::Audio))63 if (has(PlatformMediaSession::Video) || has(PlatformMediaSession::Audio)) 64 64 AudioSession::sharedSession().setCategory(AudioSession::MediaPlayback); 65 else if (has( MediaSession::WebAudio))65 else if (has(PlatformMediaSession::WebAudio)) 66 66 AudioSession::sharedSession().setCategory(AudioSession::AmbientSound); 67 67 #endif -
trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp
r184814 r185006 1348 1348 } 1349 1349 1350 void MediaPlayer::handlePlaybackCommand( MediaSession::RemoteControlCommandType command)1350 void MediaPlayer::handlePlaybackCommand(PlatformMediaSession::RemoteControlCommandType command) 1351 1351 { 1352 1352 m_client.mediaPlayerHandlePlaybackCommand(command); -
trunk/Source/WebCore/platform/graphics/MediaPlayer.h
r184814 r185006 37 37 #include "LayoutRect.h" 38 38 #include "MediaPlayerEnums.h" 39 #include "MediaSession.h"40 39 #include "NativeImagePtr.h" 41 40 #include "PlatformLayer.h" 42 41 #include "PlatformMediaResourceLoader.h" 42 #include "PlatformMediaSession.h" 43 43 #include "Timer.h" 44 44 #include "VideoTrackPrivate.h" … … 269 269 270 270 virtual bool mediaPlayerShouldWaitForResponseToAuthenticationChallenge(const AuthenticationChallenge&) { return false; } 271 virtual void mediaPlayerHandlePlaybackCommand( MediaSession::RemoteControlCommandType) { }271 virtual void mediaPlayerHandlePlaybackCommand(PlatformMediaSession::RemoteControlCommandType) { } 272 272 273 273 virtual String mediaPlayerSourceApplicationIdentifier() const { return emptyString(); } … … 595 595 596 596 bool shouldWaitForResponseToAuthenticationChallenge(const AuthenticationChallenge&); 597 void handlePlaybackCommand( MediaSession::RemoteControlCommandType);597 void handlePlaybackCommand(PlatformMediaSession::RemoteControlCommandType); 598 598 String sourceApplicationIdentifier() const; 599 599 Vector<String> preferredAudioCharacteristics() const; -
trunk/Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp
r182240 r185006 622 622 #if ENABLE(WIRELESS_PLAYBACK_TARGET) && PLATFORM(IOS) 623 623 if (isCurrentPlaybackTargetWireless()) 624 m_player->handlePlaybackCommand(rate() ? MediaSession::PlayCommand :MediaSession::PauseCommand);624 m_player->handlePlaybackCommand(rate() ? PlatformMediaSession::PlayCommand : PlatformMediaSession::PauseCommand); 625 625 #endif 626 626 -
trunk/Source/WebCore/platform/ios/RemoteCommandListenerIOS.mm
r167590 r185006 56 56 if (!weakThis) 57 57 return; 58 weakThis->m_client.didReceiveRemoteControlCommand( MediaSession::PauseCommand);58 weakThis->m_client.didReceiveRemoteControlCommand(PlatformMediaSession::PauseCommand); 59 59 }); 60 60 … … 66 66 if (!weakThis) 67 67 return; 68 weakThis->m_client.didReceiveRemoteControlCommand( MediaSession::PlayCommand);68 weakThis->m_client.didReceiveRemoteControlCommand(PlatformMediaSession::PlayCommand); 69 69 }); 70 70 … … 76 76 if (!weakThis) 77 77 return; 78 weakThis->m_client.didReceiveRemoteControlCommand( MediaSession::TogglePlayPauseCommand);78 weakThis->m_client.didReceiveRemoteControlCommand(PlatformMediaSession::TogglePlayPauseCommand); 79 79 }); 80 80 … … 86 86 87 87 MPSeekCommandEvent* seekEvent = static_cast<MPSeekCommandEvent *>(event); 88 MediaSession::RemoteControlCommandType command = [seekEvent type] == MPSeekCommandEventTypeBeginSeeking ? MediaSession::BeginSeekingBackwardCommand :MediaSession::EndSeekingBackwardCommand;88 PlatformMediaSession::RemoteControlCommandType command = [seekEvent type] == MPSeekCommandEventTypeBeginSeeking ? PlatformMediaSession::BeginSeekingBackwardCommand : PlatformMediaSession::EndSeekingBackwardCommand; 89 89 90 90 callOnMainThread([weakThis, command] { … … 101 101 MPSeekCommandEvent* seekEvent = static_cast<MPSeekCommandEvent *>(event); 102 102 103 MediaSession::RemoteControlCommandType command = [seekEvent type] == MPSeekCommandEventTypeBeginSeeking ? MediaSession::BeginSeekingForwardCommand :MediaSession::EndSeekingForwardCommand;103 PlatformMediaSession::RemoteControlCommandType command = [seekEvent type] == MPSeekCommandEventTypeBeginSeeking ? PlatformMediaSession::BeginSeekingForwardCommand : PlatformMediaSession::EndSeekingForwardCommand; 104 104 105 105 callOnMainThread([weakThis, command] { -
trunk/Source/WebCore/testing/Internals.cpp
r184990 r185006 2579 2579 void Internals::beginMediaSessionInterruption() 2580 2580 { 2581 MediaSessionManager::sharedManager().beginInterruption( MediaSession::SystemInterruption);2581 MediaSessionManager::sharedManager().beginInterruption(PlatformMediaSession::SystemInterruption); 2582 2582 } 2583 2583 2584 2584 void Internals::endMediaSessionInterruption(const String& flagsString) 2585 2585 { 2586 MediaSession::EndInterruptionFlags flags =MediaSession::NoFlags;2586 PlatformMediaSession::EndInterruptionFlags flags = PlatformMediaSession::NoFlags; 2587 2587 2588 2588 if (equalIgnoringCase(flagsString, "MayResumePlaying")) 2589 flags = MediaSession::MayResumePlaying;2589 flags = PlatformMediaSession::MayResumePlaying; 2590 2590 2591 2591 MediaSessionManager::sharedManager().endInterruption(flags); … … 2604 2604 void Internals::setMediaSessionRestrictions(const String& mediaTypeString, const String& restrictionsString, ExceptionCode& ec) 2605 2605 { 2606 MediaSession::MediaType mediaType =MediaSession::None;2606 PlatformMediaSession::MediaType mediaType = PlatformMediaSession::None; 2607 2607 if (equalIgnoringCase(mediaTypeString, "Video")) 2608 mediaType = MediaSession::Video;2608 mediaType = PlatformMediaSession::Video; 2609 2609 else if (equalIgnoringCase(mediaTypeString, "Audio")) 2610 mediaType = MediaSession::Audio;2610 mediaType = PlatformMediaSession::Audio; 2611 2611 else if (equalIgnoringCase(mediaTypeString, "WebAudio")) 2612 mediaType = MediaSession::WebAudio;2612 mediaType = PlatformMediaSession::WebAudio; 2613 2613 else { 2614 2614 ec = INVALID_ACCESS_ERR; … … 2683 2683 void Internals::postRemoteControlCommand(const String& commandString, ExceptionCode& ec) 2684 2684 { 2685 MediaSession::RemoteControlCommandType command;2685 PlatformMediaSession::RemoteControlCommandType command; 2686 2686 2687 2687 if (equalIgnoringCase(commandString, "Play")) 2688 command = MediaSession::PlayCommand;2688 command = PlatformMediaSession::PlayCommand; 2689 2689 else if (equalIgnoringCase(commandString, "Pause")) 2690 command = MediaSession::PauseCommand;2690 command = PlatformMediaSession::PauseCommand; 2691 2691 else if (equalIgnoringCase(commandString, "Stop")) 2692 command = MediaSession::StopCommand;2692 command = PlatformMediaSession::StopCommand; 2693 2693 else if (equalIgnoringCase(commandString, "TogglePlayPause")) 2694 command = MediaSession::TogglePlayPauseCommand;2694 command = PlatformMediaSession::TogglePlayPauseCommand; 2695 2695 else if (equalIgnoringCase(commandString, "BeginSeekingBackward")) 2696 command = MediaSession::BeginSeekingBackwardCommand;2696 command = PlatformMediaSession::BeginSeekingBackwardCommand; 2697 2697 else if (equalIgnoringCase(commandString, "EndSeekingBackward")) 2698 command = MediaSession::EndSeekingBackwardCommand;2698 command = PlatformMediaSession::EndSeekingBackwardCommand; 2699 2699 else if (equalIgnoringCase(commandString, "BeginSeekingForward")) 2700 command = MediaSession::BeginSeekingForwardCommand;2700 command = PlatformMediaSession::BeginSeekingForwardCommand; 2701 2701 else if (equalIgnoringCase(commandString, "EndSeekingForward")) 2702 command = MediaSession::EndSeekingForwardCommand;2702 command = PlatformMediaSession::EndSeekingForwardCommand; 2703 2703 else { 2704 2704 ec = INVALID_ACCESS_ERR;
Note: See TracChangeset
for help on using the changeset viewer.