1 #ifndef WEBRTC_MODULES_BROWSER_CAPTURE_MAIN_SOURCE_BROWSER_CAPTURE_IMPL_H_
2 #define WEBRTC_MODULES_BROWSER_CAPTURE_MAIN_SOURCE_BROWSER_CAPTURE_IMPL_H_
3 
4 #include "webrtc/modules/video_capture/video_capture.h"
5 
6 using namespace webrtc::videocapturemodule;
7 
8 namespace webrtc {
9 
10   class BrowserDeviceInfoImpl : public VideoCaptureModule::DeviceInfo {
11   public:
NumberOfDevices()12     virtual uint32_t NumberOfDevices() { return 1; }
13 
Refresh()14     virtual int32_t Refresh() { return 0; }
15 
16     virtual int32_t GetDeviceName(uint32_t deviceNumber,
17                                   char* deviceNameUTF8,
18                                   uint32_t deviceNameLength,
19                                   char* deviceUniqueIdUTF8,
20                                   uint32_t deviceUniqueIdUTF8Length,
21                                   char* productUniqueIdUTF8 = NULL,
22                                   uint32_t productUniqueIdUTF8Length = 0,
23                                   pid_t* pid = 0) {
24       deviceNameUTF8 = const_cast<char*>(kDeviceName);
25       deviceUniqueIdUTF8 = const_cast<char*>(kUniqueDeviceName);
26       productUniqueIdUTF8 =  const_cast<char*>(kProductUniqueId);
27       return 1;
28     };
29 
30 
NumberOfCapabilities(const char * deviceUniqueIdUTF8)31     virtual int32_t NumberOfCapabilities(const char* deviceUniqueIdUTF8) {
32       return 0;
33     }
34 
GetCapability(const char * deviceUniqueIdUTF8,const uint32_t deviceCapabilityNumber,VideoCaptureCapability & capability)35     virtual int32_t GetCapability(const char* deviceUniqueIdUTF8,
36                                   const uint32_t deviceCapabilityNumber,
37                                   VideoCaptureCapability& capability) { return 0;};
38 
GetOrientation(const char * deviceUniqueIdUTF8,VideoRotation & orientation)39     virtual int32_t GetOrientation(const char* deviceUniqueIdUTF8,
40                                    VideoRotation& orientation) { return 0; }
41 
GetBestMatchedCapability(const char * deviceUniqueIdUTF8,const VideoCaptureCapability & requested,VideoCaptureCapability & resulting)42     virtual int32_t GetBestMatchedCapability(const char* deviceUniqueIdUTF8,
43                                              const VideoCaptureCapability& requested,
44                                              VideoCaptureCapability& resulting) { return 0;}
45 
DisplayCaptureSettingsDialogBox(const char * deviceUniqueIdUTF8,const char * dialogTitleUTF8,void * parentWindow,uint32_t positionX,uint32_t positionY)46     virtual int32_t DisplayCaptureSettingsDialogBox(const char* deviceUniqueIdUTF8,
47                                                     const char* dialogTitleUTF8,
48                                                     void* parentWindow,
49                                                     uint32_t positionX,
50                                                     uint32_t positionY) { return 0; }
51 
BrowserDeviceInfoImpl()52     BrowserDeviceInfoImpl() : kDeviceName("browser"), kUniqueDeviceName("browser"), kProductUniqueId("browser") {}
53 
CreateDeviceInfo()54     static BrowserDeviceInfoImpl* CreateDeviceInfo() {
55       return new BrowserDeviceInfoImpl();
56     }
~BrowserDeviceInfoImpl()57     virtual ~BrowserDeviceInfoImpl() {}
58 
59   private:
60     const char* kDeviceName;
61     const char* kUniqueDeviceName;
62     const char* kProductUniqueId;
63 
64   };
65 }
66 #endif
67