Changeset 148785 in webkit
- Timestamp:
- Apr 19, 2013 6:03:14 PM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 5 added
- 38 edited
- 12 copied
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/CMakeLists.txt
r148753 r148785 2687 2687 if (ENABLE_VIDEO_TRACK) 2688 2688 list(APPEND WebCore_IDL_FILES 2689 html/track/AudioTrack.idl 2690 html/track/AudioTrackList.idl 2689 2691 html/track/TextTrack.idl 2690 2692 html/track/TextTrackCue.idl … … 2692 2694 html/track/TextTrackList.idl 2693 2695 html/track/TrackEvent.idl 2696 html/track/VideoTrack.idl 2697 html/track/VideoTrackList.idl 2694 2698 ) 2695 2699 2696 2700 list(APPEND WebCore_SOURCES 2701 html/track/AudioTrack.cpp 2702 html/track/AudioTrackList.cpp 2697 2703 html/track/InbandTextTrack.cpp 2698 2704 html/track/LoadableTextTrack.cpp … … 2708 2714 html/track/WebVTTParser.cpp 2709 2715 html/track/WebVTTTokenizer.cpp 2716 html/track/VideoTrack.cpp 2717 html/track/VideoTrackList.cpp 2710 2718 2711 2719 loader/cache/CachedTextTrack.cpp -
trunk/Source/WebCore/ChangeLog
r148781 r148785 1 2013-04-19 Brendan Long <b.long@cablelabs.com> 2 3 Add interfaces and stubs for audio and video tracks 4 https://bugs.webkit.org/show_bug.cgi?id=113965 5 6 Reviewed by Jer Noble. 7 8 No new tests because there's no implementations, so there's nothing 9 interesting to test. 10 11 * CMakeLists.txt: Add AudioTrack, VideoTrack, AudioTrackList and VideoTrackList. 12 * DerivedSources.cpp: Same. 13 * DerivedSources.make: Same. 14 * DerivedSources.pri: Same. 15 * GNUmakefile.list.am: Same. 16 * Target.pri: Same. 17 * UseJSC.cmake: Same. 18 * WebCore.vcproj/WebCore.vcproj: Same. 19 * WebCore.xcodeproj/project.pbxproj: Same. 20 * bindings/gobject/GNUmakefile.am: Same. 21 * bindings/js/JSAudioTrackCustom.cpp: Added, based on JSTestTrackCustom 22 * bindings/js/JSAudioTrackListCustom.cpp: Same. 23 * bindings/js/JSBindingsAllInOne.cpp: Add AudioTrack, VideoTrack, AudioTrackList and VideoTrackList. 24 * bindings/js/JSVideoTrackCustom.cpp: Added, based on JSTestTrackCustom 25 * bindings/js/JSVideoTrackListCustom.cpp: Same. 26 * dom/EventTarget.h: Make AudioTrackList and VideoTrackList event targets. 27 * dom/EventTargetFactory.in: Same. 28 * html/HTMLMediaElement.cpp: 29 (WebCore::HTMLMediaElement::HTMLMediaElement): Add m_audioTracks and m_videoTracks 30 (WebCore::HTMLMediaElement::~HTMLMediaElement): Clear clients for audio and video tracks 31 (WebCore::HTMLMediaElement::audioTrackEnabledChanged): Added. 32 (WebCore::HTMLMediaElement::videoTrackSelectedChanged): Added. 33 (WebCore::HTMLMediaElement::mediaPlayerDidAddAudioTrack): Added, based on mediaPlayerDidAddTextTrack 34 (WebCore::HTMLMediaElement::mediaPlayerDidAddVideoTrack): Same. 35 (WebCore::HTMLMediaElement::mediaPlayerDidRemoveAudioTrack): Added, based on mediaPlayerDidRemoveTextTrack 36 (WebCore::HTMLMediaElement::mediaPlayerDidRemoveVideoTrack): Same. 37 (WebCore::HTMLMediaElement::addAudioTrack): Added, based on addTextTrack 38 (WebCore::HTMLMediaElement::addVideoTrack): Same. 39 (WebCore::HTMLMediaElement::removeAudioTrack): Added, based on removeTextTrack 40 (WebCore::HTMLMediaElement::removeVideoTrack): Added, based on removeTextTrack 41 (WebCore::HTMLMediaElement::removeAllInbandTracks): Remove audio and video tracks too 42 (WebCore::HTMLMediaElement::audioTracks): Added, based on textTracks 43 (WebCore::HTMLMediaElement::videoTracks): Added, based on textTracks 44 (WebCore::HTMLMediaElement::reportMemoryUsage): Add audio and video tracks 45 * html/HTMLMediaElement.h: Add audioTracks and videoTracks and related functions 46 * html/HTMLMediaElement.idl: Add audioTracks and videoTracks 47 * html/track/AudioTrack.cpp: Added, based on TextTrack and InbandTextTrack. 48 * html/track/AudioTrack.h: Same. 49 * html/track/AudioTrack.idl: Added. 50 * html/track/AudioTrackList.cpp: Added, based on TextTrackList 51 * html/track/AudioTrackList.h: Same. 52 * html/track/AudioTrackList.idl: Added. 53 * html/track/TextTrackList.h: Add missing OVERRIDE on interfaceName() 54 * html/track/VideoTrack.cpp: Added, based on TextTrack and InbandTextTrack. 55 * html/track/VideoTrack.h: Same. 56 * html/track/VideoTrack.idl: Added. 57 * html/track/VideoTrackList.cpp: Added, based on TextTrackList 58 * html/track/VideoTrackList.h: Same. 59 * html/track/VideoTrackList.idl: Added. 60 * platform/graphics/AudioTrackPrivate.h: Added, based on InbandTextTrackPrivate.h 61 * platform/graphics/MediaPlayer.cpp: 62 (WebCore::MediaPlayer::addAudioTrack): Added, based on addTextTrack 63 (WebCore::MediaPlayer::removeAudioTrack): Added, based on removeTextTrack 64 (WebCore::MediaPlayer::addVideoTrack): Added, based on addTextTrack 65 (WebCore::MediaPlayer::removeVideoTrack): Added, based on removeTextTrack 66 * platform/graphics/MediaPlayer.h: 67 (WebCore::MediaPlayerClient::mediaPlayerDidAddAudioTrack): Added, based on mediaPlayerDidAddTextTrack 68 (WebCore::MediaPlayerClient::mediaPlayerDidAddVideoTrack): Same 69 (WebCore::MediaPlayerClient::mediaPlayerDidRemoveAudioTrack): Added, based on mediaPlayerDidRemoveTextTrack 70 (WebCore::MediaPlayerClient::mediaPlayerDidRemoveVideoTrack): Same 71 * platform/graphics/VideoTrackPrivate.h: Added, based on InbandTextTrackPrivate.h 72 1 73 2013-04-19 Bear Travis <betravis@adobe.com> 2 74 -
trunk/Source/WebCore/DerivedSources.cpp
r145787 r148785 473 473 #include "JSTextMetrics.cpp" 474 474 #if ENABLE(VIDEO_TRACK) 475 #include "JSAudioTrack.cpp" 476 #include "JSAudioTrackList.cpp" 475 477 #include "JSHTMLTrackElement.cpp" 476 478 #include "JSTextTrack.cpp" … … 479 481 #include "JSTextTrackList.cpp" 480 482 #include "JSTrackEvent.cpp" 483 #include "JSVideoTrack.cpp" 484 #include "JSVideoTrackList.cpp" 481 485 #endif 482 486 #include "JSTimeRanges.cpp" -
trunk/Source/WebCore/DerivedSources.make
r146820 r148785 432 432 $(WebCore)/html/shadow/HTMLContentElement.idl \ 433 433 $(WebCore)/html/shadow/HTMLShadowElement.idl \ 434 $(WebCore)/html/track/AudioTrack.idl \ 435 $(WebCore)/html/track/AudioTrackList.idl \ 434 436 $(WebCore)/html/track/TextTrack.idl \ 435 437 $(WebCore)/html/track/TextTrackCue.idl \ … … 437 439 $(WebCore)/html/track/TextTrackList.idl \ 438 440 $(WebCore)/html/track/TrackEvent.idl \ 441 $(WebCore)/html/track/VideoTrack.idl \ 442 $(WebCore)/html/track/VideoTrackList.idl \ 439 443 $(WebCore)/inspector/InjectedScriptHost.idl \ 440 444 $(WebCore)/inspector/InspectorFrontendHost.idl \ -
trunk/Source/WebCore/DerivedSources.pri
r146820 r148785 653 653 enable?(VIDEO_TRACK) { 654 654 IDL_BINDINGS += \ 655 $$PWD/html/track/AudioTrack.idl \ 656 $$PWD/html/track/AudioTrackList.idl \ 655 657 $$PWD/html/track/TextTrack.idl \ 656 658 $$PWD/html/track/TextTrackCue.idl \ … … 658 660 $$PWD/html/track/TextTrackList.idl \ 659 661 $$PWD/html/track/TrackEvent.idl \ 662 $$PWD/html/track/VideoTrack.idl \ 663 $$PWD/html/track/VideoTrackList.idl 660 664 } 661 665 -
trunk/Source/WebCore/GNUmakefile.list.am
r148753 r148785 66 66 DerivedSources/WebCore/JSAudioSourceNode.cpp \ 67 67 DerivedSources/WebCore/JSAudioSourceNode.h \ 68 DerivedSources/WebCore/JSAudioTrack.cpp \ 69 DerivedSources/WebCore/JSAudioTrack.h \ 70 DerivedSources/WebCore/JSAudioTrackList.cpp \ 71 DerivedSources/WebCore/JSAudioTrackList.h \ 68 72 DerivedSources/WebCore/JSBarInfo.cpp \ 69 73 DerivedSources/WebCore/JSBarInfo.h \ … … 778 782 DerivedSources/WebCore/JSVoidCallback.cpp \ 779 783 DerivedSources/WebCore/JSVoidCallback.h \ 784 DerivedSources/WebCore/JSVideoTrack.cpp \ 785 DerivedSources/WebCore/JSVideoTrack.h \ 786 DerivedSources/WebCore/JSVideoTrackList.cpp \ 787 DerivedSources/WebCore/JSVideoTrackList.h \ 780 788 DerivedSources/WebCore/JSWaveShaperNode.cpp \ 781 789 DerivedSources/WebCore/JSWaveShaperNode.h \ … … 1587 1595 $(WebCore)/html/shadow/HTMLContentElement.idl \ 1588 1596 $(WebCore)/html/shadow/HTMLShadowElement.idl \ 1597 $(WebCore)/html/track/AudioTrack.idl \ 1598 $(WebCore)/html/track/AudioTrackList.idl \ 1589 1599 $(WebCore)/html/track/TextTrack.idl \ 1590 1600 $(WebCore)/html/track/TextTrackCue.idl \ … … 1592 1602 $(WebCore)/html/track/TextTrackList.idl \ 1593 1603 $(WebCore)/html/track/TrackEvent.idl \ 1604 $(WebCore)/html/track/VideoTrack.idl \ 1605 $(WebCore)/html/track/VideoTrackList.idl \ 1594 1606 $(WebCore)/inspector/InjectedScriptHost.idl \ 1595 1607 $(WebCore)/inspector/InspectorFrontendHost.idl \ … … 2322 2334 Source/WebCore/bindings/js/JSAudioBufferSourceNodeCustom.cpp \ 2323 2335 Source/WebCore/bindings/js/JSAudioContextCustom.cpp \ 2336 Source/WebCore/bindings/js/JSAudioTrackCustom.cpp \ 2337 Source/WebCore/bindings/js/JSAudioTrackListCustom.cpp \ 2324 2338 Source/WebCore/bindings/js/JSBiquadFilterNodeCustom.cpp \ 2325 2339 Source/WebCore/bindings/js/JSBlobCustom.cpp \ … … 2468 2482 Source/WebCore/bindings/js/JSTextTrackCueCustom.cpp \ 2469 2483 Source/WebCore/bindings/js/JSTextTrackCustom.cpp \ 2470 Source/WebCore/bindings/js/JSTextTrackCustom.h \2471 2484 Source/WebCore/bindings/js/JSTextTrackListCustom.cpp \ 2472 2485 Source/WebCore/bindings/js/JSTouchCustom.cpp \ … … 2476 2489 Source/WebCore/bindings/js/JSTrackEventCustom.cpp \ 2477 2490 Source/WebCore/bindings/js/JSTreeWalkerCustom.cpp \ 2491 Source/WebCore/bindings/js/JSVideoTrackCustom.cpp \ 2492 Source/WebCore/bindings/js/JSVideoTrackListCustom.cpp \ 2478 2493 Source/WebCore/bindings/js/JSWebKitCSSKeyframeRuleCustom.cpp \ 2479 2494 Source/WebCore/bindings/js/JSWebKitCSSKeyframesRuleCustom.cpp \ … … 3770 3785 Source/WebCore/html/TimeRanges.cpp \ 3771 3786 Source/WebCore/html/TimeRanges.h \ 3787 Source/WebCore/html/track/AudioTrack.cpp \ 3788 Source/WebCore/html/track/AudioTrack.h \ 3789 Source/WebCore/html/track/AudioTrackList.cpp \ 3790 Source/WebCore/html/track/AudioTrackList.h \ 3772 3791 Source/WebCore/html/track/InbandTextTrack.cpp \ 3773 3792 Source/WebCore/html/track/InbandTextTrack.h \ … … 3790 3809 Source/WebCore/html/track/TrackListBase.cpp \ 3791 3810 Source/WebCore/html/track/TrackListBase.h \ 3811 Source/WebCore/html/track/VideoTrack.cpp \ 3812 Source/WebCore/html/track/VideoTrack.h \ 3813 Source/WebCore/html/track/VideoTrackList.cpp \ 3814 Source/WebCore/html/track/VideoTrackList.h \ 3792 3815 Source/WebCore/html/track/WebVTTElement.cpp \ 3793 3816 Source/WebCore/html/track/WebVTTElement.h \ … … 5500 5523 Source/WebCore/platform/graphics/ANGLEWebKitBridge.cpp \ 5501 5524 Source/WebCore/platform/graphics/ANGLEWebKitBridge.h \ 5525 Source/WebCore/platform/graphics/AudioTrackPrivate.h \ 5502 5526 Source/WebCore/platform/graphics/cpu/arm/GraphicsContext3DNEON.h \ 5503 5527 Source/WebCore/platform/graphics/cpu/arm/filters/NEONHelpers.h \ … … 5780 5804 Source/WebCore/platform/graphics/TypesettingFeatures.h \ 5781 5805 Source/WebCore/platform/graphics/UnitBezier.h \ 5806 Source/WebCore/platform/graphics/VideoTrackPrivate.h \ 5782 5807 Source/WebCore/platform/graphics/WidthCache.h \ 5783 5808 Source/WebCore/platform/graphics/WidthIterator.cpp \ -
trunk/Source/WebCore/Target.pri
r148753 r148785 3970 3970 enable?(VIDEO_TRACK) { 3971 3971 HEADERS += \ 3972 bindings/js/JSTextTrackCustom.h \3973 3972 bindings/js/JSTrackCustom.h \ 3974 3973 html/HTMLTrackElement.h \ 3974 html/track/AudioTrack.h \ 3975 html/track/AudioTrackList.h \ 3975 3976 html/track/InbandTextTrack.h \ 3976 3977 html/track/LoadableTextTrack.h \ … … 3983 3984 html/track/TrackEvent.h \ 3984 3985 html/track/TrackListBase.h \ 3986 html/track/VideoTrack.h \ 3987 html/track/VideoTrackList.h \ 3985 3988 html/track/WebVTTParser.h \ 3986 3989 html/track/WebVTTToken.h \ 3987 3990 html/track/WebVTTTokenizer.h \ 3988 3991 loader/TextTrackLoader.h \ 3992 platform/graphics/AudioTrackPrivate.h \ 3989 3993 platform/graphics/InbandTextTrackPrivate.h \ 3990 3994 platform/graphics/InbandTextTrackPrivateClient.h 3995 platform/graphics/VideoTrackPrivate.h \ 3991 3996 3992 3997 SOURCES += \ 3998 bindings/js/JSAudioTrackCustom.cpp \ 3999 bindings/js/JSAudioTrackListCustom.cpp \ 3993 4000 bindings/js/JSTextTrackCueCustom.cpp \ 3994 4001 bindings/js/JSTextTrackCustom.cpp \ … … 3996 4003 bindings/js/JSTrackEventCustom.cpp \ 3997 4004 bindings/js/JSTextTrackListCustom.cpp \ 4005 bindings/js/JSVideoTrackCustom.cpp \ 4006 bindings/js/JSVideoTrackListCustom.cpp \ 3998 4007 html/HTMLTrackElement.cpp \ 4008 html/track/AudioTrack.cpp \ 4009 html/track/AudioTrackList.cpp \ 3999 4010 html/track/InbandTextTrack.cpp \ 4000 4011 html/track/LoadableTextTrack.cpp \ … … 4007 4018 html/track/TrackEvent.cpp \ 4008 4019 html/track/TrackListBase.cpp \ 4020 html/track/VideoTrack.cpp \ 4021 html/track/VideoTrackList.cpp \ 4009 4022 html/track/WebVTTElement.cpp \ 4010 4023 html/track/WebVTTParser.cpp \ -
trunk/Source/WebCore/UseJSC.cmake
r148569 r148785 220 220 if (ENABLE_VIDEO_TRACK) 221 221 list(APPEND WebCore_SOURCES 222 bindings/js/JSAudioTrackCustom.cpp 223 bindings/js/JSAudioTrackListCustom.cpp 222 224 bindings/js/JSTextTrackCueCustom.cpp 223 225 bindings/js/JSTextTrackCustom.cpp … … 225 227 bindings/js/JSTrackCustom.cpp 226 228 bindings/js/JSTrackEventCustom.cpp 229 bindings/js/JSVideoTrackCustom.cpp 230 bindings/js/JSVideoTrackListCustom.cpp 227 231 ) 228 232 endif () -
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj
r148753 r148785 29903 29903 > 29904 29904 <File 29905 RelativePath="..\platform\graphics\AudioTrackPrivate.h" 29906 > 29907 </File> 29908 <File 29905 29909 RelativePath="..\platform\graphics\BitmapImage.cpp" 29906 29910 > … … 30376 30380 <File 30377 30381 RelativePath="..\platform\graphics\UnitBezier.h" 30382 > 30383 </File> 30384 <File 30385 RelativePath="..\platform\graphics\VideoTrackPrivate.h" 30378 30386 > 30379 30387 </File> … … 65755 65763 > 65756 65764 <File 65765 RelativePath="..\html\track\AudioTrack.cpp" 65766 > 65767 </File> 65768 <File 65769 RelativePath="..\html\track\AudioTrack.h" 65770 > 65771 </File> 65772 <File 65773 RelativePath="..\html\track\AudioTrackList.cpp" 65774 > 65775 </File> 65776 <File 65777 RelativePath="..\html\track\AudioTrackList.h" 65778 > 65779 </File> 65780 <File 65757 65781 RelativePath="..\html\track\InbandTextTrack.cpp" 65758 65782 > … … 65832 65856 <File 65833 65857 RelativePath="..\html\track\TrackListBase.h" 65858 > 65859 </File> 65860 <File 65861 RelativePath="..\html\track\VideoTrack.cpp" 65862 > 65863 </File> 65864 <File 65865 RelativePath="..\html\track\VideoTrack.h" 65866 > 65867 </File> 65868 <File 65869 RelativePath="..\html\track\VideoTrackList.cpp" 65870 > 65871 </File> 65872 <File 65873 RelativePath="..\html\track\VideoTrackList.h" 65834 65874 > 65835 65875 </File> -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r148753 r148785 133 133 07B5A30D14687D7100A81ECE /* JSTextTrackListCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07B5A30C14687D7100A81ECE /* JSTextTrackListCustom.cpp */; }; 134 134 07BDD6EC1469B4C2009C9F85 /* JSTrackEventCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07B5A30A14687B8400A81ECE /* JSTrackEventCustom.cpp */; }; 135 07CE77D516712A6A00C55A47 /* InbandTextTrackPrivateClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 07CE77D416712A6A00C55A47 /* InbandTextTrackPrivateClient.h */; };135 07CE77D516712A6A00C55A47 /* InbandTextTrackPrivateClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 07CE77D416712A6A00C55A47 /* InbandTextTrackPrivateClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; 136 136 07E116B11489C9A100EC5ACE /* JSTextTrackCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07E116B01489C9A100EC5ACE /* JSTextTrackCustom.cpp */; }; 137 137 07E117071489EBEB00EC5ACE /* JSTextTrackCueCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07E117061489EBEB00EC5ACE /* JSTextTrackCueCustom.cpp */; }; … … 5114 5114 BCFF64910EAD15C200C1D6F7 /* LengthBox.h in Headers */ = {isa = PBXBuildFile; fileRef = BCFF648F0EAD15C200C1D6F7 /* LengthBox.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5115 5115 BCFF64920EAD15C200C1D6F7 /* LengthSize.h in Headers */ = {isa = PBXBuildFile; fileRef = BCFF64900EAD15C200C1D6F7 /* LengthSize.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5116 BE6DF70B171CA2C500DD52B8 /* JSVideoTrackCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE6DF708171CA2C500DD52B8 /* JSVideoTrackCustom.cpp */; }; 5117 BE6DF70D171CA2C500DD52B8 /* JSVideoTrackListCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE6DF70A171CA2C500DD52B8 /* JSVideoTrackListCustom.cpp */; }; 5118 BE6DF711171CA2DA00DD52B8 /* JSAudioTrackCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE6DF70E171CA2DA00DD52B8 /* JSAudioTrackCustom.cpp */; }; 5119 BE6DF713171CA2DA00DD52B8 /* JSAudioTrackListCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE6DF710171CA2DA00DD52B8 /* JSAudioTrackListCustom.cpp */; }; 5116 5120 BE88E0C11715CE2600658D98 /* TrackListBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE88E0BF1715CE2600658D98 /* TrackListBase.cpp */; }; 5117 5121 BE88E0C21715CE2600658D98 /* TrackListBase.h in Headers */ = {isa = PBXBuildFile; fileRef = BE88E0C01715CE2600658D98 /* TrackListBase.h */; }; 5122 BE88E0D81715D2A200658D98 /* AudioTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE88E0CC1715D2A200658D98 /* AudioTrack.cpp */; }; 5123 BE88E0D91715D2A200658D98 /* AudioTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = BE88E0CD1715D2A200658D98 /* AudioTrack.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5124 BE88E0DB1715D2A200658D98 /* AudioTrackList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE88E0CF1715D2A200658D98 /* AudioTrackList.cpp */; }; 5125 BE88E0DC1715D2A200658D98 /* AudioTrackList.h in Headers */ = {isa = PBXBuildFile; fileRef = BE88E0D01715D2A200658D98 /* AudioTrackList.h */; }; 5126 BE88E0DE1715D2A200658D98 /* VideoTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE88E0D21715D2A200658D98 /* VideoTrack.cpp */; }; 5127 BE88E0DF1715D2A200658D98 /* VideoTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = BE88E0D31715D2A200658D98 /* VideoTrack.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5128 BE88E0E11715D2A200658D98 /* VideoTrackList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE88E0D51715D2A200658D98 /* VideoTrackList.cpp */; }; 5129 BE88E0E21715D2A200658D98 /* VideoTrackList.h in Headers */ = {isa = PBXBuildFile; fileRef = BE88E0D61715D2A200658D98 /* VideoTrackList.h */; }; 5130 BE8EF042171C8FF9009B48C3 /* JSAudioTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE8EF03E171C8FF9009B48C3 /* JSAudioTrack.cpp */; }; 5131 BE8EF043171C8FF9009B48C3 /* JSAudioTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = BE8EF03F171C8FF9009B48C3 /* JSAudioTrack.h */; }; 5132 BE8EF044171C8FF9009B48C3 /* JSAudioTrackList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE8EF040171C8FF9009B48C3 /* JSAudioTrackList.cpp */; }; 5133 BE8EF045171C8FF9009B48C3 /* JSAudioTrackList.h in Headers */ = {isa = PBXBuildFile; fileRef = BE8EF041171C8FF9009B48C3 /* JSAudioTrackList.h */; }; 5134 BE8EF04A171C9014009B48C3 /* JSVideoTrack.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE8EF046171C9014009B48C3 /* JSVideoTrack.cpp */; }; 5135 BE8EF04B171C9014009B48C3 /* JSVideoTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = BE8EF047171C9014009B48C3 /* JSVideoTrack.h */; }; 5136 BE8EF04C171C9014009B48C3 /* JSVideoTrackList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = BE8EF048171C9014009B48C3 /* JSVideoTrackList.cpp */; }; 5137 BE8EF04D171C9014009B48C3 /* JSVideoTrackList.h in Headers */ = {isa = PBXBuildFile; fileRef = BE8EF049171C9014009B48C3 /* JSVideoTrackList.h */; }; 5138 BEF29EEB1715DD0900C4B4C9 /* AudioTrackPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = BEF29EE91715DD0900C4B4C9 /* AudioTrackPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5139 BEF29EEC1715DD0900C4B4C9 /* VideoTrackPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = BEF29EEA1715DD0900C4B4C9 /* VideoTrackPrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 5118 5140 C046E1AC1208A9FE00BA2CF7 /* LocalizedStrings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C046E1AB1208A9FE00BA2CF7 /* LocalizedStrings.cpp */; }; 5119 5141 C0C054CB1118C8E400CE2636 /* CodeGenerator.pm in Headers */ = {isa = PBXBuildFile; fileRef = 93F8B3050A300FE100F61AB8 /* CodeGenerator.pm */; settings = {ATTRIBUTES = (Private, ); }; }; … … 6352 6374 07E116B01489C9A100EC5ACE /* JSTextTrackCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTextTrackCustom.cpp; sourceTree = "<group>"; }; 6353 6375 07E117061489EBEB00EC5ACE /* JSTextTrackCueCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSTextTrackCueCustom.cpp; sourceTree = "<group>"; }; 6354 07E38A0B148FCF0C006E1ECC /* JSTextTrackCustom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSTextTrackCustom.h; sourceTree = "<group>"; };6355 6376 0806E57912893045007CED32 /* SVGMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGMatrix.h; sourceTree = "<group>"; }; 6356 6377 080E49211255F3BD00EFCA27 /* SVGTextLayoutEngineBaseline.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SVGTextLayoutEngineBaseline.cpp; sourceTree = "<group>"; }; … … 11839 11860 BCFF648F0EAD15C200C1D6F7 /* LengthBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LengthBox.h; sourceTree = "<group>"; }; 11840 11861 BCFF64900EAD15C200C1D6F7 /* LengthSize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LengthSize.h; sourceTree = "<group>"; }; 11862 BE6DF708171CA2C500DD52B8 /* JSVideoTrackCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSVideoTrackCustom.cpp; sourceTree = "<group>"; }; 11863 BE6DF70A171CA2C500DD52B8 /* JSVideoTrackListCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSVideoTrackListCustom.cpp; sourceTree = "<group>"; }; 11864 BE6DF70E171CA2DA00DD52B8 /* JSAudioTrackCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSAudioTrackCustom.cpp; sourceTree = "<group>"; }; 11865 BE6DF710171CA2DA00DD52B8 /* JSAudioTrackListCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSAudioTrackListCustom.cpp; sourceTree = "<group>"; }; 11841 11866 BE855F7F0701E83500239769 /* WebCoreView.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreView.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 11842 11867 BE8560510701F91100239769 /* WebCoreView.m */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = WebCoreView.m; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 11843 11868 BE88E0BF1715CE2600658D98 /* TrackListBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TrackListBase.cpp; sourceTree = "<group>"; }; 11844 11869 BE88E0C01715CE2600658D98 /* TrackListBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TrackListBase.h; sourceTree = "<group>"; }; 11870 BE88E0CC1715D2A200658D98 /* AudioTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudioTrack.cpp; sourceTree = "<group>"; }; 11871 BE88E0CD1715D2A200658D98 /* AudioTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioTrack.h; sourceTree = "<group>"; }; 11872 BE88E0CE1715D2A200658D98 /* AudioTrack.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AudioTrack.idl; sourceTree = "<group>"; }; 11873 BE88E0CF1715D2A200658D98 /* AudioTrackList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AudioTrackList.cpp; sourceTree = "<group>"; }; 11874 BE88E0D01715D2A200658D98 /* AudioTrackList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioTrackList.h; sourceTree = "<group>"; }; 11875 BE88E0D11715D2A200658D98 /* AudioTrackList.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AudioTrackList.idl; sourceTree = "<group>"; }; 11876 BE88E0D21715D2A200658D98 /* VideoTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VideoTrack.cpp; sourceTree = "<group>"; }; 11877 BE88E0D31715D2A200658D98 /* VideoTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoTrack.h; sourceTree = "<group>"; }; 11878 BE88E0D41715D2A200658D98 /* VideoTrack.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = VideoTrack.idl; sourceTree = "<group>"; }; 11879 BE88E0D51715D2A200658D98 /* VideoTrackList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VideoTrackList.cpp; sourceTree = "<group>"; }; 11880 BE88E0D61715D2A200658D98 /* VideoTrackList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoTrackList.h; sourceTree = "<group>"; }; 11881 BE88E0D71715D2A200658D98 /* VideoTrackList.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = VideoTrackList.idl; sourceTree = "<group>"; }; 11882 BE8EF03E171C8FF9009B48C3 /* JSAudioTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSAudioTrack.cpp; sourceTree = "<group>"; }; 11883 BE8EF03F171C8FF9009B48C3 /* JSAudioTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSAudioTrack.h; sourceTree = "<group>"; }; 11884 BE8EF040171C8FF9009B48C3 /* JSAudioTrackList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSAudioTrackList.cpp; sourceTree = "<group>"; }; 11885 BE8EF041171C8FF9009B48C3 /* JSAudioTrackList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSAudioTrackList.h; sourceTree = "<group>"; }; 11886 BE8EF046171C9014009B48C3 /* JSVideoTrack.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSVideoTrack.cpp; sourceTree = "<group>"; }; 11887 BE8EF047171C9014009B48C3 /* JSVideoTrack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSVideoTrack.h; sourceTree = "<group>"; }; 11888 BE8EF048171C9014009B48C3 /* JSVideoTrackList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSVideoTrackList.cpp; sourceTree = "<group>"; }; 11889 BE8EF049171C9014009B48C3 /* JSVideoTrackList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSVideoTrackList.h; sourceTree = "<group>"; }; 11845 11890 BE91FC8B06133666005E3790 /* Position.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = Position.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 11846 11891 BE91FC8C06133666005E3790 /* Position.cpp */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Position.cpp; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 11847 11892 BE983D95052A2E0A00892D85 /* WebCoreKeyboardUIMode.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = WebCoreKeyboardUIMode.h; sourceTree = "<group>"; tabWidth = 8; usesTabs = 0; }; 11893 BEF29EE91715DD0900C4B4C9 /* AudioTrackPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioTrackPrivate.h; sourceTree = "<group>"; }; 11894 BEF29EEA1715DD0900C4B4C9 /* VideoTrackPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoTrackPrivate.h; sourceTree = "<group>"; }; 11848 11895 C046E1AB1208A9FE00BA2CF7 /* LocalizedStrings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LocalizedStrings.cpp; sourceTree = "<group>"; }; 11849 11896 C0DFC86F0DB6841A003EAE7C /* JSConsoleCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSConsoleCustom.cpp; sourceTree = "<group>"; }; … … 16675 16722 49EECF19105072F300099FAB /* JSArrayBufferView.cpp */, 16676 16723 49EECF1A105072F300099FAB /* JSArrayBufferView.h */, 16724 BE8EF03E171C8FF9009B48C3 /* JSAudioTrack.cpp */, 16725 BE8EF03F171C8FF9009B48C3 /* JSAudioTrack.h */, 16726 BE8EF040171C8FF9009B48C3 /* JSAudioTrackList.cpp */, 16727 BE8EF041171C8FF9009B48C3 /* JSAudioTrackList.h */, 16677 16728 65DF323309D1DE65000BE325 /* JSCanvasGradient.cpp */, 16678 16729 65DF323409D1DE65000BE325 /* JSCanvasGradient.h */, … … 16909 16960 15C77092100D3CA8005BA267 /* JSValidityState.cpp */, 16910 16961 15C77091100D3CA8005BA267 /* JSValidityState.h */, 16962 BE8EF046171C9014009B48C3 /* JSVideoTrack.cpp */, 16963 BE8EF047171C9014009B48C3 /* JSVideoTrack.h */, 16964 BE8EF048171C9014009B48C3 /* JSVideoTrackList.cpp */, 16965 BE8EF049171C9014009B48C3 /* JSVideoTrackList.h */, 16911 16966 97E9EC8B15DC492F004F2E71 /* JSVoidCallback.cpp */, 16912 16967 97E9EC8C15DC492F004F2E71 /* JSVoidCallback.h */, … … 17677 17732 isa = PBXGroup; 17678 17733 children = ( 17679 BE88E0BF1715CE2600658D98 /* TrackListBase.cpp */, 17680 BE88E0C01715CE2600658D98 /* TrackListBase.h */, 17734 BE88E0CC1715D2A200658D98 /* AudioTrack.cpp */, 17735 BE88E0CD1715D2A200658D98 /* AudioTrack.h */, 17736 BE88E0CE1715D2A200658D98 /* AudioTrack.idl */, 17737 BE88E0CF1715D2A200658D98 /* AudioTrackList.cpp */, 17738 BE88E0D01715D2A200658D98 /* AudioTrackList.h */, 17739 BE88E0D11715D2A200658D98 /* AudioTrackList.idl */, 17681 17740 0794178F166E855F009416C2 /* InbandTextTrack.cpp */, 17682 17741 07941790166E855F009416C2 /* InbandTextTrack.h */, … … 17702 17761 070334D11459FFAC008D8D45 /* TrackEvent.h */, 17703 17762 070334D21459FFAC008D8D45 /* TrackEvent.idl */, 17763 BE88E0BF1715CE2600658D98 /* TrackListBase.cpp */, 17764 BE88E0C01715CE2600658D98 /* TrackListBase.h */, 17765 BE88E0D21715D2A200658D98 /* VideoTrack.cpp */, 17766 BE88E0D31715D2A200658D98 /* VideoTrack.h */, 17767 BE88E0D41715D2A200658D98 /* VideoTrack.idl */, 17768 BE88E0D51715D2A200658D98 /* VideoTrackList.cpp */, 17769 BE88E0D61715D2A200658D98 /* VideoTrackList.h */, 17770 BE88E0D71715D2A200658D98 /* VideoTrackList.idl */, 17704 17771 F12171F316A8BC63000053CA /* WebVTTElement.cpp */, 17705 17772 F12171F416A8BC63000053CA /* WebVTTElement.h */, … … 18334 18401 490707E41219C04300D90E51 /* ANGLEWebKitBridge.cpp */, 18335 18402 490707E51219C04300D90E51 /* ANGLEWebKitBridge.h */, 18403 BEF29EE91715DD0900C4B4C9 /* AudioTrackPrivate.h */, 18404 BEF29EEA1715DD0900C4B4C9 /* VideoTrackPrivate.h */, 18336 18405 A89943270B42338700D7C802 /* BitmapImage.cpp */, 18337 18406 A89943260B42338700D7C802 /* BitmapImage.h */, … … 18816 18885 CDDE691D171DF89100A44D89 /* JSAudioBufferCustom.cpp */, 18817 18886 FDEAAAF012B02EE400DCF33B /* JSAudioContextCustom.cpp */, 18887 BE6DF70E171CA2DA00DD52B8 /* JSAudioTrackCustom.cpp */, 18888 BE6DF710171CA2DA00DD52B8 /* JSAudioTrackListCustom.cpp */, 18818 18889 FD8AA63B1695148E00D2EA68 /* JSBiquadFilterNodeCustom.cpp */, 18819 18890 8931DE5A14C44C44000DC9D2 /* JSBlobCustom.cpp */, … … 18919 18990 07E117061489EBEB00EC5ACE /* JSTextTrackCueCustom.cpp */, 18920 18991 07E116B01489C9A100EC5ACE /* JSTextTrackCustom.cpp */, 18921 07E38A0B148FCF0C006E1ECC /* JSTextTrackCustom.h */,18922 18992 07B5A30C14687D7100A81ECE /* JSTextTrackListCustom.cpp */, 18923 18993 070334E8145A1F35008D8D45 /* JSTrackCustom.cpp */, … … 18925 18995 07B5A30A14687B8400A81ECE /* JSTrackEventCustom.cpp */, 18926 18996 516BB7920CE91E6800512F79 /* JSTreeWalkerCustom.cpp */, 18997 BE6DF708171CA2C500DD52B8 /* JSVideoTrackCustom.cpp */, 18998 BE6DF70A171CA2C500DD52B8 /* JSVideoTrackListCustom.cpp */, 18927 18999 49EED14C1051971A00099FAB /* JSWebGLRenderingContextCustom.cpp */, 18928 19000 E1AD14C41297354900ACA989 /* JSWebKitCSSKeyframeRuleCustom.cpp */, … … 21001 21073 FD62F52E145898D80094B0ED /* AudioSourceProviderClient.h in Headers */, 21002 21074 FDB052E01561A42C00B500D6 /* AudioSummingJunction.h in Headers */, 21075 BEF29EEB1715DD0900C4B4C9 /* AudioTrackPrivate.h in Headers */, 21003 21076 FD31608B12B026F700C1A359 /* AudioUtilities.h in Headers */, 21004 21077 7EE6846012D26E3800E79415 /* AuthenticationCF.h in Headers */, … … 23863 23936 FD3160AF12B026F700C1A359 /* VectorMath.h in Headers */, 23864 23937 BCA257151293C010007A263D /* VerticalPositionCache.h in Headers */, 23938 BEF29EEC1715DD0900C4B4C9 /* VideoTrackPrivate.h in Headers */, 23865 23939 CEF418CF1179678C009D112C /* ViewportArguments.h in Headers */, 23866 23940 3FFFF9AE159D9B060020BBD5 /* ViewportStyleResolver.h in Headers */, … … 24050 24124 BE88E0C21715CE2600658D98 /* TrackListBase.h in Headers */, 24051 24125 FB484F4D171F821E00040755 /* TransformFunctions.h in Headers */, 24126 BE88E0D91715D2A200658D98 /* AudioTrack.h in Headers */, 24127 BE88E0DC1715D2A200658D98 /* AudioTrackList.h in Headers */, 24128 BE88E0DF1715D2A200658D98 /* VideoTrack.h in Headers */, 24129 BE88E0E21715D2A200658D98 /* VideoTrackList.h in Headers */, 24130 BE8EF043171C8FF9009B48C3 /* JSAudioTrack.h in Headers */, 24131 BE8EF045171C8FF9009B48C3 /* JSAudioTrackList.h in Headers */, 24132 BE8EF04B171C9014009B48C3 /* JSVideoTrack.h in Headers */, 24133 BE8EF04D171C9014009B48C3 /* JSVideoTrackList.h in Headers */, 24052 24134 ); 24053 24135 runOnlyForDeploymentPostprocessing = 0; … … 27001 27083 BE88E0C11715CE2600658D98 /* TrackListBase.cpp in Sources */, 27002 27084 FB484F4C171F821E00040755 /* TransformFunctions.cpp in Sources */, 27085 BE88E0D81715D2A200658D98 /* AudioTrack.cpp in Sources */, 27086 BE88E0DB1715D2A200658D98 /* AudioTrackList.cpp in Sources */, 27087 BE88E0DE1715D2A200658D98 /* VideoTrack.cpp in Sources */, 27088 BE88E0E11715D2A200658D98 /* VideoTrackList.cpp in Sources */, 27089 BE8EF042171C8FF9009B48C3 /* JSAudioTrack.cpp in Sources */, 27090 BE8EF044171C8FF9009B48C3 /* JSAudioTrackList.cpp in Sources */, 27091 BE8EF04A171C9014009B48C3 /* JSVideoTrack.cpp in Sources */, 27092 BE8EF04C171C9014009B48C3 /* JSVideoTrackList.cpp in Sources */, 27093 BE6DF70B171CA2C500DD52B8 /* JSVideoTrackCustom.cpp in Sources */, 27094 BE6DF70D171CA2C500DD52B8 /* JSVideoTrackListCustom.cpp in Sources */, 27095 BE6DF711171CA2DA00DD52B8 /* JSAudioTrackCustom.cpp in Sources */, 27096 BE6DF713171CA2DA00DD52B8 /* JSAudioTrackListCustom.cpp in Sources */, 27003 27097 ); 27004 27098 runOnlyForDeploymentPostprocessing = 0; -
trunk/Source/WebCore/bindings/gobject/GNUmakefile.am
r147924 r148785 434 434 if ENABLE_VIDEO 435 435 webkitgtk_gdom_built_h_api += \ 436 $(top_builddir)/DerivedSources/webkitdom/WebKitDOMAudioTrack.h \ 437 $(top_builddir)/DerivedSources/webkitdom/WebKitDOMAudioTrackList.h \ 436 438 $(top_builddir)/DerivedSources/webkitdom/WebKitDOMHTMLAudioElement.h \ 437 439 $(top_builddir)/DerivedSources/webkitdom/WebKitDOMHTMLVideoElement.h \ … … 440 442 $(top_builddir)/DerivedSources/webkitdom/WebKitDOMTextTrackCue.h \ 441 443 $(top_builddir)/DerivedSources/webkitdom/WebKitDOMTextTrackCueList.h \ 442 $(top_builddir)/DerivedSources/webkitdom/WebKitDOMTrackEvent.h 444 $(top_builddir)/DerivedSources/webkitdom/WebKitDOMTrackEvent.h \ 445 $(top_builddir)/DerivedSources/webkitdom/WebKitDOMVideoTrack.h \ 446 $(top_builddir)/DerivedSources/webkitdom/WebKitDOMVideoTrackList.h 443 447 webkitgtk_gdom_built_sources += \ 444 448 DerivedSources/webkitdom/WebKitDOMHTMLAudioElement.cpp \ … … 446 450 DerivedSources/webkitdom/WebKitDOMHTMLVideoElement.cpp \ 447 451 DerivedSources/webkitdom/WebKitDOMHTMLVideoElementPrivate.h \ 452 DerivedSources/webkitdom/WebKitDOMAudioTrack.cpp \ 453 DerivedSources/webkitdom/WebKitDOMAudioTrackList.cpp \ 448 454 DerivedSources/webkitdom/WebKitDOMTextTrack.cpp \ 449 455 DerivedSources/webkitdom/WebKitDOMTextTrackPrivate.h \ … … 454 460 DerivedSources/webkitdom/WebKitDOMTextTrackCueList.cpp \ 455 461 DerivedSources/webkitdom/WebKitDOMTextTrackCueListPrivate.h \ 462 DerivedSources/webkitdom/WebKitDOMVideoTrack.cpp \ 463 DerivedSources/webkitdom/WebKitDOMVideoTrackList.cpp \ 456 464 DerivedSources/webkitdom/WebKitDOMTrackEvent.cpp \ 457 465 DerivedSources/webkitdom/WebKitDOMTrackEventPrivate.h -
trunk/Source/WebCore/bindings/js/JSAudioTrackCustom.cpp
r148784 r148785 1 1 /* 2 * Copyright (C) 2011 Apple Inc. 2 * Copyright (C) 2011 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 25 25 26 26 #include "config.h" 27 #include "TrackBase.h"28 27 29 28 #if ENABLE(VIDEO_TRACK) 30 29 30 #include "JSAudioTrack.h" 31 32 #include "JSTrackCustom.h" 33 34 using namespace JSC; 35 31 36 namespace WebCore { 32 37 33 TrackBase::TrackBase(Type type, const AtomicString& label, const AtomicString& language) 34 : m_mediaElement(0) 35 , m_label(label) 36 , m_language(language) 38 void JSAudioTrack::visitChildren(JSCell* cell, SlotVisitor& visitor) 37 39 { 38 ASSERT(type != BaseTrack); 39 m_type = type; 40 } 40 JSAudioTrack* jsAudioTrack = jsCast<JSAudioTrack*>(cell); 41 ASSERT_GC_OBJECT_INHERITS(jsAudioTrack, &s_info); 42 COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); 43 ASSERT(jsAudioTrack->structure()->typeInfo().overridesVisitChildren()); 44 Base::visitChildren(jsAudioTrack, visitor); 41 45 42 TrackBase::~TrackBase() 43 { 44 } 45 46 void TrackBase::setKind(const AtomicString& kind) 47 { 48 String oldKind = m_kind; 49 50 if (isValidKind(kind)) 51 m_kind = kind; 52 else 53 m_kind = defaultKindKeyword(); 46 AudioTrack* audioTrack = static_cast<AudioTrack*>(jsAudioTrack->impl()); 47 visitor.addOpaqueRoot(root(audioTrack)); 54 48 } 55 49 -
trunk/Source/WebCore/bindings/js/JSAudioTrackListCustom.cpp
r148784 r148785 1 1 /* 2 * Copyright (C) 2011 Apple Inc. 2 * Copyright (C) 2011 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 #ifndef JSTextTrackCustom_h 27 #define JSTextTrackCustom_h 26 #include "config.h" 28 27 29 28 #if ENABLE(VIDEO_TRACK) 30 #include "JS TextTrack.h"29 #include "JSAudioTrackList.h" 31 30 32 #include "HTMLMediaElement.h" 33 #include "HTMLTrackElement.h" 31 #include "Element.h" 34 32 #include "JSNodeCustom.h" 35 #include "LoadableTextTrack.h"36 33 37 34 using namespace JSC; … … 39 36 namespace WebCore { 40 37 41 inline void* root(TextTrack* track)38 void JSAudioTrackList::visitChildren(JSCell* cell, SlotVisitor& visitor) 42 39 { 43 // If this track corresponds to a <track> element, return that element's root.44 if (track->trackType() == TextTrack::TrackElement) {45 if (HTMLTrackElement* trackElement = static_cast<LoadableTextTrack*>(track)->trackElement())46 return root(trackElement);47 }40 JSAudioTrackList* jsAudioTrackList = jsCast<JSAudioTrackList*>(cell); 41 ASSERT_GC_OBJECT_INHERITS(jsAudioTrackList, &s_info); 42 COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); 43 ASSERT(jsAudioTrackList->structure()->typeInfo().overridesVisitChildren()); 44 Base::visitChildren(jsAudioTrackList, visitor); 48 45 49 // No, return the media element's root if it has one. 50 if (track->mediaElement()) 51 return root(track->mediaElement()); 52 53 // No track element and no media element, return the text track. 54 return track; 46 AudioTrackList* audioTrackList = static_cast<AudioTrackList*>(jsAudioTrackList->impl()); 47 visitor.addOpaqueRoot(root(audioTrackList->element())); 48 audioTrackList->visitJSEventListeners(visitor); 55 49 } 56 50 57 } 51 } // namespace WebCore 58 52 59 53 #endif 60 #endif -
trunk/Source/WebCore/bindings/js/JSBindingsAllInOne.cpp
r146585 r148785 35 35 #include "JSArrayBufferCustom.cpp" 36 36 #include "JSAttrCustom.cpp" 37 #include "JSAudioTrackCustom.cpp" 38 #include "JSAudioTrackListCustom.cpp" 37 39 #include "JSBlobCustom.cpp" 38 40 #include "JSCDATASectionCustom.cpp" … … 148 150 #include "JSTrackEventCustom.cpp" 149 151 #include "JSTreeWalkerCustom.cpp" 152 #include "JSVideoTrackCustom.cpp" 153 #include "JSVideoTrackListCustom.cpp" 150 154 #include "JSWebKitCSSKeyframeRuleCustom.cpp" 151 155 #include "JSWebKitCSSKeyframesRuleCustom.cpp" -
trunk/Source/WebCore/bindings/js/JSTextTrackCueCustom.cpp
r113387 r148785 29 29 30 30 #include "JSTextTrackCue.h" 31 #include "JSTextTrackCustom.h" 31 #include "JSTrackCustom.h" 32 #include "TextTrack.h" 32 33 33 34 using namespace JSC; -
trunk/Source/WebCore/bindings/js/JSTextTrackCustom.cpp
r113387 r148785 27 27 28 28 #if ENABLE(VIDEO_TRACK) 29 #include "JSTextTrackCustom.h"30 31 29 #include "JSTextTrack.h" 32 30 #include "JSTextTrackCueList.h" 31 #include "JSTrackCustom.h" 33 32 34 33 using namespace JSC; 35 34 36 35 namespace WebCore { 37 38 bool JSTextTrackOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor)39 {40 JSTextTrack* jsTextTrack = jsCast<JSTextTrack*>(handle.get().asCell());41 TextTrack* textTrack = static_cast<TextTrack*>(jsTextTrack->impl());42 43 // If the cue is firing event listeners, its wrapper is reachable because44 // the wrapper is responsible for marking those event listeners.45 if (textTrack->isFiringEventListeners())46 return true;47 48 // If the cue has no event listeners and has no custom properties, it is not reachable.49 if (!textTrack->hasEventListeners() && !jsTextTrack->hasCustomProperties())50 return false;51 52 return visitor.containsOpaqueRoot(root(textTrack));53 }54 36 55 37 void JSTextTrack::visitChildren(JSCell* cell, SlotVisitor& visitor) -
trunk/Source/WebCore/bindings/js/JSTextTrackListCustom.cpp
r148752 r148785 29 29 #include "JSTextTrackList.h" 30 30 31 #include " HTMLMediaElement.h"31 #include "Element.h" 32 32 #include "JSNodeCustom.h" 33 33 … … 35 35 36 36 namespace WebCore { 37 38 bool JSTextTrackListOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor)39 {40 JSTextTrackList* jsTextTrackList = jsCast<JSTextTrackList*>(handle.get().asCell());41 TextTrackList* textTrackList = static_cast<TextTrackList*>(jsTextTrackList->impl());42 43 // If the list is firing event listeners, its wrapper is reachable because44 // the wrapper is responsible for marking those event listeners.45 if (textTrackList->isFiringEventListeners())46 return true;47 48 // If the list has no event listeners and has no custom properties, it is not reachable.49 if (!textTrackList->hasEventListeners() && !jsTextTrackList->hasCustomProperties())50 return false;51 52 // It is reachable if the media element parent is reachable.53 return visitor.containsOpaqueRoot(root(textTrackList->element()));54 }55 37 56 38 void JSTextTrackList::visitChildren(JSCell* cell, SlotVisitor& visitor) -
trunk/Source/WebCore/bindings/js/JSTrackCustom.cpp
r113387 r148785 30 30 #include "JSTrackCustom.h" 31 31 32 #include "JSAudioTrack.h" 32 33 #include "JSTextTrack.h" 34 #include "JSVideoTrack.h" 33 35 34 36 using namespace JSC; … … 67 69 68 70 case TrackBase::AudioTrack: 71 return CREATE_DOM_WRAPPER(exec, globalObject, AudioTrack, track); 72 break; 73 69 74 case TrackBase::VideoTrack: 70 // This should not happen until VideoTrack and AudioTrack are implemented. 71 ASSERT_NOT_REACHED(); 75 return CREATE_DOM_WRAPPER(exec, globalObject, VideoTrack, track); 72 76 break; 73 77 -
trunk/Source/WebCore/bindings/js/JSTrackCustom.h
r99261 r148785 29 29 #if ENABLE(VIDEO_TRACK) 30 30 31 #include "Element.h" 31 32 #include "JSDOMBinding.h" 33 #include "JSNodeCustom.h" 32 34 #include "TrackBase.h" 33 35 … … 37 39 JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TrackBase*); 38 40 41 inline void* root(TrackBase* track) 42 { 43 if (track->element()) 44 return root(track->element()); 45 return track; 46 } 47 39 48 } 40 49 -
trunk/Source/WebCore/bindings/js/JSVideoTrackCustom.cpp
r148784 r148785 1 1 /* 2 * Copyright (C) 2011 Apple Inc. 2 * Copyright (C) 2011 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 25 25 26 26 #include "config.h" 27 #include "TrackBase.h"28 27 29 28 #if ENABLE(VIDEO_TRACK) 30 29 30 #include "JSVideoTrack.h" 31 32 #include "JSTrackCustom.h" 33 34 using namespace JSC; 35 31 36 namespace WebCore { 32 37 33 TrackBase::TrackBase(Type type, const AtomicString& label, const AtomicString& language) 34 : m_mediaElement(0) 35 , m_label(label) 36 , m_language(language) 38 void JSVideoTrack::visitChildren(JSCell* cell, SlotVisitor& visitor) 37 39 { 38 ASSERT(type != BaseTrack); 39 m_type = type; 40 } 40 JSVideoTrack* jsVideoTrack = jsCast<JSVideoTrack*>(cell); 41 ASSERT_GC_OBJECT_INHERITS(jsVideoTrack, &s_info); 42 COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); 43 ASSERT(jsVideoTrack->structure()->typeInfo().overridesVisitChildren()); 44 Base::visitChildren(jsVideoTrack, visitor); 41 45 42 TrackBase::~TrackBase() 43 { 44 } 45 46 void TrackBase::setKind(const AtomicString& kind) 47 { 48 String oldKind = m_kind; 49 50 if (isValidKind(kind)) 51 m_kind = kind; 52 else 53 m_kind = defaultKindKeyword(); 46 VideoTrack* videoTrack = static_cast<VideoTrack*>(jsVideoTrack->impl()); 47 visitor.addOpaqueRoot(root(videoTrack)); 54 48 } 55 49 -
trunk/Source/WebCore/bindings/js/JSVideoTrackListCustom.cpp
r148784 r148785 1 1 /* 2 * Copyright (C) 2011 Apple Inc. 2 * Copyright (C) 2011 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 #ifndef JSTextTrackCustom_h 27 #define JSTextTrackCustom_h 26 #include "config.h" 28 27 29 28 #if ENABLE(VIDEO_TRACK) 30 #include "JS TextTrack.h"29 #include "JSVideoTrackList.h" 31 30 32 #include "HTMLMediaElement.h" 33 #include "HTMLTrackElement.h" 31 #include "Element.h" 34 32 #include "JSNodeCustom.h" 35 #include "LoadableTextTrack.h"36 33 37 34 using namespace JSC; … … 39 36 namespace WebCore { 40 37 41 inline void* root(TextTrack* track)38 void JSVideoTrackList::visitChildren(JSCell* cell, SlotVisitor& visitor) 42 39 { 43 // If this track corresponds to a <track> element, return that element's root.44 if (track->trackType() == TextTrack::TrackElement) {45 if (HTMLTrackElement* trackElement = static_cast<LoadableTextTrack*>(track)->trackElement())46 return root(trackElement);47 }40 JSVideoTrackList* jsVideoTrackList = jsCast<JSVideoTrackList*>(cell); 41 ASSERT_GC_OBJECT_INHERITS(jsVideoTrackList, &s_info); 42 COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); 43 ASSERT(jsVideoTrackList->structure()->typeInfo().overridesVisitChildren()); 44 Base::visitChildren(jsVideoTrackList, visitor); 48 45 49 // No, return the media element's root if it has one. 50 if (track->mediaElement()) 51 return root(track->mediaElement()); 52 53 // No track element and no media element, return the text track. 54 return track; 46 VideoTrackList* videoTrackList = static_cast<VideoTrackList*>(jsVideoTrackList->impl()); 47 visitor.addOpaqueRoot(root(videoTrackList->element())); 48 videoTrackList->visitJSEventListeners(visitor); 55 49 } 56 50 57 } 51 } // namespace WebCore 58 52 59 53 #endif 60 #endif -
trunk/Source/WebCore/dom/EventTarget.h
r147795 r148785 42 42 43 43 class AudioContext; 44 class AudioTrackList; 44 45 class DedicatedWorkerContext; 45 46 class DOMApplicationCache; … … 68 69 class TextTrack; 69 70 class TextTrackCue; 71 class VideoTrackList; 70 72 class WebSocket; 71 73 class WebKitNamedFlow; -
trunk/Source/WebCore/dom/EventTargetFactory.in
r147857 r148785 2 2 3 3 AudioContext conditional=WEB_AUDIO 4 AudioTrackList conditional=VIDEO_TRACK 4 5 BatteryManager conditional=BATTERY_STATUS 5 6 DedicatedWorkerContext conditional=WORKERS … … 38 39 TextTrackCue conditional=VIDEO_TRACK 39 40 TextTrackList conditional=VIDEO_TRACK 41 VideoTrackList conditional=VIDEO_TRACK 40 42 WebKitNamedFlow 41 43 WebSocket conditional=WEB_SOCKETS -
trunk/Source/WebCore/html/HTMLMediaElement.cpp
r148752 r148785 99 99 100 100 #if ENABLE(VIDEO_TRACK) 101 #include "AudioTrackList.h" 102 #include "AudioTrackPrivate.h" 101 103 #include "CaptionUserPreferences.h" 102 104 #include "HTMLTrackElement.h" … … 106 108 #include "TextTrackCueList.h" 107 109 #include "TextTrackList.h" 110 #include "VideoTrackList.h" 111 #include "VideoTrackPrivate.h" 108 112 #endif 109 113 … … 297 301 , m_lastTextTrackUpdateTime(-1) 298 302 , m_captionDisplayMode(CaptionUserPreferences::Automatic) 303 , m_audioTracks(0) 299 304 , m_textTracks(0) 305 , m_videoTracks(0) 300 306 , m_ignoreTrackDisplayUpdate(0) 301 307 #endif … … 331 337 #if ENABLE(VIDEO_TRACK) 332 338 document()->unregisterForCaptionPreferencesChangedCallbacks(this); 339 if (m_audioTracks) { 340 m_audioTracks->clearElement(); 341 for (unsigned i = 0; i < m_audioTracks->length(); ++i) 342 m_audioTracks->item(i)->clearClient(); 343 } 333 344 if (m_textTracks) 334 345 m_textTracks->clearElement(); … … 336 347 for (unsigned i = 0; i < m_textTracks->length(); ++i) 337 348 m_textTracks->item(i)->clearClient(); 349 } 350 if (m_videoTracks) { 351 m_videoTracks->clearElement(); 352 for (unsigned i = 0; i < m_videoTracks->length(); ++i) 353 m_videoTracks->item(i)->clearClient(); 338 354 } 339 355 #endif … … 1354 1370 } 1355 1371 1372 void HTMLMediaElement::audioTrackEnabledChanged(AudioTrack*) 1373 { 1374 // We will want to change the media controls here once they exist 1375 } 1376 1356 1377 void HTMLMediaElement::textTrackModeChanged(TextTrack* track) 1357 1378 { … … 1391 1412 configureTextTrackDisplay(); 1392 1413 updateActiveTextTrackCues(currentTime()); 1414 } 1415 1416 void HTMLMediaElement::videoTrackSelectedChanged(VideoTrack*) 1417 { 1418 // We will want to change the media controls here once they exist 1393 1419 } 1394 1420 … … 2797 2823 #if ENABLE(VIDEO_TRACK) 2798 2824 2825 void HTMLMediaElement::mediaPlayerDidAddAudioTrack(PassRefPtr<AudioTrackPrivate> prpTrack) 2826 { 2827 if (!RuntimeEnabledFeatures::webkitVideoTrackEnabled()) 2828 return; 2829 2830 addAudioTrack(AudioTrack::create(this, prpTrack)); 2831 } 2832 2799 2833 void HTMLMediaElement::mediaPlayerDidAddTextTrack(PassRefPtr<InbandTextTrackPrivate> prpTrack) 2800 2834 { … … 2829 2863 // interface, with the track attribute initialized to the text track's TextTrack object, at the media element's 2830 2864 // textTracks attribute's TextTrackList object. 2831 addTextTrack(textTrack.get()); 2865 addTextTrack(textTrack.release()); 2866 } 2867 2868 void HTMLMediaElement::mediaPlayerDidAddVideoTrack(PassRefPtr<VideoTrackPrivate> prpTrack) 2869 { 2870 if (!RuntimeEnabledFeatures::webkitVideoTrackEnabled()) 2871 return; 2872 2873 addVideoTrack(VideoTrack::create(this, prpTrack)); 2874 } 2875 2876 void HTMLMediaElement::mediaPlayerDidRemoveAudioTrack(PassRefPtr<AudioTrackPrivate> prpTrack) 2877 { 2878 prpTrack->willBeRemoved(); 2832 2879 } 2833 2880 2834 2881 void HTMLMediaElement::mediaPlayerDidRemoveTextTrack(PassRefPtr<InbandTextTrackPrivate> prpTrack) 2835 2882 { 2836 if (!RuntimeEnabledFeatures::webkitVideoTrackEnabled()) 2837 return; 2838 2839 if (!m_textTracks) 2840 return; 2841 2842 // This cast is safe because we created the InbandTextTrack with the InbandTextTrackPrivate 2843 // passed to mediaPlayerDidAddTextTrack. 2844 RefPtr<InbandTextTrack> textTrack = static_cast<InbandTextTrack*>(prpTrack->client()); 2845 if (!textTrack) 2846 return; 2847 2848 removeTextTrack(textTrack.get()); 2883 prpTrack->willBeRemoved(); 2884 } 2885 2886 void HTMLMediaElement::mediaPlayerDidRemoveVideoTrack(PassRefPtr<VideoTrackPrivate> prpTrack) 2887 { 2888 prpTrack->willBeRemoved(); 2849 2889 } 2850 2890 … … 2925 2965 } 2926 2966 2927 void HTMLMediaElement::addTextTrack(TextTrack* track) 2928 { 2967 void HTMLMediaElement::addAudioTrack(PassRefPtr<AudioTrack> track) 2968 { 2969 if (!RuntimeEnabledFeatures::webkitVideoTrackEnabled()) 2970 return; 2971 2972 audioTracks()->append(track); 2973 } 2974 2975 void HTMLMediaElement::addTextTrack(PassRefPtr<TextTrack> track) 2976 { 2977 if (!RuntimeEnabledFeatures::webkitVideoTrackEnabled()) 2978 return; 2979 2929 2980 textTracks()->append(track); 2930 2981 2931 2982 closeCaptionTracksChanged(); 2932 2983 } 2933 2984 2985 void HTMLMediaElement::addVideoTrack(PassRefPtr<VideoTrack> track) 2986 { 2987 if (!RuntimeEnabledFeatures::webkitVideoTrackEnabled()) 2988 return; 2989 2990 videoTracks()->append(track); 2991 } 2992 2993 void HTMLMediaElement::removeAudioTrack(AudioTrack* track) 2994 { 2995 if (!RuntimeEnabledFeatures::webkitVideoTrackEnabled()) 2996 return; 2997 2998 m_audioTracks->remove(track); 2999 } 3000 2934 3001 void HTMLMediaElement::removeTextTrack(TextTrack* track) 2935 3002 { 3003 if (!RuntimeEnabledFeatures::webkitVideoTrackEnabled()) 3004 return; 3005 2936 3006 TrackDisplayUpdateScope scope(this); 2937 3007 TextTrackCueList* cues = track->cues(); … … 2944 3014 } 2945 3015 3016 void HTMLMediaElement::removeVideoTrack(VideoTrack* track) 3017 { 3018 if (!RuntimeEnabledFeatures::webkitVideoTrackEnabled()) 3019 return; 3020 3021 m_videoTracks->remove(track); 3022 } 3023 2946 3024 void HTMLMediaElement::removeAllInbandTracks() 2947 3025 { 2948 if (!m_textTracks) 2949 return; 2950 2951 TrackDisplayUpdateScope scope(this); 2952 for (int i = m_textTracks->length() - 1; i >= 0; --i) { 2953 TextTrack* track = m_textTracks->item(i); 2954 2955 if (track->trackType() == TextTrack::InBand) 2956 removeTextTrack(track); 2957 } 3026 while (m_audioTracks && m_audioTracks->length()) 3027 removeAudioTrack(m_audioTracks->lastItem()); 3028 3029 if (m_textTracks) { 3030 TrackDisplayUpdateScope scope(this); 3031 for (int i = m_textTracks->length() - 1; i >= 0; --i) { 3032 TextTrack* track = m_textTracks->item(i); 3033 3034 if (track->trackType() == TextTrack::InBand) 3035 removeTextTrack(track); 3036 } 3037 } 3038 3039 while (m_videoTracks && m_videoTracks->length()) 3040 removeVideoTrack(m_videoTracks->lastItem()); 2958 3041 } 2959 3042 … … 2984 3067 2985 3068 // 6. Add the new text track to the media element's list of text tracks. 2986 addTextTrack(textTrack .get());3069 addTextTrack(textTrack); 2987 3070 2988 3071 // ... its text track readiness state to the text track loaded state ... … … 2995 3078 } 2996 3079 2997 TextTrackList* HTMLMediaElement::textTracks() 3080 AudioTrackList* HTMLMediaElement::audioTracks() 2998 3081 { 2999 3082 if (!RuntimeEnabledFeatures::webkitVideoTrackEnabled()) 3000 3083 return 0; 3001 3084 3085 if (!m_audioTracks) 3086 m_audioTracks = AudioTrackList::create(this, ActiveDOMObject::scriptExecutionContext()); 3087 3088 return m_audioTracks.get(); 3089 } 3090 3091 TextTrackList* HTMLMediaElement::textTracks() 3092 { 3093 if (!RuntimeEnabledFeatures::webkitVideoTrackEnabled()) 3094 return 0; 3095 3002 3096 if (!m_textTracks) 3003 3097 m_textTracks = TextTrackList::create(this, ActiveDOMObject::scriptExecutionContext()); 3004 3098 3005 3099 return m_textTracks.get(); 3100 } 3101 3102 VideoTrackList* HTMLMediaElement::videoTracks() 3103 { 3104 if (!RuntimeEnabledFeatures::webkitVideoTrackEnabled()) 3105 return 0; 3106 3107 if (!m_videoTracks) 3108 m_videoTracks = VideoTrackList::create(this, ActiveDOMObject::scriptExecutionContext()); 3109 3110 return m_videoTracks.get(); 3006 3111 } 3007 3112 … … 3021 3126 return; 3022 3127 3023 addTextTrack(textTrack. get());3128 addTextTrack(textTrack.release()); 3024 3129 3025 3130 // Do not schedule the track loading until parsing finishes so we don't start before all tracks … … 4923 5028 #endif 4924 5029 #if ENABLE(VIDEO_TRACK) 5030 info.addMember(m_audioTracks, "audioTracks"); 4925 5031 info.addMember(m_textTracks, "textTracks"); 5032 info.addMember(m_videoTracks, "videoTracks"); 4926 5033 info.addMember(m_textTracksWhenResourceSelectionBegan, "textTracksWhenResourceSelectionBegan"); 4927 5034 info.addMember(m_cueTree, "cueTree"); -
trunk/Source/WebCore/html/HTMLMediaElement.h
r148305 r148785 40 40 41 41 #if ENABLE(VIDEO_TRACK) 42 #include "AudioTrack.h" 42 43 #include "CaptionUserPreferences.h" 43 44 #include "PODIntervalTree.h" 44 45 #include "TextTrack.h" 45 46 #include "TextTrackCue.h" 47 #include "VideoTrack.h" 46 48 #endif 47 49 … … 71 73 72 74 #if ENABLE(VIDEO_TRACK) 75 class AudioTrackList; 76 class AudioTrackPrivate; 73 77 class InbandTextTrackPrivate; 74 78 class TextTrackList; 79 class VideoTrackList; 80 class VideoTrackPrivate; 75 81 76 82 typedef PODIntervalTree<double, TextTrackCue*> CueIntervalTree; … … 85 91 class HTMLMediaElement : public HTMLElement, public MediaPlayerClient, public MediaPlayerSupportsTypeClient, private MediaCanStartListener, public ActiveDOMObject, public MediaControllerInterface 86 92 #if ENABLE(VIDEO_TRACK) 93 , private AudioTrackClient 87 94 , private TextTrackClient 95 , private VideoTrackClient 88 96 #endif 89 97 #if USE(PLATFORM_TEXT_TRACK_MENU) … … 227 235 PassRefPtr<TextTrack> addTextTrack(const String& kind, ExceptionCode& ec) { return addTextTrack(kind, emptyString(), emptyString(), ec); } 228 236 237 AudioTrackList* audioTracks(); 229 238 TextTrackList* textTracks(); 239 VideoTrackList* videoTracks(); 240 230 241 CueList currentlyActiveCues() const { return m_currentlyActiveCues; } 231 242 232 void addTextTrack(TextTrack*); 243 void addAudioTrack(PassRefPtr<AudioTrack>); 244 void addTextTrack(PassRefPtr<TextTrack>); 245 void addVideoTrack(PassRefPtr<VideoTrack>); 246 void removeAudioTrack(AudioTrack*); 233 247 void removeTextTrack(TextTrack*); 248 void removeVideoTrack(VideoTrack*); 234 249 void removeAllInbandTracks(); 235 250 void closeCaptionTracksChanged(); … … 239 254 virtual void didRemoveTextTrack(HTMLTrackElement*); 240 255 256 virtual void mediaPlayerDidAddAudioTrack(PassRefPtr<AudioTrackPrivate>) OVERRIDE; 241 257 virtual void mediaPlayerDidAddTextTrack(PassRefPtr<InbandTextTrackPrivate>) OVERRIDE; 258 virtual void mediaPlayerDidAddVideoTrack(PassRefPtr<VideoTrackPrivate>) OVERRIDE; 259 virtual void mediaPlayerDidRemoveAudioTrack(PassRefPtr<AudioTrackPrivate>) OVERRIDE; 242 260 virtual void mediaPlayerDidRemoveTextTrack(PassRefPtr<InbandTextTrackPrivate>) OVERRIDE; 261 virtual void mediaPlayerDidRemoveVideoTrack(PassRefPtr<VideoTrackPrivate>) OVERRIDE; 243 262 244 263 #if USE(PLATFORM_TEXT_TRACK_MENU) … … 275 294 void configureTextTrackDisplay(); 276 295 void updateTextTrackDisplay(); 296 297 // AudioTrackClient 298 virtual void audioTrackEnabledChanged(AudioTrack*); 277 299 278 300 // TextTrackClient … … 284 306 virtual void textTrackAddCue(TextTrack*, PassRefPtr<TextTrackCue>); 285 307 virtual void textTrackRemoveCue(TextTrack*, PassRefPtr<TextTrackCue>); 308 309 // VideoTrackClient 310 virtual void videoTrackSelectedChanged(VideoTrack*); 286 311 287 312 bool requiresTextTrackRepresentation() const; … … 700 725 CaptionUserPreferences::CaptionDisplayMode m_captionDisplayMode; 701 726 727 RefPtr<AudioTrackList> m_audioTracks; 702 728 RefPtr<TextTrackList> m_textTracks; 729 RefPtr<VideoTrackList> m_videoTracks; 703 730 Vector<RefPtr<TextTrack> > m_textTracksWhenResourceSelectionBegan; 704 731 -
trunk/Source/WebCore/html/HTMLMediaElement.idl
r148099 r148785 117 117 TextTrack addTextTrack(in DOMString kind, in [Optional] DOMString label, in [Optional] DOMString language) 118 118 raises (DOMException); 119 readonly attribute AudioTrackList audioTracks; 119 120 readonly attribute TextTrackList textTracks; 121 readonly attribute VideoTrackList videoTracks; 120 122 #endif 121 123 -
trunk/Source/WebCore/html/track/AudioTrack.idl
r148784 r148785 1 1 /* 2 * Copyright (C) 2011 Apple Inc. All rights reserved.2 * Copyright (C) 2011 Google Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #ifndef JSTrackCustom_h 27 #define JSTrackCustom_h 26 [ 27 Conditional=VIDEO_TRACK, 28 GenerateIsReachable=ImplElementRoot, 29 JSCustomMarkFunction 30 ] interface AudioTrack { 31 readonly attribute DOMString id; 32 readonly attribute DOMString kind; 33 readonly attribute DOMString label; 34 readonly attribute DOMString language; 28 35 29 #if ENABLE(VIDEO_TRACK) 30 31 #include "JSDOMBinding.h" 32 #include "TrackBase.h" 33 34 namespace WebCore { 35 36 TrackBase* toTrack(JSC::JSValue); 37 JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TrackBase*); 38 39 } 40 41 #endif 42 #endif 36 attribute boolean enabled; 37 }; -
trunk/Source/WebCore/html/track/AudioTrackList.cpp
r148784 r148785 24 24 */ 25 25 26 #ifndef TextTrackList_h 27 #define TextTrackList_h 26 #include "config.h" 28 27 29 28 #if ENABLE(VIDEO_TRACK) 30 29 31 #include " TrackListBase.h"30 #include "AudioTrackList.h" 32 31 33 namespace WebCore { 32 #include "AudioTrack.h" 33 #include "EventNames.h" 34 34 35 class TextTrack;35 using namespace WebCore; 36 36 37 class TextTrackList : public TrackListBase { 38 public: 39 static PassRefPtr<TextTrackList> create(HTMLMediaElement* element, ScriptExecutionContext* context) 40 { 41 return adoptRef(new TextTrackList(element, context)); 37 AudioTrackList::AudioTrackList(HTMLMediaElement* element, ScriptExecutionContext* context) 38 : TrackListBase(element, context) 39 { 40 } 41 42 AudioTrackList::~AudioTrackList() 43 { 44 } 45 46 void AudioTrackList::append(PassRefPtr<AudioTrack> prpTrack) 47 { 48 RefPtr<AudioTrack> track = prpTrack; 49 50 // Insert tracks in the media file order. 51 size_t index = track->inbandTrackIndex(); 52 m_inbandTracks.insert(index, track); 53 54 ASSERT(!track->mediaElement() || track->mediaElement() == mediaElement()); 55 track->setMediaElement(mediaElement()); 56 57 scheduleAddTrackEvent(track.release()); 58 } 59 60 AudioTrack* AudioTrackList::item(unsigned index) const 61 { 62 if (index < m_inbandTracks.size()) 63 return toAudioTrack(m_inbandTracks[index].get()); 64 65 return 0; 66 } 67 68 AudioTrack* AudioTrackList::getTrackById(const AtomicString& id) const 69 { 70 for (size_t i = 0; i < m_inbandTracks.size(); ++i) { 71 AudioTrack* track = toAudioTrack(m_inbandTracks[i].get()); 72 if (track->id() == id) 73 return track; 42 74 } 43 ~TextTrackList(); 75 return 0; 76 } 44 77 45 virtual unsigned length() const OVERRIDE; 46 int getTrackIndex(TextTrack*); 47 int getTrackIndexRelativeToRenderedTracks(TextTrack*); 48 virtual bool contains(TrackBase*) const OVERRIDE; 49 50 TextTrack* item(unsigned index); 51 void append(PassRefPtr<TextTrack>); 52 virtual void remove(TrackBase*) OVERRIDE; 53 54 // EventTarget 55 virtual const AtomicString& interfaceName() const; 56 57 private: 58 TextTrackList(HTMLMediaElement*, ScriptExecutionContext*); 59 60 void invalidateTrackIndexesAfterTrack(TextTrack*); 61 62 Vector<RefPtr<TrackBase> > m_addTrackTracks; 63 Vector<RefPtr<TrackBase> > m_elementTracks; 64 }; 65 66 } // namespace WebCore 78 const AtomicString& AudioTrackList::interfaceName() const 79 { 80 return eventNames().interfaceForAudioTrackList; 81 } 67 82 68 83 #endif 69 #endif -
trunk/Source/WebCore/html/track/AudioTrackList.h
r148784 r148785 1 1 /* 2 * Copyright (C) 2011 Apple Inc. All rights reserved.2 * Copyright (C) 2011, 2012 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 #i nclude "config.h"27 # include "TrackBase.h"26 #ifndef AudioTrackList_h 27 #define AudioTrackList_h 28 28 29 29 #if ENABLE(VIDEO_TRACK) 30 30 31 #include "TrackListBase.h" 32 31 33 namespace WebCore { 32 34 33 TrackBase::TrackBase(Type type, const AtomicString& label, const AtomicString& language) 34 : m_mediaElement(0) 35 , m_label(label) 36 , m_language(language) 37 { 38 ASSERT(type != BaseTrack); 39 m_type = type; 40 } 35 class AudioTrack; 41 36 42 TrackBase::~TrackBase() 43 { 44 } 37 class AudioTrackList : public TrackListBase { 38 public: 39 static PassRefPtr<AudioTrackList> create(HTMLMediaElement* owner, ScriptExecutionContext* context) 40 { 41 return adoptRef(new AudioTrackList(owner, context)); 42 } 43 ~AudioTrackList(); 45 44 46 void TrackBase::setKind(const AtomicString& kind) 47 { 48 String oldKind = m_kind; 45 AudioTrack* getTrackById(const AtomicString&) const; 49 46 50 if (isValidKind(kind)) 51 m_kind = kind; 52 else 53 m_kind = defaultKindKeyword(); 54 } 47 AudioTrack* item(unsigned index) const; 48 AudioTrack* lastItem() const { return item(length() - 1); } 49 void append(PassRefPtr<AudioTrack>); 50 51 // EventTarget 52 virtual const AtomicString& interfaceName() const OVERRIDE; 53 54 private: 55 AudioTrackList(HTMLMediaElement*, ScriptExecutionContext*); 56 }; 55 57 56 58 } // namespace WebCore 57 59 58 60 #endif 61 #endif -
trunk/Source/WebCore/html/track/AudioTrackList.idl
r148784 r148785 26 26 [ 27 27 Conditional=VIDEO_TRACK, 28 GenerateIsReachable=ImplElementRoot, 28 29 IndexedGetter, 29 30 EventTarget, 30 JSCustomMarkFunction, 31 CustomIsReachable 32 ] interface TextTrackList { 31 JSCustomMarkFunction 32 ] interface AudioTrackList { 33 33 readonly attribute unsigned long length; 34 TextTrack item(in unsigned long index); 34 AudioTrack item(in unsigned long index); 35 AudioTrack getTrackById(in DOMString id); 35 36 37 attribute EventListener onchange; 36 38 attribute EventListener onaddtrack; 37 39 attribute EventListener onremovetrack; -
trunk/Source/WebCore/html/track/InbandTextTrack.cpp
r148540 r148785 264 264 TextTrack::removeCue(cue, ec); 265 265 } 266 266 267 void InbandTextTrack::willRemoveTextTrackPrivate(InbandTextTrackPrivate* trackPrivate) 268 { 269 UNUSED_PARAM(trackPrivate); 270 ASSERT(trackPrivate == m_private); 271 mediaElement()->removeTextTrack(this); 272 } 273 267 274 } // namespace WebCore 268 275 -
trunk/Source/WebCore/html/track/InbandTextTrack.h
r148540 r148785 81 81 virtual void removeGenericCue(InbandTextTrackPrivate*, GenericCueData*) OVERRIDE; 82 82 virtual void removeCue(TextTrackCue*, ExceptionCode&) OVERRIDE; 83 virtual void willRemoveTextTrackPrivate(InbandTextTrackPrivate*) OVERRIDE; 83 84 84 85 PassRefPtr<TextTrackCueGeneric> createCue(PassRefPtr<GenericCueData>); -
trunk/Source/WebCore/html/track/LoadableTextTrack.cpp
r147325 r148785 71 71 if (!m_loadTimer.isActive()) 72 72 m_loadTimer.startOneShot(0); 73 } 74 75 Element* LoadableTextTrack::element() 76 { 77 return m_trackElement; 73 78 } 74 79 -
trunk/Source/WebCore/html/track/LoadableTextTrack.h
r147325 r148785 61 61 size_t trackElementIndex(); 62 62 HTMLTrackElement* trackElement() { return m_trackElement; } 63 virtual Element* element() OVERRIDE; 63 64 64 65 virtual bool isDefault() const OVERRIDE { return m_isDefault; } -
trunk/Source/WebCore/html/track/TextTrack.idl
r148593 r148785 27 27 Conditional=VIDEO_TRACK, 28 28 EventTarget, 29 GenerateIsReachable=ImplElementRoot, 29 30 JSCustomMarkFunction, 30 CustomIsReachable,31 31 SkipVTableValidation 32 32 ] interface TextTrack { -
trunk/Source/WebCore/html/track/TextTrackList.cpp
r148752 r148785 31 31 32 32 #include "EventNames.h" 33 #include "HTMLMediaElement.h" 33 34 #include "InbandTextTrack.h" 34 35 #include "InbandTextTrackPrivate.h" … … 38 39 using namespace WebCore; 39 40 40 TextTrackList::TextTrackList(HTMLMediaElement* owner, ScriptExecutionContext* context)41 : TrackListBase( owner, context)41 TextTrackList::TextTrackList(HTMLMediaElement* element, ScriptExecutionContext* context) 42 : TrackListBase(element, context) 42 43 { 43 44 } … … 174 175 invalidateTrackIndexesAfterTrack(track.get()); 175 176 176 ASSERT(!track->mediaElement() || track->mediaElement() == element());177 track->setMediaElement( element());177 ASSERT(!track->mediaElement() || track->mediaElement() == mediaElement()); 178 track->setMediaElement(mediaElement()); 178 179 179 180 scheduleAddTrackEvent(track.release()); -
trunk/Source/WebCore/html/track/TextTrackList.h
r148752 r148785 53 53 54 54 // EventTarget 55 virtual const AtomicString& interfaceName() const ;55 virtual const AtomicString& interfaceName() const OVERRIDE; 56 56 57 57 private: -
trunk/Source/WebCore/html/track/TextTrackList.idl
r148593 r148785 26 26 [ 27 27 Conditional=VIDEO_TRACK, 28 GenerateIsReachable=ImplElementRoot, 28 29 IndexedGetter, 29 30 EventTarget, 30 JSCustomMarkFunction, 31 CustomIsReachable 31 JSCustomMarkFunction 32 32 ] interface TextTrackList { 33 33 readonly attribute unsigned long length; -
trunk/Source/WebCore/html/track/TrackBase.cpp
r148305 r148785 27 27 #include "TrackBase.h" 28 28 29 #include "HTMLMediaElement.h" 30 29 31 #if ENABLE(VIDEO_TRACK) 30 32 … … 44 46 } 45 47 48 Element* TrackBase::element() 49 { 50 return m_mediaElement; 51 } 52 46 53 void TrackBase::setKind(const AtomicString& kind) 47 54 { -
trunk/Source/WebCore/html/track/TrackBase.h
r148305 r148785 34 34 namespace WebCore { 35 35 36 class Element; 36 37 class HTMLMediaElement; 37 38 … … 45 46 void setMediaElement(HTMLMediaElement* element) { m_mediaElement = element; } 46 47 HTMLMediaElement* mediaElement() { return m_mediaElement; } 48 virtual Element* element(); 47 49 48 50 AtomicString kind() const { return m_kind; } -
trunk/Source/WebCore/html/track/TrackListBase.cpp
r148752 r148785 49 49 TrackListBase::~TrackListBase() 50 50 { 51 } 52 53 Element* TrackListBase::element() const 54 { 55 return m_element; 51 56 } 52 57 -
trunk/Source/WebCore/html/track/TrackListBase.h
r148752 r148785 39 39 40 40 class HTMLMediaElement; 41 class Element; 41 42 class TrackBase; 42 43 … … 60 61 61 62 void clearElement() { m_element = 0; } 62 HTMLMediaElement* element() const { return m_element; } 63 Element* element() const; 64 HTMLMediaElement* mediaElement() const { return m_element; } 63 65 64 66 bool isFiringEventListeners() { return m_dispatchingEvents; } -
trunk/Source/WebCore/html/track/VideoTrack.idl
r148784 r148785 1 1 /* 2 * Copyright (C) 2011 Apple Inc. All rights reserved.2 * Copyright (C) 2011 Google Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 24 24 */ 25 25 26 #ifndef JSTrackCustom_h 27 #define JSTrackCustom_h 26 [ 27 Conditional=VIDEO_TRACK, 28 GenerateIsReachable=ImplElementRoot, 29 JSCustomMarkFunction 30 ] interface VideoTrack { 31 readonly attribute DOMString id; 32 readonly attribute DOMString kind; 33 readonly attribute DOMString label; 34 readonly attribute DOMString language; 28 35 29 #if ENABLE(VIDEO_TRACK) 30 31 #include "JSDOMBinding.h" 32 #include "TrackBase.h" 33 34 namespace WebCore { 35 36 TrackBase* toTrack(JSC::JSValue); 37 JSC::JSValue toJS(JSC::ExecState*, JSDOMGlobalObject*, TrackBase*); 38 39 } 40 41 #endif 42 #endif 36 attribute boolean selected; 37 }; -
trunk/Source/WebCore/html/track/VideoTrackList.h
r148784 r148785 24 24 */ 25 25 26 #ifndef TextTrackList_h27 #define TextTrackList_h26 #ifndef VideoTrackList_h 27 #define VideoTrackList_h 28 28 29 29 #if ENABLE(VIDEO_TRACK) … … 33 33 namespace WebCore { 34 34 35 class TextTrack;35 class VideoTrack; 36 36 37 class TextTrackList : public TrackListBase {37 class VideoTrackList : public TrackListBase { 38 38 public: 39 static PassRefPtr< TextTrackList> create(HTMLMediaElement* element, ScriptExecutionContext* context)39 static PassRefPtr<VideoTrackList> create(HTMLMediaElement* owner, ScriptExecutionContext* context) 40 40 { 41 return adoptRef(new TextTrackList(element, context));41 return adoptRef(new VideoTrackList(owner, context)); 42 42 } 43 ~ TextTrackList();43 ~VideoTrackList(); 44 44 45 virtual unsigned length() const OVERRIDE; 46 int getTrackIndex(TextTrack*); 47 int getTrackIndexRelativeToRenderedTracks(TextTrack*); 48 virtual bool contains(TrackBase*) const OVERRIDE; 45 VideoTrack* getTrackById(const AtomicString&) const; 46 long selectedIndex() const; 49 47 50 TextTrack* item(unsigned index);51 void append(PassRefPtr<TextTrack>);52 v irtual void remove(TrackBase*) OVERRIDE;48 VideoTrack* item(unsigned) const; 49 VideoTrack* lastItem() const { return item(length() - 1); } 50 void append(PassRefPtr<VideoTrack>); 53 51 54 52 // EventTarget 55 virtual const AtomicString& interfaceName() const ;53 virtual const AtomicString& interfaceName() const OVERRIDE; 56 54 57 55 private: 58 TextTrackList(HTMLMediaElement*, ScriptExecutionContext*);56 VideoTrackList(HTMLMediaElement*, ScriptExecutionContext*); 59 57 60 void invalidateTrackIndexesAfterTrack(TextTrack*);61 62 Vector<RefPtr<TrackBase> > m_addTrackTracks;63 Vector<RefPtr<TrackBase> > m_elementTracks;64 58 }; 65 59 -
trunk/Source/WebCore/html/track/VideoTrackList.idl
r148784 r148785 26 26 [ 27 27 Conditional=VIDEO_TRACK, 28 GenerateIsReachable=ImplElementRoot, 28 29 IndexedGetter, 29 30 EventTarget, 30 JSCustomMarkFunction, 31 CustomIsReachable 32 ] interface TextTrackList { 31 JSCustomMarkFunction 32 ] interface VideoTrackList { 33 33 readonly attribute unsigned long length; 34 TextTrack item(in unsigned long index); 34 VideoTrack item(in unsigned long index); 35 VideoTrack getTrackById(in DOMString id); 35 36 37 attribute EventListener onchange; 36 38 attribute EventListener onaddtrack; 37 39 attribute EventListener onremovetrack; -
trunk/Source/WebCore/platform/graphics/AudioTrackPrivate.h
r148784 r148785 24 24 */ 25 25 26 #ifndef InbandTextTrackPrivate_h27 #define InbandTextTrackPrivate_h26 #ifndef AudioTrackPrivate_h 27 #define AudioTrackPrivate_h 28 28 29 29 #include <wtf/Forward.h> … … 36 36 namespace WebCore { 37 37 38 class InbandTextTrackPrivateClient;38 class AudioTrackPrivate; 39 39 40 class InbandTextTrackPrivate : public RefCounted<InbandTextTrackPrivate> { 41 WTF_MAKE_NONCOPYABLE(InbandTextTrackPrivate); WTF_MAKE_FAST_ALLOCATED; 40 class AudioTrackPrivateClient { 42 41 public: 43 static PassRefPtr<InbandTextTrackPrivate> create() 42 virtual ~AudioTrackPrivateClient() { } 43 virtual void willRemoveAudioTrackPrivate(AudioTrackPrivate*) = 0; 44 }; 45 46 class AudioTrackPrivate : public RefCounted<AudioTrackPrivate> { 47 WTF_MAKE_NONCOPYABLE(AudioTrackPrivate); WTF_MAKE_FAST_ALLOCATED; 48 public: 49 static PassRefPtr<AudioTrackPrivate> create() 44 50 { 45 return adoptRef(new InbandTextTrackPrivate());51 return adoptRef(new AudioTrackPrivate()); 46 52 } 47 virtual ~ InbandTextTrackPrivate() { }53 virtual ~AudioTrackPrivate() { } 48 54 49 void setClient( InbandTextTrackPrivateClient* client) { m_client = client; }50 InbandTextTrackPrivateClient* client() { return m_client; }55 void setClient(AudioTrackPrivateClient* client) { m_client = client; } 56 AudioTrackPrivateClient* client() { return m_client; } 51 57 52 enum Mode { 53 Disabled, 54 Hidden, 55 Showing 56 }; 57 virtual void setMode(Mode mode) { m_mode = mode; }; 58 virtual InbandTextTrackPrivate::Mode mode() const { return m_mode; } 58 virtual void setEnabled(bool enabled) { m_enabled = enabled; }; 59 virtual bool enabled() const { return m_enabled; } 59 60 60 enum Kind { 61 Subtitles, 62 Captions, 63 Descriptions, 64 Chapters, 65 Metadata, 66 Forced, 67 None 68 }; 69 virtual Kind kind() const { return Subtitles; } 70 virtual bool isClosedCaptions() const { return false; } 71 virtual bool containsOnlyForcedSubtitles() const { return false; } 72 virtual bool isMainProgramContent() const { return true; } 73 virtual bool isEasyToRead() const { return false; } 61 enum Kind { Alternative, Description, Main, MainDesc, Translation, Commentary, None }; 62 virtual Kind kind() const { return None; } 74 63 64 virtual AtomicString id() const { return emptyAtom; } 75 65 virtual AtomicString label() const { return emptyAtom; } 76 66 virtual AtomicString language() const { return emptyAtom; } 77 virtual bool isDefault() const { return false; }78 67 79 virtual int textTrackIndex() const { return 0; } 68 virtual int audioTrackIndex() const { return 0; } 69 70 void willBeRemoved() 71 { 72 if (m_client) 73 m_client->willRemoveAudioTrackPrivate(this); 74 } 80 75 81 76 protected: 82 InbandTextTrackPrivate() 83 : m_client(0) 84 , m_mode(Disabled) 77 AudioTrackPrivate() 78 : m_enabled(false) 85 79 { 86 80 } 87 81 88 82 private: 89 InbandTextTrackPrivateClient* m_client;90 Mode m_mode;83 AudioTrackPrivateClient* m_client; 84 bool m_enabled; 91 85 }; 92 86 -
trunk/Source/WebCore/platform/graphics/InbandTextTrackPrivate.h
r148285 r148785 27 27 #define InbandTextTrackPrivate_h 28 28 29 #if ENABLE(VIDEO_TRACK) 30 31 #include "InbandTextTrackPrivateClient.h" 29 32 #include <wtf/Forward.h> 30 33 #include <wtf/Noncopyable.h> … … 32 35 #include <wtf/text/AtomicString.h> 33 36 34 #if ENABLE(VIDEO_TRACK)35 36 37 namespace WebCore { 37 38 class InbandTextTrackPrivateClient;39 38 40 39 class InbandTextTrackPrivate : public RefCounted<InbandTextTrackPrivate> { … … 79 78 virtual int textTrackIndex() const { return 0; } 80 79 80 void willBeRemoved() 81 { 82 if (m_client) 83 m_client->willRemoveTextTrackPrivate(this); 84 } 85 81 86 protected: 82 87 InbandTextTrackPrivate() -
trunk/Source/WebCore/platform/graphics/InbandTextTrackPrivateClient.h
r148540 r148785 129 129 public: 130 130 virtual ~InbandTextTrackPrivateClient() { } 131 131 132 132 virtual void addGenericCue(InbandTextTrackPrivate*, PassRefPtr<GenericCueData>) = 0; 133 133 virtual void updateGenericCue(InbandTextTrackPrivate*, GenericCueData*) = 0; 134 134 virtual void removeGenericCue(InbandTextTrackPrivate*, GenericCueData*) = 0; 135 136 virtual void willRemoveTextTrackPrivate(InbandTextTrackPrivate*) = 0; 135 137 }; 136 138 -
trunk/Source/WebCore/platform/graphics/MediaPlayer.cpp
r148305 r148785 1104 1104 1105 1105 #if ENABLE(VIDEO_TRACK) 1106 void MediaPlayer::add TextTrack(PassRefPtr<InbandTextTrackPrivate> track)1106 void MediaPlayer::addAudioTrack(PassRefPtr<AudioTrackPrivate> track) 1107 1107 { 1108 1108 if (!m_mediaPlayerClient) 1109 1109 return; 1110 1110 1111 m_mediaPlayerClient->mediaPlayerDidAdd TextTrack(track);1112 } 1113 1114 void MediaPlayer::remove TextTrack(PassRefPtr<InbandTextTrackPrivate> track)1111 m_mediaPlayerClient->mediaPlayerDidAddAudioTrack(track); 1112 } 1113 1114 void MediaPlayer::removeAudioTrack(PassRefPtr<AudioTrackPrivate> track) 1115 1115 { 1116 1116 if (!m_mediaPlayerClient) 1117 1117 return; 1118 1118 1119 m_mediaPlayerClient->mediaPlayerDidRemoveAudioTrack(track); 1120 } 1121 1122 void MediaPlayer::addTextTrack(PassRefPtr<InbandTextTrackPrivate> track) 1123 { 1124 if (!m_mediaPlayerClient) 1125 return; 1126 1127 m_mediaPlayerClient->mediaPlayerDidAddTextTrack(track); 1128 } 1129 1130 void MediaPlayer::removeTextTrack(PassRefPtr<InbandTextTrackPrivate> track) 1131 { 1132 if (!m_mediaPlayerClient) 1133 return; 1134 1119 1135 m_mediaPlayerClient->mediaPlayerDidRemoveTextTrack(track); 1136 } 1137 1138 void MediaPlayer::addVideoTrack(PassRefPtr<VideoTrackPrivate> track) 1139 { 1140 if (!m_mediaPlayerClient) 1141 return; 1142 1143 m_mediaPlayerClient->mediaPlayerDidAddVideoTrack(track); 1144 } 1145 1146 void MediaPlayer::removeVideoTrack(PassRefPtr<VideoTrackPrivate> track) 1147 { 1148 if (!m_mediaPlayerClient) 1149 return; 1150 1151 m_mediaPlayerClient->mediaPlayerDidRemoveVideoTrack(track); 1120 1152 } 1121 1153 -
trunk/Source/WebCore/platform/graphics/MediaPlayer.h
r148636 r148785 33 33 #endif 34 34 35 #include "AudioTrackPrivate.h" 35 36 #include "InbandTextTrackPrivate.h" 36 37 #include "IntRect.h" … … 38 39 #include "LayoutRect.h" 39 40 #include "Timer.h" 41 #include "VideoTrackPrivate.h" 40 42 #include <wtf/Forward.h> 41 43 #include <wtf/HashSet.h> … … 219 221 220 222 #if ENABLE(VIDEO_TRACK) 223 virtual void mediaPlayerDidAddAudioTrack(PassRefPtr<AudioTrackPrivate>) { } 221 224 virtual void mediaPlayerDidAddTextTrack(PassRefPtr<InbandTextTrackPrivate>) { } 225 virtual void mediaPlayerDidAddVideoTrack(PassRefPtr<VideoTrackPrivate>) { } 226 virtual void mediaPlayerDidRemoveAudioTrack(PassRefPtr<AudioTrackPrivate>) { } 222 227 virtual void mediaPlayerDidRemoveTextTrack(PassRefPtr<InbandTextTrackPrivate>) { } 228 virtual void mediaPlayerDidRemoveVideoTrack(PassRefPtr<VideoTrackPrivate>) { } 223 229 224 230 virtual void textTrackRepresentationBoundsChanged(const IntRect&) { } … … 451 457 452 458 #if ENABLE(VIDEO_TRACK) 459 void addAudioTrack(PassRefPtr<AudioTrackPrivate>); 453 460 void addTextTrack(PassRefPtr<InbandTextTrackPrivate>); 461 void addVideoTrack(PassRefPtr<VideoTrackPrivate>); 462 void removeAudioTrack(PassRefPtr<AudioTrackPrivate>); 454 463 void removeTextTrack(PassRefPtr<InbandTextTrackPrivate>); 464 void removeVideoTrack(PassRefPtr<VideoTrackPrivate>); 455 465 456 466 bool requiresTextTrackRepresentation() const; -
trunk/Source/WebCore/platform/graphics/VideoTrackPrivate.h
r148784 r148785 24 24 */ 25 25 26 #ifndef InbandTextTrackPrivate_h27 #define InbandTextTrackPrivate_h26 #ifndef VideoTrackPrivate_h 27 #define VideoTrackPrivate_h 28 28 29 29 #include <wtf/Forward.h> … … 36 36 namespace WebCore { 37 37 38 class InbandTextTrackPrivateClient;38 class VideoTrackPrivate; 39 39 40 class InbandTextTrackPrivate : public RefCounted<InbandTextTrackPrivate> { 41 WTF_MAKE_NONCOPYABLE(InbandTextTrackPrivate); WTF_MAKE_FAST_ALLOCATED; 40 class VideoTrackPrivateClient { 42 41 public: 43 static PassRefPtr<InbandTextTrackPrivate> create() 42 virtual ~VideoTrackPrivateClient() { } 43 virtual void willRemoveVideoTrackPrivate(VideoTrackPrivate*) = 0; 44 }; 45 46 class VideoTrackPrivate : public RefCounted<VideoTrackPrivate> { 47 WTF_MAKE_NONCOPYABLE(VideoTrackPrivate); WTF_MAKE_FAST_ALLOCATED; 48 public: 49 static PassRefPtr<VideoTrackPrivate> create() 44 50 { 45 return adoptRef(new InbandTextTrackPrivate());51 return adoptRef(new VideoTrackPrivate()); 46 52 } 47 virtual ~ InbandTextTrackPrivate() { }53 virtual ~VideoTrackPrivate() { } 48 54 49 void setClient( InbandTextTrackPrivateClient* client) { m_client = client; }50 InbandTextTrackPrivateClient* client() { return m_client; }55 void setClient(VideoTrackPrivateClient* client) { m_client = client; } 56 VideoTrackPrivateClient* client() { return m_client; } 51 57 52 enum Mode { 53 Disabled, 54 Hidden, 55 Showing 56 }; 57 virtual void setMode(Mode mode) { m_mode = mode; }; 58 virtual InbandTextTrackPrivate::Mode mode() const { return m_mode; } 58 virtual void setSelected(bool selected) { m_selected = selected; }; 59 virtual bool selected() const { return m_selected; } 59 60 60 enum Kind { 61 Subtitles, 62 Captions, 63 Descriptions, 64 Chapters, 65 Metadata, 66 Forced, 67 None 68 }; 69 virtual Kind kind() const { return Subtitles; } 70 virtual bool isClosedCaptions() const { return false; } 71 virtual bool containsOnlyForcedSubtitles() const { return false; } 72 virtual bool isMainProgramContent() const { return true; } 73 virtual bool isEasyToRead() const { return false; } 61 enum Kind { Alternative, Captions, Main, Sign, Subtitles, Commentary, None }; 62 virtual Kind kind() const { return None; } 74 63 64 virtual AtomicString id() const { return emptyAtom; } 75 65 virtual AtomicString label() const { return emptyAtom; } 76 66 virtual AtomicString language() const { return emptyAtom; } 77 virtual bool isDefault() const { return false; }78 67 79 virtual int textTrackIndex() const { return 0; } 68 virtual int videoTrackIndex() const { return 0; } 69 70 void willBeRemoved() 71 { 72 if (m_client) 73 m_client->willRemoveVideoTrackPrivate(this); 74 } 80 75 81 76 protected: 82 InbandTextTrackPrivate() 83 : m_client(0) 84 , m_mode(Disabled) 77 VideoTrackPrivate() 78 : m_selected(false) 85 79 { 86 80 } 87 81 88 82 private: 89 InbandTextTrackPrivateClient* m_client;90 Mode m_mode;83 VideoTrackPrivateClient* m_client; 84 bool m_selected; 91 85 }; 92 86
Note: See TracChangeset
for help on using the changeset viewer.