1 /* 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #ifndef WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_INFO_H_ 12 #define WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_INFO_H_ 13 14 #include "webrtc/modules/video_capture/device_info_impl.h" 15 #include "webrtc/modules/video_capture/mac/qtkit/video_capture_qtkit_utility.h" 16 #include "webrtc/modules/video_capture/video_capture_impl.h" 17 18 19 @class VideoCaptureMacQTKitInfoObjC; 20 21 namespace webrtc 22 { 23 namespace videocapturemodule 24 { 25 26 class VideoCaptureMacQTKitInfo: public DeviceInfoImpl 27 { 28 public: 29 30 VideoCaptureMacQTKitInfo(const int32_t id); 31 virtual ~VideoCaptureMacQTKitInfo(); 32 33 int32_t Init(); 34 35 virtual uint32_t NumberOfDevices(); 36 37 /* 38 * Returns the available capture devices. 39 * deviceNumber -[in] index of capture device 40 * deviceNameUTF8 - friendly name of the capture device 41 * deviceUniqueIdUTF8 - unique name of the capture device if it exist. 42 * Otherwise same as deviceNameUTF8 43 * productUniqueIdUTF8 - unique product id if it exist. Null terminated 44 * otherwise. 45 */ 46 virtual int32_t GetDeviceName( 47 uint32_t deviceNumber, char* deviceNameUTF8, 48 uint32_t deviceNameLength, char* deviceUniqueIdUTF8, 49 uint32_t deviceUniqueIdUTF8Length, 50 char* productUniqueIdUTF8 = 0, 51 uint32_t productUniqueIdUTF8Length = 0); 52 53 /* 54 * Returns the number of capabilities for this device 55 */ 56 virtual int32_t NumberOfCapabilities( 57 const char* deviceUniqueIdUTF8); 58 59 /* 60 * Gets the capabilities of the named device 61 */ 62 virtual int32_t GetCapability( 63 const char* deviceUniqueIdUTF8, 64 const uint32_t deviceCapabilityNumber, 65 VideoCaptureCapability& capability); 66 67 /* 68 * Gets the capability that best matches the requested width, height and frame rate. 69 * Returns the deviceCapabilityNumber on success. 70 */ 71 virtual int32_t GetBestMatchedCapability( 72 const char* deviceUniqueIdUTF8, 73 const VideoCaptureCapability& requested, 74 VideoCaptureCapability& resulting); 75 76 /* 77 * Display OS /capture device specific settings dialog 78 */ 79 virtual int32_t DisplayCaptureSettingsDialogBox( 80 const char* deviceUniqueIdUTF8, 81 const char* dialogTitleUTF8, void* parentWindow, 82 uint32_t positionX, uint32_t positionY); 83 84 protected: 85 virtual int32_t CreateCapabilityMap( 86 const char* deviceUniqueIdUTF8); 87 88 VideoCaptureMacQTKitInfoObjC* _captureInfo; 89 }; 90 } // namespace videocapturemodule 91 } // namespace webrtc 92 93 #endif // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_MAC_QTKIT_VIDEO_CAPTURE_QTKIT_INFO_H_ 94