blob: bec5c694baf5192a0bc7093f4f00254f36b1a668 [file] [log] [blame]
sjlee@webrtc.orgd690eab2013-08-14 22:07:04 +00001/*
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
kthelgason20a52e12016-09-30 00:43:12 -070011#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_OBJC_DEVICE_INFO_H_
12#define WEBRTC_MODULES_VIDEO_CAPTURE_OBJC_DEVICE_INFO_H_
sjlee@webrtc.orgd690eab2013-08-14 22:07:04 +000013
14#include "webrtc/modules/video_capture/device_info_impl.h"
15
Yuriy Shevchuk39f2b0c2015-05-14 14:16:13 -070016#include <map>
kthelgason20a52e12016-09-30 00:43:12 -070017#include <string>
Yuriy Shevchuk39f2b0c2015-05-14 14:16:13 -070018
sjlee@webrtc.orgd690eab2013-08-14 22:07:04 +000019namespace webrtc {
20namespace videocapturemodule {
21class DeviceInfoIos : public DeviceInfoImpl {
22 public:
23 explicit DeviceInfoIos(const int32_t device_id);
24 virtual ~DeviceInfoIos();
25
26 // Implementation of DeviceInfoImpl.
kjellander@webrtc.org14665ff2015-03-04 12:58:35 +000027 int32_t Init() override;
28 uint32_t NumberOfDevices() override;
29 int32_t GetDeviceName(uint32_t deviceNumber,
30 char* deviceNameUTF8,
31 uint32_t deviceNameLength,
32 char* deviceUniqueIdUTF8,
33 uint32_t deviceUniqueIdUTF8Length,
34 char* productUniqueIdUTF8 = 0,
35 uint32_t productUniqueIdUTF8Length = 0) override;
sjlee@webrtc.orgd690eab2013-08-14 22:07:04 +000036
kjellander@webrtc.org14665ff2015-03-04 12:58:35 +000037 int32_t NumberOfCapabilities(const char* deviceUniqueIdUTF8) override;
sjlee@webrtc.orgd690eab2013-08-14 22:07:04 +000038
kjellander@webrtc.org14665ff2015-03-04 12:58:35 +000039 int32_t GetCapability(const char* deviceUniqueIdUTF8,
40 const uint32_t deviceCapabilityNumber,
41 VideoCaptureCapability& capability) override;
sjlee@webrtc.orgd690eab2013-08-14 22:07:04 +000042
kjellander@webrtc.org14665ff2015-03-04 12:58:35 +000043 int32_t DisplayCaptureSettingsDialogBox(const char* deviceUniqueIdUTF8,
44 const char* dialogTitleUTF8,
45 void* parentWindow,
46 uint32_t positionX,
47 uint32_t positionY) override;
sjlee@webrtc.orgd690eab2013-08-14 22:07:04 +000048
kjellander@webrtc.org14665ff2015-03-04 12:58:35 +000049 int32_t GetOrientation(const char* deviceUniqueIdUTF8,
50 VideoRotation& orientation) override;
sjlee@webrtc.orgd690eab2013-08-14 22:07:04 +000051
kjellander@webrtc.org14665ff2015-03-04 12:58:35 +000052 int32_t CreateCapabilityMap(const char* device_unique_id_utf8) override;
Yuriy Shevchuk39f2b0c2015-05-14 14:16:13 -070053
54 private:
55 std::map<std::string, VideoCaptureCapabilities> _capabilitiesMap;
sjlee@webrtc.orgd690eab2013-08-14 22:07:04 +000056};
57
58} // namespace videocapturemodule
59} // namespace webrtc
60
kthelgason20a52e12016-09-30 00:43:12 -070061#endif // WEBRTC_MODULES_VIDEO_CAPTURE_OBJC_DEVICE_INFO_H_