1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef PPAPI_CPP_DEV_VIDEO_CAPTURE_CLIENT_DEV_H_
6#define PPAPI_CPP_DEV_VIDEO_CAPTURE_CLIENT_DEV_H_
7
8#include <vector>
9
10#include "ppapi/c/dev/pp_video_capture_dev.h"
11#include "ppapi/cpp/dev/buffer_dev.h"
12#include "ppapi/cpp/instance_handle.h"
13#include "ppapi/cpp/resource.h"
14
15namespace pp {
16
17class Instance;
18
19class VideoCaptureClient_Dev {
20 public:
21  explicit VideoCaptureClient_Dev(Instance* instance);
22  virtual ~VideoCaptureClient_Dev();
23
24  virtual void OnDeviceInfo(PP_Resource video_capture,
25                            const PP_VideoCaptureDeviceInfo_Dev& info,
26                            const std::vector<Buffer_Dev>& buffers) = 0;
27  virtual void OnStatus(PP_Resource video_capture, uint32_t status) = 0;
28  virtual void OnError(PP_Resource video_capture, uint32_t error) = 0;
29  virtual void OnBufferReady(PP_Resource video_capture, uint32_t buffer) = 0;
30
31 private:
32  InstanceHandle instance_;
33};
34
35}  // namespace pp
36
37#endif  // PPAPI_CPP_DEV_VIDEO_CAPTURE_CLIENT_DEV_H_
38