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 NON_EXPORTED_BASE(webrtc::MediaConstraintsInterface)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 void AddOptional(const std::string& key, const std::string& value); 31 // Adds a mandatory constraint, optionally overriding an existing one. 32 // If the constraint is already set and |override_if_exists| is false, 33 // the function will return false, otherwise true. 34 bool AddMandatory(const std::string& key, const std::string& value, 35 bool override_if_exists); 36 37 protected: 38 Constraints mandatory_; 39 Constraints optional_; 40 }; 41 42 } // namespace content 43 44 45 #endif // CONTENT_RENDERER_MEDIA_RTC_MEDIA_CONSTRAINTS_H_ 46