bool VTTParser::parseFloatPercentageValuePair(VTTScanner& valueScanner, char delimiter, FloatPoint& valuePair) { float firstCoord; if (!parseFloatPercentageValue(valueScanner, firstCoord)) return false; if (!valueScanner.scan(delimiter)) return false; float secondCoord; if (!parseFloatPercentageValue(valueScanner, secondCoord)) return false; valuePair = FloatPoint(firstCoord, secondCoord); return true; }
FloatPoint WebVTTParser::parseFloatPercentageValuePair(const String& value, char delimiter, bool& isValidSetting) { // The delimiter can't be the first or second value because a pair of // percentages (x%,y%) implies that at least the first two characters // are the first percentage value. size_t delimiterOffset = value.find(delimiter, 2); if (delimiterOffset == kNotFound || delimiterOffset == value.length() - 1) { isValidSetting = false; return FloatPoint(0, 0); } bool isFirstValueValid; float firstCoord = parseFloatPercentageValue(value.substring(0, delimiterOffset), isFirstValueValid); bool isSecondValueValid; float secondCoord = parseFloatPercentageValue(value.substring(delimiterOffset + 1, value.length() - 1), isSecondValueValid); isValidSetting = isFirstValueValid && isSecondValueValid; return FloatPoint(firstCoord, secondCoord); }