1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)// found in the LICENSE file.
4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#ifndef CONTENT_RENDERER_MEDIA_MOCK_MEDIA_STREAM_CONSTRAINT_H_
6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#define CONTENT_RENDERER_MEDIA_MOCK_MEDIA_STREAM_CONSTRAINT_H_
7a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include <string>
9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include <vector>
10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebMediaConstraints.h"
12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)namespace content {
14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class MockMediaConstraintFactory {
16a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) public:
17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  MockMediaConstraintFactory();
18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  ~MockMediaConstraintFactory();
19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
20a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  blink::WebMediaConstraints CreateWebMediaConstraints();
21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  void AddMandatory(const std::string& key, int value);
22a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  void AddMandatory(const std::string& key, double value);
23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void AddMandatory(const std::string& key, const std::string& value);
24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void AddMandatory(const std::string& key, bool value);
25a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  void AddOptional(const std::string& key, int value);
26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  void AddOptional(const std::string& key, double value);
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void AddOptional(const std::string& key, const std::string& value);
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)  void AddOptional(const std::string& key, bool value);
29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  void DisableDefaultAudioConstraints();
30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) private:
32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  std::vector<blink::WebMediaConstraint> mandatory_;
33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  std::vector<blink::WebMediaConstraint> optional_;
34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)};
35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
36a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)}  // namespace content
37a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
38a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)#endif  // CONTENT_RENDERER_MEDIA_MOCK_MEDIA_STREAM_CONSTRAINT_H_
39