| Index: ppapi/cpp/dev/video_capture_dev.h
|
| diff --git a/ppapi/cpp/dev/video_capture_dev.h b/ppapi/cpp/dev/video_capture_dev.h
|
| index 57f6e1d67aa3a3ed9d127371b3c9a1dcfa4dc636..416a1b86b7899fdb38400a85e3f340195c401c88 100644
|
| --- a/ppapi/cpp/dev/video_capture_dev.h
|
| +++ b/ppapi/cpp/dev/video_capture_dev.h
|
| @@ -8,31 +8,27 @@
|
| #include <vector>
|
|
|
| #include "ppapi/c/dev/pp_video_capture_dev.h"
|
| +#include "ppapi/cpp/completion_callback.h"
|
| +#include "ppapi/cpp/dev/device_ref_dev.h"
|
| #include "ppapi/cpp/resource.h"
|
|
|
| namespace pp {
|
|
|
| -class CompletionCallback;
|
| -class DeviceRef_Dev;
|
| class InstanceHandle;
|
|
|
| class VideoCapture_Dev : public Resource {
|
| public:
|
| explicit VideoCapture_Dev(const InstanceHandle& instance);
|
| VideoCapture_Dev(PP_Resource resource);
|
| - VideoCapture_Dev(const VideoCapture_Dev& other);
|
|
|
| virtual ~VideoCapture_Dev();
|
|
|
| - VideoCapture_Dev& operator=(const VideoCapture_Dev& other);
|
| -
|
| // Returns true if the required interface is available.
|
| static bool IsAvailable();
|
|
|
| - // |devices| must stay alive until either this VideoCapture_Dev object goes
|
| - // away or |callback| is run.
|
| - int32_t EnumerateDevices(std::vector<DeviceRef_Dev>* devices,
|
| - const CompletionCallback& callback);
|
| + int32_t EnumerateDevices(
|
| + const CompletionCallbackWithOutput<std::vector<DeviceRef_Dev> >&
|
| + callback);
|
| int32_t Open(const DeviceRef_Dev& device_ref,
|
| const PP_VideoCaptureDeviceInfo_Dev& requested_info,
|
| uint32_t buffer_count,
|
| @@ -43,16 +39,21 @@ class VideoCapture_Dev : public Resource {
|
| void Close();
|
|
|
| private:
|
| - struct EnumerateDevicesState;
|
| -
|
| - void AbortEnumerateDevices();
|
| -
|
| - // |user_data| is an EnumerateDevicesState object. It is this method's
|
| - // responsibility to delete it.
|
| - static void OnEnumerateDevicesComplete(void* user_data, int32_t result);
|
| -
|
| - // Not owned by this object.
|
| - EnumerateDevicesState* enum_state_;
|
| + // Heap-allocated data passed to the CallbackConverter for backward
|
| + // compatibility.
|
| + struct EnumerateCallbackData0_2 {
|
| + PP_Resource devices;
|
| + PP_ArrayOutput output;
|
| + PP_CompletionCallback original_callback;
|
| + };
|
| +
|
| + // This is an adapter to convert the v0.2 EnumerateDevices oputput, which is a
|
| + // PPB_ResourceArray_Dev resource, to PP_ArrayOutput that the caller is
|
| + // expecting.
|
| + //
|
| + // This takes a heap-allocated EnumerateCallbackData0_2 struct passed as the
|
| + // user data and deletes it when the call completes.
|
| + static void CallbackConverter(void* user_data, int32_t result);
|
|
|
| // Used to store the arguments of Open() when using the v0.1 interface.
|
| PP_VideoCaptureDeviceInfo_Dev requested_info_;
|
|
|