185e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan// Copyright (c) 2011 The Chromium Authors. All rights reserved.
285e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan// Use of this source code is governed by a BSD-style license that can be
385e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan// found in the LICENSE file.
485e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan
585e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan#ifndef PPAPI_CPP_DEV_VIDEO_CAPTURE_CLIENT_DEV_H_
685e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan#define PPAPI_CPP_DEV_VIDEO_CAPTURE_CLIENT_DEV_H_
785e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan
885e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan#include <vector>
985e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan
1085e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan#include "ppapi/c/dev/pp_video_capture_dev.h"
1185e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan#include "ppapi/cpp/dev/buffer_dev.h"
1285e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan#include "ppapi/cpp/instance_handle.h"
1385e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan#include "ppapi/cpp/resource.h"
1485e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan
1585e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wannamespace pp {
1685e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan
1785e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wanclass Instance;
1885e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan
1985e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wanclass VideoCaptureClient_Dev {
2085e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan public:
2185e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan  explicit VideoCaptureClient_Dev(Instance* instance);
2285e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan  virtual ~VideoCaptureClient_Dev();
2385e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan
2485e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan  virtual void OnDeviceInfo(PP_Resource video_capture,
2585e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan                            const PP_VideoCaptureDeviceInfo_Dev& info,
2685e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan                            const std::vector<Buffer_Dev>& buffers) = 0;
2785e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan  virtual void OnStatus(PP_Resource video_capture, uint32_t status) = 0;
2885e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan  virtual void OnError(PP_Resource video_capture, uint32_t error) = 0;
2985e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan  virtual void OnBufferReady(PP_Resource video_capture, uint32_t buffer) = 0;
3085e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan
3185e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan private:
3285e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan  InstanceHandle instance_;
3385e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan};
3485e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan
3585e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan}  // namespace pp
3685e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan
3785e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan#endif  // PPAPI_CPP_DEV_VIDEO_CAPTURE_CLIENT_DEV_H_
3885e2abe9c5c58a76688af1a73d317b58ba39fd38zhanyong.wan