1// Copyright 2014 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_MEDIA_STREAM_CONSTRAINTS_UTIL_H_
6#define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_CONSTRAINTS_UTIL_H_
7
8#include <string>
9
10#include "content/common/content_export.h"
11
12namespace blink {
13class WebMediaConstraints;
14class WebString;
15}
16
17namespace content {
18
19// Method to get boolean value of constraint with |name| from constraints.
20// Returns true if the constraint is specified in either mandatory or optional
21// constraints.
22bool CONTENT_EXPORT GetConstraintValueAsBoolean(
23    const blink::WebMediaConstraints& constraints,
24    const std::string& name,
25    bool* value);
26
27// Method to get int value of constraint with |name| from constraints.
28// Returns true if the constraint is specified in either mandatory or Optional
29// constraints.
30bool CONTENT_EXPORT GetConstraintValueAsInteger(
31    const blink::WebMediaConstraints& constraints,
32    const std::string& name,
33    int* value);
34
35// Method to get double precision value of constraint with |name| from
36// constraints. Returns true if the constraint is specified in either mandatory
37// or Optional constraints.
38bool CONTENT_EXPORT GetConstraintValueAsDouble(
39    const blink::WebMediaConstraints& constraints,
40    const std::string& name,
41    double* value);
42
43// Method to get std::string value of constraint with |name| from constraints.
44// Returns true if the constraint is specified in either mandatory or Optional
45// constraints.
46bool CONTENT_EXPORT GetConstraintValueAsString(
47    const blink::WebMediaConstraints& constraints,
48    const std::string& name,
49    std::string* value);
50
51// Method to get boolean value of constraint with |name| from the
52// mandatory constraints.
53bool CONTENT_EXPORT GetMandatoryConstraintValueAsBoolean(
54    const blink::WebMediaConstraints& constraints,
55    const std::string& name,
56    bool* value);
57
58// Method to get int value of constraint with |name| from the
59// mandatory constraints.
60bool CONTENT_EXPORT GetMandatoryConstraintValueAsInteger(
61    const blink::WebMediaConstraints& constraints,
62    const std::string& name,
63    int* value);
64
65// Method to get double value of constraint with |name| from the
66// mandatory constraints.
67bool CONTENT_EXPORT GetMandatoryConstraintValueAsDouble(
68    const blink::WebMediaConstraints& constraints,
69    const std::string& name,
70    double* value);
71
72// Method to get bool value of constraint with |name| from the
73// optional constraints.
74bool CONTENT_EXPORT GetOptionalConstraintValueAsBoolean(
75    const blink::WebMediaConstraints& constraints,
76    const std::string& name,
77    bool* value);
78
79// Method to get int value of constraint with |name| from the
80// optional constraints.
81bool CONTENT_EXPORT GetOptionalConstraintValueAsInteger(
82    const blink::WebMediaConstraints& constraints,
83    const std::string& name,
84    int* value);
85
86// Method to get double value of constraint with |name| from the
87// optional constraints.
88bool CONTENT_EXPORT GetOptionalConstraintValueAsDouble(
89    const blink::WebMediaConstraints& constraints,
90    const std::string& name,
91    double* value);
92
93}  // namespace content
94
95#endif  // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_CONSTRAINTS_UTIL_H_
96