1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef CONTENT_RENDERER_MEDIA_RTC_MEDIA_CONSTRAINTS_H_ 6 #define CONTENT_RENDERER_MEDIA_RTC_MEDIA_CONSTRAINTS_H_ 7 8 #include "base/compiler_specific.h" 9 #include "content/common/content_export.h" 10 #include "third_party/libjingle/source/talk/app/webrtc/mediaconstraintsinterface.h" 11 12 namespace blink { 13 class WebMediaConstraints; 14 } 15 16 namespace content { 17 18 // RTCMediaConstraints acts as a glue layer between WebKits MediaConstraints and 19 // libjingle webrtc::MediaConstraintsInterface. 20 // Constraints are used by PeerConnection and getUserMedia API calls. 21 class CONTENT_EXPORT RTCMediaConstraints 22 : public NON_EXPORTED_BASE(webrtc::MediaConstraintsInterface) { 23 public: 24 RTCMediaConstraints(); 25 explicit RTCMediaConstraints( 26 const blink::WebMediaConstraints& constraints); 27 virtual ~RTCMediaConstraints(); 28 virtual const Constraints& GetMandatory() const OVERRIDE; 29 virtual const Constraints& GetOptional() const OVERRIDE; 30 // Adds a mandatory constraint, optionally overriding an existing one. 31 // If the constraint is already set and |override_if_exists| is false, 32 // the function will return false, otherwise true. 33 bool AddMandatory(const std::string& key, const std::string& value, 34 bool override_if_exists); 35 // As above, but against the optional constraints. 36 bool AddOptional(const std::string& key, const std::string& value, 37 bool override_if_exists); 38 39 protected: 40 bool AddConstraint(Constraints* constraints, 41 const std::string& key, 42 const std::string& value, 43 bool override_if_exists); 44 Constraints mandatory_; 45 Constraints optional_; 46 }; 47 48 } // namespace content 49 50 51 #endif // CONTENT_RENDERER_MEDIA_RTC_MEDIA_CONSTRAINTS_H_ 52