Index: talk/media/devices/devicemanager.h |
diff --git a/talk/media/devices/devicemanager.h b/talk/media/devices/devicemanager.h |
deleted file mode 100644 |
index 982c67953173023ee8408d0ec91f75cea965262d..0000000000000000000000000000000000000000 |
--- a/talk/media/devices/devicemanager.h |
+++ /dev/null |
@@ -1,211 +0,0 @@ |
-/* |
- * libjingle |
- * Copyright 2004 Google Inc. |
- * |
- * Redistribution and use in source and binary forms, with or without |
- * modification, are permitted provided that the following conditions are met: |
- * |
- * 1. Redistributions of source code must retain the above copyright notice, |
- * this list of conditions and the following disclaimer. |
- * 2. Redistributions in binary form must reproduce the above copyright notice, |
- * this list of conditions and the following disclaimer in the documentation |
- * and/or other materials provided with the distribution. |
- * 3. The name of the author may not be used to endorse or promote products |
- * derived from this software without specific prior written permission. |
- * |
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED |
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO |
- * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; |
- * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, |
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR |
- * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF |
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- */ |
- |
-#ifndef TALK_MEDIA_DEVICES_DEVICEMANAGER_H_ |
-#define TALK_MEDIA_DEVICES_DEVICEMANAGER_H_ |
- |
-#include <map> |
-#include <string> |
-#include <vector> |
- |
-#include "talk/media/base/device.h" |
-#include "talk/media/base/screencastid.h" |
-#include "talk/media/base/videocapturerfactory.h" |
-#include "talk/media/base/videocommon.h" |
-#include "webrtc/base/scoped_ptr.h" |
-#include "webrtc/base/sigslot.h" |
-#include "webrtc/base/stringencode.h" |
-#include "webrtc/base/window.h" |
- |
-namespace rtc { |
- |
-class DesktopDescription; |
-class WindowDescription; |
-class WindowPicker; |
- |
-} |
-namespace cricket { |
- |
-class VideoCapturer; |
- |
-// DeviceManagerInterface - interface to manage the audio and |
-// video devices on the system. |
-class DeviceManagerInterface { |
- public: |
- virtual ~DeviceManagerInterface() { } |
- |
- // Initialization |
- virtual bool Init() = 0; |
- virtual void Terminate() = 0; |
- |
- // Capabilities |
- virtual int GetCapabilities() = 0; |
- |
- // Device enumeration |
- virtual bool GetAudioInputDevices(std::vector<Device>* devices) = 0; |
- virtual bool GetAudioOutputDevices(std::vector<Device>* devices) = 0; |
- |
- virtual bool GetAudioInputDevice(const std::string& name, Device* out) = 0; |
- virtual bool GetAudioOutputDevice(const std::string& name, Device* out) = 0; |
- |
- virtual bool GetVideoCaptureDevices(std::vector<Device>* devs) = 0; |
- virtual bool GetVideoCaptureDevice(const std::string& name, Device* out) = 0; |
- |
- // If the device manager needs to create video capturers, here is |
- // how to control which video capturers are created. These take |
- // ownership of the factories. |
- virtual void SetVideoDeviceCapturerFactory( |
- VideoDeviceCapturerFactory* video_device_capturer_factory) = 0; |
- virtual void SetScreenCapturerFactory( |
- ScreenCapturerFactory* screen_capturer_factory) = 0; |
- |
- // Caps the capture format according to max format for capturers created |
- // by CreateVideoCapturer(). See ConstrainSupportedFormats() in |
- // videocapturer.h for more detail. |
- // Note that once a VideoCapturer has been created, calling this API will |
- // not affect it. |
- virtual void SetVideoCaptureDeviceMaxFormat( |
- const std::string& usb_id, |
- const VideoFormat& max_format) = 0; |
- virtual void ClearVideoCaptureDeviceMaxFormat(const std::string& usb_id) = 0; |
- |
- // Device creation |
- virtual VideoCapturer* CreateVideoCapturer(const Device& device) const = 0; |
- |
- virtual bool GetWindows( |
- std::vector<rtc::WindowDescription>* descriptions) = 0; |
- virtual bool GetDesktops( |
- std::vector<rtc::DesktopDescription>* descriptions) = 0; |
- virtual VideoCapturer* CreateScreenCapturer( |
- const ScreencastId& screenid) const = 0; |
- |
- sigslot::signal0<> SignalDevicesChange; |
- |
- static const char kDefaultDeviceName[]; |
-}; |
- |
-class DeviceWatcher { |
- public: |
- explicit DeviceWatcher(DeviceManagerInterface* dm) {} |
- virtual ~DeviceWatcher() {} |
- virtual bool Start() { return true; } |
- virtual void Stop() {} |
-}; |
- |
-class DeviceManagerFactory { |
- public: |
- static DeviceManagerInterface* Create(); |
- |
- private: |
- DeviceManagerFactory() {} |
-}; |
- |
-class DeviceManager : public DeviceManagerInterface { |
- public: |
- DeviceManager(); |
- virtual ~DeviceManager(); |
- |
- // Initialization |
- virtual bool Init(); |
- virtual void Terminate(); |
- |
- // Capabilities |
- virtual int GetCapabilities(); |
- |
- // Device enumeration |
- virtual bool GetAudioInputDevices(std::vector<Device>* devices); |
- virtual bool GetAudioOutputDevices(std::vector<Device>* devices); |
- |
- virtual bool GetAudioInputDevice(const std::string& name, Device* out); |
- virtual bool GetAudioOutputDevice(const std::string& name, Device* out); |
- |
- virtual bool GetVideoCaptureDevices(std::vector<Device>* devs); |
- virtual bool GetVideoCaptureDevice(const std::string& name, Device* out); |
- |
- virtual void SetVideoDeviceCapturerFactory( |
- VideoDeviceCapturerFactory* video_device_capturer_factory) { |
- video_device_capturer_factory_.reset(video_device_capturer_factory); |
- } |
- virtual void SetScreenCapturerFactory( |
- ScreenCapturerFactory* screen_capturer_factory) { |
- screen_capturer_factory_.reset(screen_capturer_factory); |
- } |
- |
- |
- virtual void SetVideoCaptureDeviceMaxFormat(const std::string& usb_id, |
- const VideoFormat& max_format); |
- virtual void ClearVideoCaptureDeviceMaxFormat(const std::string& usb_id); |
- |
- // TODO(pthatcher): Rename to CreateVideoDeviceCapturer. |
- virtual VideoCapturer* CreateVideoCapturer(const Device& device) const; |
- |
- virtual bool GetWindows( |
- std::vector<rtc::WindowDescription>* descriptions); |
- virtual bool GetDesktops( |
- std::vector<rtc::DesktopDescription>* descriptions); |
- virtual VideoCapturer* CreateScreenCapturer( |
- const ScreencastId& screenid) const; |
- |
- // The exclusion_list MUST be a NULL terminated list. |
- static bool FilterDevices(std::vector<Device>* devices, |
- const char* const exclusion_list[]); |
- bool initialized() const { return initialized_; } |
- |
- protected: |
- virtual bool GetAudioDevices(bool input, std::vector<Device>* devs); |
- virtual bool GetAudioDevice(bool is_input, const std::string& name, |
- Device* out); |
- virtual bool GetDefaultVideoCaptureDevice(Device* device); |
- bool IsInWhitelist(const std::string& key, VideoFormat* video_format) const; |
- virtual bool GetMaxFormat(const Device& device, |
- VideoFormat* video_format) const; |
- |
- void set_initialized(bool initialized) { initialized_ = initialized; } |
- |
- void set_watcher(DeviceWatcher* watcher) { watcher_.reset(watcher); } |
- DeviceWatcher* watcher() { return watcher_.get(); } |
- |
- private: |
- // The exclusion_list MUST be a NULL terminated list. |
- static bool ShouldDeviceBeIgnored(const std::string& device_name, |
- const char* const exclusion_list[]); |
- bool GetFakeVideoCaptureDevice(const std::string& name, Device* out) const; |
- VideoCapturer* MaybeConstructFakeVideoCapturer(const Device& device) const; |
- |
- bool initialized_; |
- rtc::scoped_ptr< |
- VideoDeviceCapturerFactory> video_device_capturer_factory_; |
- rtc::scoped_ptr< |
- ScreenCapturerFactory> screen_capturer_factory_; |
- std::map<std::string, VideoFormat> max_formats_; |
- rtc::scoped_ptr<DeviceWatcher> watcher_; |
- rtc::scoped_ptr<rtc::WindowPicker> window_picker_; |
-}; |
- |
-} // namespace cricket |
- |
-#endif // TALK_MEDIA_DEVICES_DEVICEMANAGER_H_ |