media_stream_options.h revision a36e5920737c6adbddd3e43b760e5de8431db6e0
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_COMMON_MEDIA_MEDIA_STREAM_OPTIONS_H_
6#define CONTENT_COMMON_MEDIA_MEDIA_STREAM_OPTIONS_H_
7
8#include <string>
9#include <vector>
10
11#include "content/common/content_export.h"
12#include "content/public/common/media_stream_request.h"
13
14namespace content {
15
16// MediaStreamConstraint keys for constraints that are passed to getUserMedia.
17CONTENT_EXPORT extern const char kMediaStreamSource[];
18CONTENT_EXPORT extern const char kMediaStreamSourceId[];
19CONTENT_EXPORT extern const char kMediaStreamSourceInfoId[];
20CONTENT_EXPORT extern const char kMediaStreamSourceTab[];
21CONTENT_EXPORT extern const char kMediaStreamSourceScreen[];
22CONTENT_EXPORT extern const char kMediaStreamSourceSystem[];
23
24// StreamOptions is a Chromium representation of WebKit's
25// WebUserMediaRequest Options. It describes the components
26// in a request for a new media stream.
27struct CONTENT_EXPORT StreamOptions {
28  StreamOptions();
29  StreamOptions(MediaStreamType audio_type, MediaStreamType video_type);
30
31  // If not NO_SERVICE, the stream shall contain an audio input stream.
32  MediaStreamType audio_type;
33  std::string audio_device_id;
34
35  // If not NO_SERVICE, the stream shall contain a video input stream.
36  MediaStreamType video_type;
37  std::string video_device_id;
38};
39
40// StreamDeviceInfo describes information about a device.
41struct CONTENT_EXPORT StreamDeviceInfo {
42  static const int kNoId;
43
44  StreamDeviceInfo();
45  StreamDeviceInfo(MediaStreamType service_param,
46                   const std::string& name_param,
47                   const std::string& device_param,
48                   bool opened);
49  StreamDeviceInfo(MediaStreamType service_param,
50                   const std::string& name_param,
51                   const std::string& device_param,
52                   int sample_rate,
53                   int channel_layout,
54                   bool opened);
55  static bool IsEqual(const StreamDeviceInfo& first,
56                      const StreamDeviceInfo& second);
57
58  MediaStreamDevice device;
59  // Set to true if the device has been opened, false otherwise.
60  bool in_use;
61  // Id for this capture session. Unique for all sessions of the same type.
62  int session_id;
63};
64
65typedef std::vector<StreamDeviceInfo> StreamDeviceInfoArray;
66
67}  // namespace content
68
69#endif  // CONTENT_COMMON_MEDIA_MEDIA_STREAM_OPTIONS_H_
70