diff options
author | yzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-15 22:58:15 +0000 |
---|---|---|
committer | yzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-15 22:58:15 +0000 |
commit | cc7c244894cea1b16e4a0cfe078dfda1bd69e594 (patch) | |
tree | ce5cf1a203f35d413f36d19e9a5f4aa7239231de /ppapi/proxy/ppb_video_capture_proxy.h | |
parent | e21dcefec09d37abfd800cf64f3b61bebffd21e7 (diff) | |
download | chromium_src-cc7c244894cea1b16e4a0cfe078dfda1bd69e594.zip chromium_src-cc7c244894cea1b16e4a0cfe078dfda1bd69e594.tar.gz chromium_src-cc7c244894cea1b16e4a0cfe078dfda1bd69e594.tar.bz2 |
Implement device enumeration for PPB_VideoCapture_Dev.
- Implement PPB_VideoCapture_Dev v0.2.
- Use a ref-counted PlatformVideoCapture to manage lifespan of media::VideoCapture::EventHandler, instead of manipulating the ref count of PPB_VideoCapture_Impl.
- Extend examples/video_capture.
BUG=None
TEST=examples/video_capture
Review URL: https://chromiumcodereview.appspot.com/9234064
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122176 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy/ppb_video_capture_proxy.h')
-rw-r--r-- | ppapi/proxy/ppb_video_capture_proxy.h | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/ppapi/proxy/ppb_video_capture_proxy.h b/ppapi/proxy/ppb_video_capture_proxy.h index 77295c7d..2b86460 100644 --- a/ppapi/proxy/ppb_video_capture_proxy.h +++ b/ppapi/proxy/ppb_video_capture_proxy.h @@ -1,15 +1,19 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef PPAPI_PROXY_PPB_VIDEO_CAPTURE_PROXY_H_ #define PPAPI_PROXY_PPB_VIDEO_CAPTURE_PROXY_H_ +#include <string> #include <vector> #include "ppapi/c/pp_instance.h" #include "ppapi/proxy/interface_proxy.h" +#include "ppapi/proxy/proxy_non_thread_safe_ref_count.h" #include "ppapi/proxy/serialized_structs.h" +#include "ppapi/shared_impl/ppb_device_ref_shared.h" +#include "ppapi/utility/completion_callback_factory.h" struct PPP_VideoCapture_Dev; struct PP_VideoCaptureDeviceInfo_Dev; @@ -33,14 +37,35 @@ class PPB_VideoCapture_Proxy : public InterfaceProxy { static const ApiID kApiID = API_ID_PPB_VIDEO_CAPTURE_DEV; private: - // Message handlers. + // Message handlers in the renderer process. void OnMsgCreate(PP_Instance instance, ppapi::HostResource* result_resource); - void OnMsgStartCapture(const ppapi::HostResource& resource, - const PP_VideoCaptureDeviceInfo_Dev& info, - uint32_t buffers); + void OnMsgEnumerateDevices(const ppapi::HostResource& resource); + void OnMsgOpen(const ppapi::HostResource& resource, + const std::string& device_id, + const PP_VideoCaptureDeviceInfo_Dev& info, + uint32_t buffers); + void OnMsgStartCapture(const ppapi::HostResource& resource); void OnMsgReuseBuffer(const ppapi::HostResource& resource, uint32_t buffer); void OnMsgStopCapture(const ppapi::HostResource& resource); + void OnMsgClose(const ppapi::HostResource& resource); + void OnMsgStartCapture0_1(const ppapi::HostResource& resource, + const PP_VideoCaptureDeviceInfo_Dev& info, + uint32_t buffers); + + // Message handlers in the plugin process. + void OnMsgEnumerateDevicesACK( + const ppapi::HostResource& resource, + int32_t result, + const std::vector<ppapi::DeviceRefData>& devices); + void OnMsgOpenACK(const ppapi::HostResource& resource, int32_t result); + + void EnumerateDevicesACKInHost(int32_t result, + const ppapi::HostResource& resource); + void OpenACKInHost(int32_t result, const ppapi::HostResource& resource); + + pp::CompletionCallbackFactory<PPB_VideoCapture_Proxy, + ProxyNonThreadSafeRefCount> callback_factory_; DISALLOW_COPY_AND_ASSIGN(PPB_VideoCapture_Proxy); }; |