flash_drm_resource.h revision d0247b1b59f9c528cb6df88b4f2b9afaf80d181e
1// Copyright (c) 2012 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_PROXY_FLASH_DRM_RESOURCE_H_
6#define PPAPI_PROXY_FLASH_DRM_RESOURCE_H_
7
8#include "ppapi/proxy/plugin_resource.h"
9#include "ppapi/proxy/ppapi_proxy_export.h"
10#include "ppapi/shared_impl/tracked_callback.h"
11#include "ppapi/thunk/ppb_flash_drm_api.h"
12
13namespace ppapi {
14struct FileRefCreateInfo;
15}
16
17namespace ppapi {
18namespace proxy {
19
20class FlashDRMResource
21    : public PluginResource,
22      public thunk::PPB_Flash_DRM_API {
23 public:
24  FlashDRMResource(Connection connection,
25                   PP_Instance instance);
26  virtual ~FlashDRMResource();
27
28  // Resource override.
29  virtual thunk::PPB_Flash_DRM_API* AsPPB_Flash_DRM_API() OVERRIDE;
30
31  // PPB_Flash_DRM_API implementation.
32  virtual int32_t GetDeviceID(PP_Var* id,
33                              scoped_refptr<TrackedCallback> callback) OVERRIDE;
34  virtual PP_Bool GetHmonitor(int64_t* hmonitor) OVERRIDE;
35  virtual int32_t GetVoucherFile(
36      PP_Resource* file_ref,
37      scoped_refptr<TrackedCallback> callback) OVERRIDE;
38
39 private:
40  void OnPluginMsgGetDeviceIDReply(PP_Var* dest,
41                                   scoped_refptr<TrackedCallback> callback,
42                                   const ResourceMessageReplyParams& params,
43                                   const std::string& id);
44  void OnPluginMsgGetVoucherFileReply(PP_Resource* dest,
45                                      scoped_refptr<TrackedCallback> callback,
46                                      const ResourceMessageReplyParams& params,
47                                      const FileRefCreateInfo& file_info);
48
49  DISALLOW_COPY_AND_ASSIGN(FlashDRMResource);
50};
51
52}  // namespace proxy
53}  // namespace ppapi
54
55#endif  // PPAPI_PROXY_FLASH_DRM_RESOURCE_H_
56