Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(826)

Unified Diff: ppapi/thunk/ppb_video_capture_thunk.cc

Issue 9234064: Implement device enumeration for PPB_VideoCapture_Dev. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ppapi/thunk/ppb_video_capture_api.h ('k') | webkit/plugins/ppapi/mock_plugin_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/thunk/ppb_video_capture_thunk.cc
diff --git a/ppapi/thunk/ppb_video_capture_thunk.cc b/ppapi/thunk/ppb_video_capture_thunk.cc
index d677471d2288ab3fd91a1a97a34d9aaff8c3fac0..66ea4bcdb57e2986e8d4e9af0413383a07419dcf 100644
--- a/ppapi/thunk/ppb_video_capture_thunk.cc
+++ b/ppapi/thunk/ppb_video_capture_thunk.cc
@@ -3,10 +3,12 @@
// found in the LICENSE file.
#include "ppapi/c/pp_errors.h"
+#include "ppapi/shared_impl/ppb_device_ref_shared.h"
#include "ppapi/thunk/enter.h"
-#include "ppapi/thunk/thunk.h"
+#include "ppapi/thunk/ppb_device_ref_api.h"
#include "ppapi/thunk/ppb_video_capture_api.h"
#include "ppapi/thunk/resource_creation_api.h"
+#include "ppapi/thunk/thunk.h"
namespace ppapi {
namespace thunk {
@@ -27,13 +29,44 @@ PP_Bool IsVideoCapture(PP_Resource resource) {
return PP_FromBool(enter.succeeded());
}
-int32_t StartCapture(PP_Resource video_capture,
- const PP_VideoCaptureDeviceInfo_Dev* requested_info,
- uint32_t buffer_count) {
+int32_t EnumerateDevices(PP_Resource video_capture,
+ PP_Resource* devices,
+ PP_CompletionCallback callback) {
+ EnterVideoCapture enter(video_capture, callback, true);
+ if (enter.failed())
+ return enter.retval();
+
+ return enter.SetResult(enter.object()->EnumerateDevices(devices, callback));
+}
+
+int32_t Open(PP_Resource video_capture,
+ PP_Resource device_ref,
+ const PP_VideoCaptureDeviceInfo_Dev* requested_info,
+ uint32_t buffer_count,
+ PP_CompletionCallback callback) {
+ EnterVideoCapture enter(video_capture, callback, true);
+ if (enter.failed())
+ return enter.retval();
+
+ std::string device_id;
+ // |device_id| remains empty if |device_ref| is 0, which means the default
+ // device.
+ if (device_ref != 0) {
+ EnterResourceNoLock<PPB_DeviceRef_API> enter_device_ref(device_ref, true);
+ if (enter_device_ref.failed())
+ return enter.SetResult(PP_ERROR_BADRESOURCE);
+ device_id = enter_device_ref.object()->GetDeviceRefData().id;
+ }
+
+ return enter.SetResult(enter.object()->Open(
+ device_id, *requested_info, buffer_count, callback));
+}
+
+int32_t StartCapture(PP_Resource video_capture) {
EnterVideoCapture enter(video_capture, true);
if (enter.failed())
return enter.retval();
- return enter.object()->StartCapture(*requested_info, buffer_count);
+ return enter.object()->StartCapture();
}
int32_t ReuseBuffer(PP_Resource video_capture,
@@ -51,18 +84,49 @@ int32_t StopCapture(PP_Resource video_capture) {
return enter.object()->StopCapture();
}
-const PPB_VideoCapture_Dev g_ppb_videocapture_thunk = {
+void Close(PP_Resource video_capture) {
+ EnterVideoCapture enter(video_capture, true);
+ if (enter.succeeded())
+ enter.object()->Close();
+}
+
+int32_t StartCapture0_1(PP_Resource video_capture,
+ const PP_VideoCaptureDeviceInfo_Dev* requested_info,
+ uint32_t buffer_count) {
+ EnterVideoCapture enter(video_capture, true);
+ if (enter.failed())
+ return enter.retval();
+
+ return enter.object()->StartCapture0_1(*requested_info, buffer_count);
+}
+
+const PPB_VideoCapture_Dev_0_1 g_ppb_video_capture_0_1_thunk = {
&Create,
&IsVideoCapture,
- &StartCapture,
+ &StartCapture0_1,
&ReuseBuffer,
&StopCapture
};
+const PPB_VideoCapture_Dev_0_2 g_ppb_video_capture_0_2_thunk = {
+ &Create,
+ &IsVideoCapture,
+ &EnumerateDevices,
+ &Open,
+ &StartCapture,
+ &ReuseBuffer,
+ &StopCapture,
+ &Close
+};
+
} // namespace
const PPB_VideoCapture_Dev_0_1* GetPPB_VideoCapture_Dev_0_1_Thunk() {
- return &g_ppb_videocapture_thunk;
+ return &g_ppb_video_capture_0_1_thunk;
+}
+
+const PPB_VideoCapture_Dev_0_2* GetPPB_VideoCapture_Dev_0_2_Thunk() {
+ return &g_ppb_video_capture_0_2_thunk;
}
} // namespace thunk
« no previous file with comments | « ppapi/thunk/ppb_video_capture_api.h ('k') | webkit/plugins/ppapi/mock_plugin_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698