-
jer.noble@apple.com authored
https://bugs.webkit.org/show_bug.cgi?id=88787 Source/JavaScriptCore: Re-export WTF::MediaTime from JavaScriptCore. Reviewed by Eric Carlson. * JavaScriptCore.order: * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Source/WTF: Reviewed by Eric Carlson. Add a new MediaTime class which implements rational math operations. Add common constructors and assignment operators: * wtf/MediaTime.cpp: Added. (WTF::MediaTime::MediaTime): (WTF::MediaTime::~MediaTime): (WTF::MediaTime::operator=): Add common math operators: * wtf/MediaTime.cpp: (WTF::MediaTime::operator+): (WTF::MediaTime::operator-): (WTF::MediaTime::operator<): (WTF::MediaTime::operator>): (WTF::MediaTime::operator==): (WTF::MediaTime::operator>=): (WTF::MediaTime::operator<=): Add functions to check the MeiaTime time type flags: * wtf/MediaTime.h: (WTF::MediaTime::isValid): (WTF::MediaTime::isInvalid): (WTF::MediaTime::hasBeenRounde): (WTF::MediaTime::isPositiveInfinite): (WTF::MediaTime::isNegativeInfinite): (WTF::MediaTime::isIndefinite): Add constants for commonly used MediaTime values: (WTF::MediaTime::zeroTime): (WTF::MediaTime::invalidTime): (WTF::MediaTime::positiveInfiniteTime): (WTF::MediaTime::negativeInfiniteTime): (WTF::MediaTime::indefiniteTime): Add explicit conversion functions to convert to and from floating point values. * wtf/MediaTime.cpp: (WTF::MediaTime::createWithFloat): (WTF::MediaTime::createWithDouble): (WTF::MediaTime::toFloat): (WTF::MediaTime::toDouble): Add some useful exported functions: * wtf/MediaTime.cpp: (WTF::MediaTime::compare): Master function for the comparison operators above. (WTF::MediaTime::setTimeScale): Rescale the time value to a new time scale. (WTF::abs): Return an absolute value for the current MediaTime. Static utility functions to implement the above: * wtf/MediaTime.cpp: (WTF::greatestCommonDivisor): (WTF::leastCommonMultiple): (WTF::signum): Windows-only implementations of isinf and signbit: * wtf/MediaTime.cpp: (std::isinf): (std::signbit): Add the new class to platform build files: * GNUmakefile.list.am: * WTF.gypi: * WTF.pro: * WTF.vcproj/WTF.vcproj: * WTF.xcodeproj/project.pbxproj: Tools: Add unit tests for the WTF::MediaTime class. Reviewed by Eric Carlson. * TestWebKitAPI/GNUmakefile.am: * TestWebKitAPI/TestWebKitAPI.gypi: * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * TestWebKitAPI/Tests/WTF/MediaTime.cpp: Added. * TestWebKitAPI/win/TestWebKitAPI.vcproj: (WTF::operator<<): (TestWebKitAPI): (TestWebKitAPI::TEST): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@123878 268f45cc-cd09-0410-ab3c-d52691b4dbfc
50ecb28a