1/* 2 * Copyright (C) 2012 Google Inc. All rights reserved. 3 * Copyright (C) 2013 Nokia Corporation and/or its subsidiary(-ies). 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 14 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 15 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 16 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 17 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 18 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 19 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 20 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 */ 26 27#include "config.h" 28 29#if ENABLE(MEDIA_STREAM) 30 31#include "MediaConstraintsMock.h" 32 33#include "MediaConstraints.h" 34 35namespace WebCore { 36 37bool isSupported(const String& constraint) 38{ 39 return notFound != constraint.find("_and_supported_"); 40} 41 42bool isValid(const String& constraint) 43{ 44 return isSupported(constraint) || notFound != constraint.find("valid_"); 45} 46 47String MediaConstraintsMock::verifyConstraints(PassRefPtr<MediaConstraints> prpConstraints) 48{ 49 RefPtr<MediaConstraints> constraints = prpConstraints; 50 51 Vector<MediaConstraint> mandatoryConstraints; 52 constraints->getMandatoryConstraints(mandatoryConstraints); 53 if (mandatoryConstraints.size()) { 54 for (size_t i = 0; i < mandatoryConstraints.size(); ++i) { 55 const MediaConstraint& curr = mandatoryConstraints[i]; 56 if (!isSupported(curr.m_name) || curr.m_value != "1") 57 return curr.m_name; 58 } 59 } 60 61 Vector<MediaConstraint> optionalConstraints; 62 constraints->getOptionalConstraints(optionalConstraints); 63 if (optionalConstraints.size()) { 64 for (size_t i = 0; i < optionalConstraints.size(); ++i) { 65 const MediaConstraint& curr = optionalConstraints[i]; 66 if (!isValid(curr.m_name) || curr.m_value != "0") 67 return curr.m_name; 68 } 69 } 70 71 return emptyString(); 72} 73 74} // namespace WebCore 75 76#endif // ENABLE(MEDIA_STREAM) 77