OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef PPAPI_CPP_DEV_VIDEO_CAPTURE_DEV_H_ | 5 #ifndef PPAPI_CPP_DEV_VIDEO_CAPTURE_DEV_H_ |
6 #define PPAPI_CPP_DEV_VIDEO_CAPTURE_DEV_H_ | 6 #define PPAPI_CPP_DEV_VIDEO_CAPTURE_DEV_H_ |
7 | 7 |
| 8 #include <vector> |
| 9 |
8 #include "ppapi/c/dev/pp_video_capture_dev.h" | 10 #include "ppapi/c/dev/pp_video_capture_dev.h" |
9 #include "ppapi/cpp/resource.h" | 11 #include "ppapi/cpp/resource.h" |
10 | 12 |
11 namespace pp { | 13 namespace pp { |
12 | 14 |
| 15 class CompletionCallback; |
| 16 class DeviceRef_Dev; |
13 class Instance; | 17 class Instance; |
14 | 18 |
15 class VideoCapture_Dev : public Resource { | 19 class VideoCapture_Dev : public Resource { |
16 public: | 20 public: |
17 explicit VideoCapture_Dev(const Instance& instance); | 21 explicit VideoCapture_Dev(const Instance& instance); |
18 VideoCapture_Dev(PP_Resource resource); | 22 VideoCapture_Dev(PP_Resource resource); |
19 VideoCapture_Dev(const VideoCapture_Dev& other); | 23 VideoCapture_Dev(const VideoCapture_Dev& other); |
20 | 24 |
| 25 virtual ~VideoCapture_Dev(); |
| 26 |
| 27 VideoCapture_Dev& operator=(const VideoCapture_Dev& other); |
| 28 |
21 // Returns true if the required interface is available. | 29 // Returns true if the required interface is available. |
22 static bool IsAvailable(); | 30 static bool IsAvailable(); |
23 | 31 |
24 int32_t StartCapture(const PP_VideoCaptureDeviceInfo_Dev& requested_info, | 32 // |devices| must stay alive until either this VideoCapture_Dev object goes |
25 uint32_t buffer_count); | 33 // away or |callback| is run. |
| 34 int32_t EnumerateDevices(std::vector<DeviceRef_Dev>* devices, |
| 35 const CompletionCallback& callback); |
| 36 int32_t Open(const DeviceRef_Dev& device_ref, |
| 37 const PP_VideoCaptureDeviceInfo_Dev& requested_info, |
| 38 uint32_t buffer_count, |
| 39 const CompletionCallback& callback); |
| 40 int32_t StartCapture(); |
26 int32_t ReuseBuffer(uint32_t buffer); | 41 int32_t ReuseBuffer(uint32_t buffer); |
27 int32_t StopCapture(); | 42 int32_t StopCapture(); |
| 43 void Close(); |
| 44 |
| 45 private: |
| 46 struct EnumerateDevicesState; |
| 47 |
| 48 void AbortEnumerateDevices(); |
| 49 |
| 50 // |user_data| is an EnumerateDevicesState object. It is this method's |
| 51 // responsibility to delete it. |
| 52 static void OnEnumerateDevicesComplete(void* user_data, int32_t result); |
| 53 |
| 54 // Not owned by this object. |
| 55 EnumerateDevicesState* enum_state_; |
28 }; | 56 }; |
29 | 57 |
30 } // namespace pp | 58 } // namespace pp |
31 | 59 |
32 #endif // PPAPI_CPP_DEV_VIDEO_CAPTURE_DEV_H_ | 60 #endif // PPAPI_CPP_DEV_VIDEO_CAPTURE_DEV_H_ |
OLD | NEW |