Chromium Code Reviews| Index: content/browser/media_stream/media_stream_provider.h |
| =================================================================== |
| --- content/browser/media_stream/media_stream_provider.h (revision 0) |
| +++ content/browser/media_stream/media_stream_provider.h (revision 0) |
| @@ -0,0 +1,92 @@ |
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#ifndef CONTENT_BROWSER_MEDIA_STREAM_MEDIA_STREAM_PROVIDER_H_ |
| +#define CONTENT_BROWSER_MEDIA_STREAM_MEDIA_STREAM_PROVIDER_H_ |
| + |
| +#include <list> |
| +#include <string> |
| + |
| +namespace media_stream { |
| + |
| +typedef int MediaCaptureSessionId; |
|
wjia(left Chromium)
2011/05/06 00:11:31
Is this the same SessionId received by VideoCaptur
mflodman1
2011/05/06 11:52:38
Yes it is. We need to discuss where to put the typ
|
| + |
| +enum MediaStreamType { |
| + kNoService = 0, |
| + kAudioCapture, |
| + kVideoCapture |
| +}; |
| + |
| +enum MediaStreamProviderError { |
| + kMediaStreamOk = 0, |
| + kInvalidMediaStreamType, |
| + kInvalidSession, |
| + kUnknownSession, |
| + kDeviceNotAvailable, |
| + kDeviceAlreadyInUse, |
| + kUnknownError |
| +}; |
| + |
| +struct MediaCaptureDeviceInfo { |
| + MediaStreamType stream_type; |
| + std::string name; |
| + std::string device_id; |
| + bool in_use; |
| + |
| + MediaCaptureDeviceInfo() : stream_type(kNoService), name(), device_id(), |
| + in_use(false) {} |
| + MediaCaptureDeviceInfo(MediaStreamType service_param, |
| + const std::string name_param, |
| + const std::string device_param, |
| + bool opened) |
| + : stream_type(service_param), |
| + name(name_param), |
| + device_id(device_param), |
| + in_use(opened) {} |
| +}; |
| + |
| +typedef std::list<MediaCaptureDeviceInfo> MediaCaptureDevices; |
| + |
| +// Feedback class |
| +class MediaStreamProviderListener { |
|
wjia(left Chromium)
2011/05/06 00:11:31
Could you add comments on those API's?
mflodman1
2011/05/06 11:52:38
Done.
|
| + public: |
| + virtual void Opened(MediaStreamType stream_type, |
| + MediaCaptureSessionId capture_session_id) = 0; |
| + |
| + virtual void Closed(MediaStreamType stream_type, |
| + MediaCaptureSessionId capture_session_id) = 0; |
| + |
| + virtual void DevicesEnumerated(MediaStreamType stream_type, |
| + const MediaCaptureDevices& devices) = 0; |
| + |
| + virtual void Error(MediaStreamType stream_type, |
| + MediaCaptureSessionId capture_session_id, |
| + MediaStreamProviderError error) = 0; |
| + |
| + protected: |
| + virtual ~MediaStreamProviderListener() {} |
| +}; |
| + |
| +class MediaStreamProvider { |
| + public: |
| + virtual int Register(MediaStreamType service_type, |
| + MediaStreamProviderListener* listener) = 0; |
| + |
| + virtual void Unregister(MediaStreamType stream_type, |
| + MediaStreamProviderListener* listener) = 0; |
| + |
| + virtual void EnumerateDevices(MediaStreamType stream_type) = 0; |
| + |
| + virtual MediaCaptureSessionId Open(MediaStreamType stream_type, |
| + const MediaCaptureDeviceInfo& device) = 0; |
| + |
| + virtual void Close(MediaStreamType stream_type, |
| + MediaCaptureSessionId capture_session_id) = 0; |
| + |
| + protected: |
| + virtual ~MediaStreamProvider() {} |
| +}; |
|
wjia(left Chromium)
2011/05/06 00:11:31
one empty line here.
mflodman1
2011/05/06 11:52:38
Done.
|
| +} // namespace media_stream |
| + |
| +#endif // CONTENT_BROWSER_MEDIA_STREAM_MEDIA_STREAM_PROVIDER_H_ |
|
mflodman1
2011/05/05 11:11:22
Will add newline in next upload
mflodman1
2011/05/06 11:52:38
Done.
|