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
18namespace webrtc {
19namespace videocapturemodule {
20class 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