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.
5 #include "base/memory/scoped_ptr.h"
6 #include "ppapi/c/pp_errors.h"
7 #include "ppapi/c/private/ppb_flash_clipboard.h"
8 #include "ppapi/thunk/enter.h"
9 #include "ppapi/thunk/ppb_flash_clipboard_api.h"
10 #include "ppapi/thunk/thunk.h"
17 uint32_t RegisterCustomFormat(PP_Instance instance
,
18 const char* format_name
) {
19 EnterInstanceAPI
<PPB_Flash_Clipboard_API
> enter(instance
);
22 return enter
.functions()->RegisterCustomFormat(instance
, format_name
);
25 PP_Bool
IsFormatAvailable(PP_Instance instance
,
26 PP_Flash_Clipboard_Type clipboard_type
,
28 EnterInstanceAPI
<PPB_Flash_Clipboard_API
> enter(instance
);
31 return enter
.functions()->IsFormatAvailable(instance
, clipboard_type
, format
);
34 PP_Var
ReadData(PP_Instance instance
,
35 PP_Flash_Clipboard_Type clipboard_type
,
37 EnterInstanceAPI
<PPB_Flash_Clipboard_API
> enter(instance
);
39 return PP_MakeUndefined();
40 return enter
.functions()->ReadData(instance
, clipboard_type
, format
);
43 int32_t WriteData(PP_Instance instance
,
44 PP_Flash_Clipboard_Type clipboard_type
,
45 uint32_t data_item_count
,
46 const uint32_t formats
[],
47 const PP_Var data_items
[]) {
48 EnterInstanceAPI
<PPB_Flash_Clipboard_API
> enter(instance
);
50 return enter
.retval();
51 return enter
.functions()->WriteData(
52 instance
, clipboard_type
, data_item_count
, formats
, data_items
);
55 PP_Bool
IsFormatAvailable_4_0(PP_Instance instance
,
56 PP_Flash_Clipboard_Type clipboard_type
,
57 PP_Flash_Clipboard_Format format
) {
58 return IsFormatAvailable(instance
, clipboard_type
,
59 static_cast<uint32_t>(format
));
62 PP_Var
ReadData_4_0(PP_Instance instance
,
63 PP_Flash_Clipboard_Type clipboard_type
,
64 PP_Flash_Clipboard_Format format
) {
65 return ReadData(instance
, clipboard_type
, static_cast<uint32_t>(format
));
68 int32_t WriteData_4_0(PP_Instance instance
,
69 PP_Flash_Clipboard_Type clipboard_type
,
70 uint32_t data_item_count
,
71 const PP_Flash_Clipboard_Format formats
[],
72 const PP_Var data_items
[]) {
73 scoped_ptr
<uint32_t[]> new_formats(new uint32_t[data_item_count
]);
74 for (uint32_t i
= 0; i
< data_item_count
; ++i
)
75 new_formats
[i
] = static_cast<uint32_t>(formats
[i
]);
76 return WriteData(instance
, clipboard_type
, data_item_count
,
77 new_formats
.get(), data_items
);
80 PP_Bool
GetSequenceNumber(PP_Instance instance
,
81 PP_Flash_Clipboard_Type clipboard_type
,
82 uint64_t* sequence_number
) {
83 EnterInstanceAPI
<PPB_Flash_Clipboard_API
> enter(instance
);
86 return enter
.functions()->GetSequenceNumber(instance
, clipboard_type
,
90 const PPB_Flash_Clipboard_4_0 g_ppb_flash_clipboard_thunk_4_0
= {
91 &IsFormatAvailable_4_0
,
96 const PPB_Flash_Clipboard_5_0 g_ppb_flash_clipboard_thunk_5_0
= {
97 &RegisterCustomFormat
,
103 const PPB_Flash_Clipboard_5_1 g_ppb_flash_clipboard_thunk_5_1
= {
104 &RegisterCustomFormat
,
113 const PPB_Flash_Clipboard_4_0
* GetPPB_Flash_Clipboard_4_0_Thunk() {
114 return &g_ppb_flash_clipboard_thunk_4_0
;
117 const PPB_Flash_Clipboard_5_0
* GetPPB_Flash_Clipboard_5_0_Thunk() {
118 return &g_ppb_flash_clipboard_thunk_5_0
;
121 const PPB_Flash_Clipboard_5_1
* GetPPB_Flash_Clipboard_5_1_Thunk() {
122 return &g_ppb_flash_clipboard_thunk_5_1
;