1b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* 2b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 3b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 4b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Use of this source code is governed by a BSD-style license 5b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * that can be found in the LICENSE file in the root of the source 6b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * tree. An additional intellectual property rights grant can be found 7b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * in the file PATENTS. All contributing project authors may 8b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * be found in the AUTHORS file in the root of the source tree. 9b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 10b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 11b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#ifndef WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_LINUX_DEVICE_INFO_LINUX_H_ 12b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#define WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_LINUX_DEVICE_INFO_LINUX_H_ 13b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 1487c29b570711208c5f74bf9eaffbea549de866c7pbos@webrtc.org#include "webrtc/modules/video_capture/device_info_impl.h" 1587c29b570711208c5f74bf9eaffbea549de866c7pbos@webrtc.org#include "webrtc/modules/video_capture/video_capture_impl.h" 16b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 17b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgnamespace webrtc 18b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 19b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgnamespace videocapturemodule 20b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 21b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgclass DeviceInfoLinux: public DeviceInfoImpl 22b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org{ 23b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgpublic: 24f7e44d647cd0f893a185dfbe043cb313cab29fd0pbos@webrtc.org DeviceInfoLinux(const int32_t id); 25b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org virtual ~DeviceInfoLinux(); 26f7e44d647cd0f893a185dfbe043cb313cab29fd0pbos@webrtc.org virtual uint32_t NumberOfDevices(); 27f7e44d647cd0f893a185dfbe043cb313cab29fd0pbos@webrtc.org virtual int32_t GetDeviceName( 28f7e44d647cd0f893a185dfbe043cb313cab29fd0pbos@webrtc.org uint32_t deviceNumber, 29b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org char* deviceNameUTF8, 30f7e44d647cd0f893a185dfbe043cb313cab29fd0pbos@webrtc.org uint32_t deviceNameLength, 31b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org char* deviceUniqueIdUTF8, 32f7e44d647cd0f893a185dfbe043cb313cab29fd0pbos@webrtc.org uint32_t deviceUniqueIdUTF8Length, 33b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org char* productUniqueIdUTF8=0, 34f7e44d647cd0f893a185dfbe043cb313cab29fd0pbos@webrtc.org uint32_t productUniqueIdUTF8Length=0); 35b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org /* 36b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Fills the membervariable _captureCapabilities with capabilites for the given device name. 37b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 38f7e44d647cd0f893a185dfbe043cb313cab29fd0pbos@webrtc.org virtual int32_t CreateCapabilityMap (const char* deviceUniqueIdUTF8); 39f7e44d647cd0f893a185dfbe043cb313cab29fd0pbos@webrtc.org virtual int32_t DisplayCaptureSettingsDialogBox( 40b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const char* /*deviceUniqueIdUTF8*/, 41b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org const char* /*dialogTitleUTF8*/, 42b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org void* /*parentWindow*/, 43f7e44d647cd0f893a185dfbe043cb313cab29fd0pbos@webrtc.org uint32_t /*positionX*/, 44f7e44d647cd0f893a185dfbe043cb313cab29fd0pbos@webrtc.org uint32_t /*positionY*/) { return -1;} 4579c884c86807f45d9629b75b75261e9bc239643efischman@webrtc.org int32_t FillCapabilities(int fd); 46f7e44d647cd0f893a185dfbe043cb313cab29fd0pbos@webrtc.org int32_t Init(); 47b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgprivate: 48b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 49b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org bool IsDeviceNameMatches(const char* name, const char* deviceUniqueIdUTF8); 50b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org}; 513b89e10f31160da35b408fd00cb8f89d2b08862dpbos@webrtc.org} // namespace videocapturemodule 523b89e10f31160da35b408fd00cb8f89d2b08862dpbos@webrtc.org} // namespace webrtc 53b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org#endif // WEBRTC_MODULES_VIDEO_CAPTURE_MAIN_SOURCE_LINUX_DEVICE_INFO_LINUX_H_ 54