1 /*
2  *  Copyright (c) 2013 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_IOS_DEVICE_INFO_IOS_H_
12 #define WEBRTC_MODULES_VIDEO_CAPTURE_IOS_DEVICE_INFO_IOS_H_
13 
14 #include "webrtc/modules/video_capture/device_info_impl.h"
15 
16 #include <map>
17 
18 namespace webrtc {
19 namespace videocapturemodule {
20 class DeviceInfoIos : public DeviceInfoImpl {
21  public:
22   explicit DeviceInfoIos(const int32_t device_id);
23   virtual ~DeviceInfoIos();
24 
25   // Implementation of DeviceInfoImpl.
26   int32_t Init() override;
27   uint32_t NumberOfDevices() override;
28   int32_t GetDeviceName(uint32_t deviceNumber,
29                         char* deviceNameUTF8,
30                         uint32_t deviceNameLength,
31                         char* deviceUniqueIdUTF8,
32                         uint32_t deviceUniqueIdUTF8Length,
33                         char* productUniqueIdUTF8 = 0,
34                         uint32_t productUniqueIdUTF8Length = 0) override;
35 
36   int32_t NumberOfCapabilities(const char* deviceUniqueIdUTF8) override;
37 
38   int32_t GetCapability(const char* deviceUniqueIdUTF8,
39                         const uint32_t deviceCapabilityNumber,
40                         VideoCaptureCapability& capability) override;
41 
42   int32_t DisplayCaptureSettingsDialogBox(const char* deviceUniqueIdUTF8,
43                                           const char* dialogTitleUTF8,
44                                           void* parentWindow,
45                                           uint32_t positionX,
46                                           uint32_t positionY) override;
47 
48   int32_t GetOrientation(const char* deviceUniqueIdUTF8,
49                          VideoRotation& orientation) override;
50 
51   int32_t CreateCapabilityMap(const char* device_unique_id_utf8) override;
52 
53  private:
54   std::map<std::string, VideoCaptureCapabilities> _capabilitiesMap;
55 };
56 
57 }  // namespace videocapturemodule
58 }  // namespace webrtc
59 
60 #endif  // WEBRTC_MODULES_VIDEO_CAPTURE_IOS_DEVICE_INFO_IOS_H_
61