bool nsMediaFragmentURIParser::ParseNPTSec(nsDependentSubstring& aString, double& aSec) { nsDependentSubstring original(aString); if (aString.Length() == 0) { return PR_FALSE; } PRUint32 index = FirstNonDigit(aString, 0); if (index == 0) { return PR_FALSE; } nsDependentSubstring n(aString, 0, index); PRInt32 ec; PRInt32 s = PromiseFlatString(n).ToInteger(&ec); if (NS_FAILED(ec)) { return PR_FALSE; } aString.Rebind(aString, index); double fraction = 0.0; if (!ParseNPTFraction(aString, fraction)) { aString.Rebind(original, 0); return PR_FALSE; } aSec = s + fraction; return PR_TRUE; }
bool nsMediaFragmentURIParser::ParseNPTSec(nsDependentSubstring& aString, double& aSec) { nsDependentSubstring original(aString); if (aString.Length() == 0) { return false; } uint32_t index = FirstNonDigit(aString, 0); if (index == 0) { return false; } nsDependentSubstring n(aString, 0, index); nsresult ec; int32_t s = PromiseFlatString(n).ToInteger(&ec); if (NS_FAILED(ec)) { return false; } aString.Rebind(aString, index); double fraction = 0.0; if (!ParseNPTFraction(aString, fraction)) { aString.Rebind(original, 0); return false; } aSec = s + fraction; return true; }
static bool ParseInteger(nsDependentSubstring& aString, int32_t& aResult) { uint32_t index = FirstNonDigit(aString, 0); if (index == 0) { return false; } nsDependentSubstring n(aString, 0, index); nsresult ec; int32_t s = PromiseFlatString(n).ToInteger(&ec); if (NS_FAILED(ec)) { return false; } aString.Rebind(aString, index); aResult = s; return true; }
bool nsMediaFragmentURIParser::ParseNPTFraction(nsDependentSubstring& aString, double& aFraction) { double fraction = 0.0; if (aString.Length() > 0 && aString[0] == '.') { PRUint32 index = FirstNonDigit(aString, 1); if (index > 1) { nsDependentSubstring number(aString, 0, index); PRInt32 ec; fraction = PromiseFlatString(number).ToDouble(&ec); if (NS_FAILED(ec)) { return PR_FALSE; } } aString.Rebind(aString, index); } aFraction = fraction; return PR_TRUE; }
bool nsMediaFragmentURIParser::ParseNPTHH(nsDependentSubstring& aString, PRUint32& aHour) { if (aString.Length() == 0) { return PR_FALSE; } PRUint32 index = FirstNonDigit(aString, 0); if (index == 0) { return PR_FALSE; } nsDependentSubstring n(aString, 0, index); PRInt32 ec; PRInt32 u = PromiseFlatString(n).ToInteger(&ec); if (NS_FAILED(ec)) { return PR_FALSE; } aString.Rebind(aString, index); aHour = u; return PR_TRUE; }
bool nsMediaFragmentURIParser::ParseNPTHH(nsDependentSubstring& aString, uint32_t& aHour) { if (aString.Length() == 0) { return false; } uint32_t index = FirstNonDigit(aString, 0); if (index == 0) { return false; } nsDependentSubstring n(aString, 0, index); nsresult ec; int32_t u = PromiseFlatString(n).ToInteger(&ec); if (NS_FAILED(ec)) { return false; } aString.Rebind(aString, index); aHour = u; return true; }