Changeset 165125 in webkit
- Timestamp:
- Mar 5, 2014 1:37:38 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r165124 r165125 1 2014-03-05 Eric Carlson <eric.carlson@apple.com> 2 3 [iOS] Show external device name/type in placeholder 4 https://bugs.webkit.org/show_bug.cgi?id=129723 5 6 Reviewed by Jer Noble. 7 8 Make the name and type of the external device available to the JS based controls. 9 * Modules/mediacontrols/MediaControlsHost.cpp: 10 (WebCore::MediaControlsHost::externalDeviceDisplayName): 11 (WebCore::MediaControlsHost::externalDeviceType): 12 * Modules/mediacontrols/MediaControlsHost.h: 13 * Modules/mediacontrols/MediaControlsHost.idl: 14 15 * Modules/mediacontrols/mediaControlsiOS.js: 16 (ControllerIOS.prototype.updateWirelessPlaybackStatus): Display device type-specific infomation 17 in the placeholder image. 18 19 * WebCore.exp.in: Export new WebKitSystemInterface functions. 20 21 * platform/graphics/MediaPlayer.cpp: 22 (WebCore::MediaPlayer::wirelessPlaybackTargetName): Added. 23 (WebCore::MediaPlayer::wirelessPlaybackTargetType): Ditto. 24 * platform/graphics/MediaPlayer.h: 25 * platform/graphics/MediaPlayerPrivate.h: 26 27 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: 28 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: 29 (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetType): Added. 30 (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetName): Ditto. 31 32 * platform/ios/WebCoreSystemInterfaceIOS.mm: 33 * platform/mac/WebCoreSystemInterface.h: 34 * platform/mac/WebCoreSystemInterface.mm: 35 1 36 2014-03-05 Benjamin Poulain <bpoulain@apple.com> 2 37 -
trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp
r164129 r165125 1 1 /* 2 * Copyright (C) 2013 Apple Inc. All rights reserved.2 * Copyright (C) 2013, 2014 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 33 33 #include "Element.h" 34 34 #include "HTMLMediaElement.h" 35 #include "Logging.h" 35 36 #include "MediaControlElements.h" 36 37 #include "Page.h" … … 164 165 } 165 166 166 } 167 167 String MediaControlsHost::externalDeviceDisplayName() const 168 { 169 #if ENABLE(IOS_AIRPLAY) 170 MediaPlayer* player = m_mediaElement->player(); 171 if (!player) { 172 LOG(Media, "MediaControlsHost::externalDeviceDisplayName - returning \"\" because player is NULL"); 173 return emptyString(); 174 } 175 176 String name = player->wirelessPlaybackTargetName(); 177 LOG(Media, "MediaControlsHost::externalDeviceDisplayName - returning \"%s\"", name.utf8().data()); 178 179 return name; 180 #else 181 return emptyString(); 168 182 #endif 183 } 184 185 String MediaControlsHost::externalDeviceType() const 186 { 187 DEFINE_STATIC_LOCAL(String, none, (ASCIILiteral("none"))); 188 String type = none; 189 190 #if ENABLE(IOS_AIRPLAY) 191 DEFINE_STATIC_LOCAL(String, airplay, (ASCIILiteral("airplay"))); 192 DEFINE_STATIC_LOCAL(String, tvout, (ASCIILiteral("tvout"))); 193 194 MediaPlayer* player = m_mediaElement->player(); 195 if (!player) { 196 LOG(Media, "MediaControlsHost::externalDeviceType - returning \"none\" because player is NULL"); 197 return none; 198 } 199 200 switch (player->wirelessPlaybackTargetType()) { 201 case MediaPlayer::TargetTypeNone: 202 type = none; 203 break; 204 case MediaPlayer::TargetTypeAirPlay: 205 type = airplay; 206 break; 207 case MediaPlayer::TargetTypeTVOut: 208 type = tvout; 209 break; 210 } 211 #endif 212 213 LOG(Media, "MediaControlsHost::externalDeviceType - returning \"%s\"", type.utf8().data()); 214 215 return type; 216 } 217 218 } 219 220 #endif -
trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.h
r164129 r165125 1 1 /* 2 * Copyright (C) 2013 Apple Inc. All rights reserved.2 * Copyright (C) 2013, 2014 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 63 63 bool userGestureRequired() const; 64 64 65 String externalDeviceDisplayName() const; 66 String externalDeviceType() const; 67 65 68 private: 66 69 MediaControlsHost(HTMLMediaElement*); -
trunk/Source/WebCore/Modules/mediacontrols/MediaControlsHost.idl
r164129 r165125 1 1 /* 2 * Copyright (C) 2013 Apple Inc. All rights reserved.2 * Copyright (C) 2013, 2014 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 enum DeviceType { 27 "none", 28 "airplay", 29 "tvout" 30 }; 31 26 32 [ 27 33 NoInterfaceObject, … … 40 46 readonly attribute boolean supportsFullscreen; 41 47 readonly attribute boolean userGestureRequired; 48 49 readonly attribute DOMString externalDeviceDisplayName; 50 readonly attribute DeviceType externalDeviceType; 42 51 }; -
trunk/Source/WebCore/Modules/mediacontrols/mediaControlsiOS.js
r164661 r165125 69 69 localizedStrings: { 70 70 // FIXME: Move localization to ext strings file <http://webkit.org/b/120956> 71 '##DEVICE_TYPE##': 'AirPlay', 72 '##DEVICE_NAME##': 'This video is playing on "##DEVICE_NAME##".', 71 '##AIRPLAY_DEVICE_TYPE##': 'AirPlay', 72 '##AIRPLAY_DEVICE_NAME##': 'This video is playing on "##DEVICE_NAME##".', 73 74 '##TVOUT_DEVICE_TYPE##': 'TV Connected', 75 '##TVOUT_DEVICE_NAME##': 'This video is playing on the TV.', 73 76 }, 74 77 … … 113 116 var backgroundImageSVG = "url('" + ControllerIOS.gWirelessImage + "')"; 114 117 115 var deviceType = this.UIString('##DEVICE_TYPE##'); 118 var deviceName = ""; 119 var deviceType = ""; 120 var type = this.host.externalDeviceType; 121 if (type == "airplay") { 122 deviceType = this.UIString('##AIRPLAY_DEVICE_TYPE##'); 123 deviceName = this.UIString('##AIRPLAY_DEVICE_NAME##').replace('##DEVICE_NAME##', this.host.externalDeviceDisplayName); 124 } else if (type == "tvout") { 125 deviceType = this.UIString('##TVOUT_DEVICE_TYPE##'); 126 deviceName = this.UIString('##TVOUT_DEVICE_NAME##'); 127 } 128 116 129 backgroundImageSVG = backgroundImageSVG.replace('##DEVICE_TYPE##', deviceType); 117 118 // FIXME: Get the device type and name from the host.119 var deviceName = "unknown";120 var deviceName = this.UIString('##DEVICE_NAME##').replace('##DEVICE_NAME##', deviceName);;121 130 backgroundImageSVG = backgroundImageSVG.replace('##DEVICE_NAME##', deviceName); 122 131 -
trunk/Source/WebCore/WebCore.exp.in
r165124 r165125 1971 1971 _wkDeleteHTTPCookie 1972 1972 _wkDestroyRenderingResources 1973 _wkExernalDeviceDisplayNameForPlayer 1974 _wkExernalDeviceTypeForPlayer 1973 1975 _wkGetCFURLResponseHTTPResponse 1974 1976 _wkGetCFURLResponseMIMEType -
trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp
r164527 r165125 852 852 } 853 853 854 String MediaPlayer::wirelessPlaybackTargetName() const 855 { 856 return m_private->wirelessPlaybackTargetName(); 857 } 858 859 MediaPlayer::WirelessPlaybackTargetType MediaPlayer::wirelessPlaybackTargetType() const 860 { 861 return m_private->wirelessPlaybackTargetType(); 862 } 863 854 864 void MediaPlayer::showPlaybackTargetPicker() 855 865 { -
trunk/Source/WebCore/platform/graphics/MediaPlayer.h
r164527 r165125 450 450 #if ENABLE(IOS_AIRPLAY) 451 451 bool isCurrentPlaybackTargetWireless() const; 452 453 enum WirelessPlaybackTargetType { TargetTypeNone, TargetTypeAirPlay, TargetTypeTVOut }; 454 WirelessPlaybackTargetType wirelessPlaybackTargetType() const; 455 456 String wirelessPlaybackTargetName() const; 457 452 458 void showPlaybackTargetPicker(); 453 459 -
trunk/Source/WebCore/platform/graphics/MediaPlayerPrivate.h
r164514 r165125 146 146 #if ENABLE(IOS_AIRPLAY) 147 147 virtual bool isCurrentPlaybackTargetWireless() const { return false; } 148 149 virtual String wirelessPlaybackTargetName() const { return emptyString(); } 150 virtual MediaPlayer::WirelessPlaybackTargetType wirelessPlaybackTargetType() const { return MediaPlayer::TargetTypeNone; } 151 148 152 virtual void showPlaybackTargetPicker() { } 149 153 -
trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h
r165000 r165125 229 229 #if ENABLE(IOS_AIRPLAY) 230 230 virtual bool isCurrentPlaybackTargetWireless() const override; 231 virtual String wirelessPlaybackTargetName() const override; 232 virtual MediaPlayer::WirelessPlaybackTargetType wirelessPlaybackTargetType() const override; 231 233 virtual bool wirelessVideoPlaybackDisabled() const override; 232 234 virtual void setWirelessVideoPlaybackDisabled(bool) override; -
trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm
r165000 r165125 88 88 #endif 89 89 90 91 90 SOFT_LINK_FRAMEWORK_OPTIONAL(AVFoundation) 92 91 SOFT_LINK_FRAMEWORK_OPTIONAL(CoreMedia) … … 1916 1915 LOG(Media, "MediaPlayerPrivateAVFoundationObjC::isCurrentPlaybackTargetWireless(%p) - returning %s", this, boolString(wirelessTarget)); 1917 1916 return wirelessTarget; 1917 } 1918 1919 MediaPlayer::WirelessPlaybackTargetType MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetType() const 1920 { 1921 if (!m_avPlayer) 1922 return MediaPlayer::TargetTypeNone; 1923 1924 switch (wkExernalDeviceTypeForPlayer(m_avPlayer.get())) { 1925 case wkExternalPlaybackTypeNone: 1926 return MediaPlayer::TargetTypeNone; 1927 case wkExternalPlaybackTypeAirPlay: 1928 return MediaPlayer::TargetTypeAirPlay; 1929 case wkExternalPlaybackTypeTVOut: 1930 return MediaPlayer::TargetTypeTVOut; 1931 } 1932 1933 ASSERT_NOT_REACHED(); 1934 return MediaPlayer::TargetTypeNone; 1935 } 1936 1937 String MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetName() const 1938 { 1939 if (!m_avPlayer) 1940 return emptyString(); 1941 1942 String wirelessTargetName = wkExernalDeviceDisplayNameForPlayer(m_avPlayer.get()); 1943 LOG(Media, "MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetName(%p) - returning %s", this, wirelessTargetName.utf8().data()); 1944 1945 return wirelessTargetName; 1918 1946 } 1919 1947 -
trunk/Source/WebCore/platform/ios/WebCoreSystemInterfaceIOS.mm
r165080 r165125 148 148 CFStringRef (*wkGetPlatformNameForNavigator)(void); 149 149 CFStringRef (*wkGetVendorNameForNavigator)(void); 150 151 int (*wkExernalDeviceTypeForPlayer)(AVPlayer *); 152 NSString *(*wkExernalDeviceDisplayNameForPlayer)(AVPlayer *); -
trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.h
r165080 r165125 95 95 96 96 OBJC_CLASS AVAsset; 97 OBJC_CLASS AVPlayer; 97 98 OBJC_CLASS CALayer; 98 99 OBJC_CLASS NSArray; … … 370 371 extern CFStringRef (*wkCachePartitionKey)(void); 371 372 #endif 373 374 typedef enum { 375 wkExternalPlaybackTypeNone, 376 wkExternalPlaybackTypeAirPlay, 377 wkExternalPlaybackTypeTVOut, 378 } wkExternalPlaybackType; 379 extern int (*wkExernalDeviceTypeForPlayer)(AVPlayer *); 380 extern NSString *(*wkExernalDeviceDisplayNameForPlayer)(AVPlayer *); 381 372 382 } 373 383 -
trunk/Source/WebCore/platform/mac/WebCoreSystemInterface.mm
r163657 r165125 213 213 CFStringRef (*wkCachePartitionKey)(void); 214 214 #endif 215 216 int (*wkExernalDeviceTypeForPlayer)(AVPlayer *); 217 NSString *(*wkExernalDeviceDisplayNameForPlayer)(AVPlayer *); -
trunk/Source/WebKit/mac/ChangeLog
r165118 r165125 1 2014-03-05 Eric Carlson <eric.carlson@apple.com> 2 3 [iOS] Show external device name/type in placeholder 4 https://bugs.webkit.org/show_bug.cgi?id=129723 5 6 Reviewed by Jer Noble. 7 8 * WebCoreSupport/WebSystemInterface.mm: 9 (InitWebCoreSystemInterface): 10 1 11 2014-03-05 Simon Fraser <simon.fraser@apple.com> 2 12 -
trunk/Source/WebKit/mac/WebCoreSupport/WebSystemInterface.mm
r165080 r165125 245 245 #endif 246 246 247 INIT(ExernalDeviceTypeForPlayer); 248 INIT(ExernalDeviceDisplayNameForPlayer); 249 247 250 didInit = true; 248 251 } -
trunk/WebKitLibraries/ChangeLog
r164516 r165125 1 2014-03-05 Eric Carlson <eric.carlson@apple.com> 2 3 [iOS] Show external device name/type in placeholder 4 https://bugs.webkit.org/show_bug.cgi?id=129723 5 6 Reviewed by Jer Noble. 7 8 * WebKitSystemInterface.h: 9 * libWebKitSystemInterfaceLion.a: 10 * libWebKitSystemInterfaceMavericks.a: 11 * libWebKitSystemInterfaceMountainLion.a: 12 1 13 2014-02-21 Jeffrey Pfau <jpfau@apple.com> 2 14 -
trunk/WebKitLibraries/WebKitSystemInterface.h
r165014 r165125 22 22 23 23 @class AVAsset; 24 @class AVPlayer; 24 25 @class QTMovie; 25 26 @class QTMovieView; … … 549 550 #endif 550 551 552 typedef enum { 553 WKExternalPlaybackTypeNone, 554 WKExternalPlaybackTypeAirPlay, 555 WKExternalPlaybackTypeTVOut, 556 } WKExternalPlaybackType; 557 558 int WKExernalDeviceTypeForPlayer(AVPlayer *); 559 NSString *WKExernalDeviceDisplayNameForPlayer(AVPlayer *); 560 551 561 #ifdef __cplusplus 552 562 }
Note: See TracChangeset
for help on using the changeset viewer.