Chromium Code Reviews| Index: ppapi/thunk/ppb_flash_clipboard_thunk.cc |
| diff --git a/ppapi/thunk/ppb_flash_clipboard_thunk.cc b/ppapi/thunk/ppb_flash_clipboard_thunk.cc |
| index 084b93753a49d3431e5e6fb890b7d2ef31380603..a90e9cd68370054992ad6283d16447d59c2d6f5c 100644 |
| --- a/ppapi/thunk/ppb_flash_clipboard_thunk.cc |
| +++ b/ppapi/thunk/ppb_flash_clipboard_thunk.cc |
| @@ -2,70 +2,92 @@ |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| +#include "base/memory/scoped_ptr.h" |
| #include "ppapi/c/pp_errors.h" |
| #include "ppapi/c/private/ppb_flash_clipboard.h" |
| #include "ppapi/thunk/enter.h" |
| #include "ppapi/thunk/thunk.h" |
|
yzshen1
2012/10/29 17:58:04
sort.
raymes
2012/10/29 18:44:58
Done.
|
| -#include "ppapi/thunk/ppb_flash_api.h" |
| +#include "ppapi/thunk/ppb_flash_clipboard_api.h" |
| namespace ppapi { |
| namespace thunk { |
| namespace { |
| +uint32_t RegisterCustomFormat(PP_Instance instance, |
| + const char* format_name) { |
| + EnterInstance enter(instance); |
| + if (enter.failed()) |
| + return PP_FALSE; |
| + return enter.functions()->GetFlashClipboardAPI( |
| + instance)->RegisterCustomFormat(instance, format_name); |
| +} |
| + |
| PP_Bool IsFormatAvailable(PP_Instance instance, |
| PP_Flash_Clipboard_Type clipboard_type, |
| - PP_Flash_Clipboard_Format format) { |
| + uint32_t format) { |
| EnterInstance enter(instance); |
| if (enter.failed()) |
| return PP_FALSE; |
| - return enter.functions()->GetFlashAPI()->IsClipboardFormatAvailable( |
| - instance, clipboard_type, format); |
| + return enter.functions()->GetFlashClipboardAPI( |
| + instance)->IsFormatAvailable(instance, clipboard_type, format); |
| } |
| PP_Var ReadData(PP_Instance instance, |
| PP_Flash_Clipboard_Type clipboard_type, |
| - PP_Flash_Clipboard_Format format) { |
| + uint32_t format) { |
| EnterInstance enter(instance); |
| if (enter.failed()) |
| return PP_MakeUndefined(); |
| - return enter.functions()->GetFlashAPI()->ReadClipboardData( |
| + return enter.functions()->GetFlashClipboardAPI(instance)->ReadData( |
| instance, clipboard_type, format); |
| } |
| int32_t WriteData(PP_Instance instance, |
| PP_Flash_Clipboard_Type clipboard_type, |
| uint32_t data_item_count, |
| - const PP_Flash_Clipboard_Format formats[], |
| + const uint32_t formats[], |
| const PP_Var data_items[]) { |
| EnterInstance enter(instance); |
| if (enter.failed()) |
| return enter.retval(); |
| - return enter.functions()->GetFlashAPI()->WriteClipboardData( |
| + return enter.functions()->GetFlashClipboardAPI(instance)->WriteData( |
| instance, clipboard_type, data_item_count, formats, data_items); |
| } |
| -PP_Var ReadPlainText(PP_Instance instance, |
| - PP_Flash_Clipboard_Type clipboard_type) { |
| - return ReadData(instance, |
| - clipboard_type, |
| - PP_FLASH_CLIPBOARD_FORMAT_PLAINTEXT); |
| +PP_Bool IsFormatAvailable_4_0(PP_Instance instance, |
| + PP_Flash_Clipboard_Type clipboard_type, |
| + PP_Flash_Clipboard_Format format) { |
| + return IsFormatAvailable(instance, clipboard_type, |
| + static_cast<uint32_t>(format)); |
| } |
| -int32_t WritePlainText(PP_Instance instance, |
| - PP_Flash_Clipboard_Type clipboard_type, |
| - PP_Var text) { |
| - PP_Flash_Clipboard_Format format = PP_FLASH_CLIPBOARD_FORMAT_PLAINTEXT; |
| - return WriteData(instance, clipboard_type, 1, &format, &text); |
| +PP_Var ReadData_4_0(PP_Instance instance, |
| + PP_Flash_Clipboard_Type clipboard_type, |
| + PP_Flash_Clipboard_Format format) { |
| + return ReadData(instance, clipboard_type, static_cast<uint32_t>(format)); |
| } |
| -const PPB_Flash_Clipboard_3_0 g_ppb_flash_clipboard_thunk_3_0 = { |
| - &IsFormatAvailable, |
| - &ReadPlainText, |
| - &WritePlainText |
| -}; |
| +int32_t WriteData_4_0(PP_Instance instance, |
| + PP_Flash_Clipboard_Type clipboard_type, |
| + uint32_t data_item_count, |
| + const PP_Flash_Clipboard_Format formats[], |
| + const PP_Var data_items[]) { |
| + scoped_array<uint32_t> new_formats(new uint32_t[data_item_count]); |
|
yzshen1
2012/10/29 17:58:04
[Haven't tried myself]
will new uint32_t[0] run co
raymes
2012/10/29 18:44:58
Yes, but we can't dereference the pointer. If the
|
| + for (uint32_t i = 0; i < data_item_count; ++i) |
| + new_formats[i] = static_cast<uint32_t>(formats[i]); |
| + return WriteData(instance, clipboard_type, data_item_count, |
| + new_formats.get(), data_items); |
| +} |
| const PPB_Flash_Clipboard_4_0 g_ppb_flash_clipboard_thunk_4_0 = { |
| + &IsFormatAvailable_4_0, |
| + &ReadData_4_0, |
| + &WriteData_4_0 |
| +}; |
| + |
| +const PPB_Flash_Clipboard_5_0 g_ppb_flash_clipboard_thunk_5_0 = { |
| + &RegisterCustomFormat, |
| &IsFormatAvailable, |
| &ReadData, |
| &WriteData |
| @@ -73,13 +95,13 @@ const PPB_Flash_Clipboard_4_0 g_ppb_flash_clipboard_thunk_4_0 = { |
| } // namespace |
| -const PPB_Flash_Clipboard_3_0* GetPPB_Flash_Clipboard_3_0_Thunk() { |
| - return &g_ppb_flash_clipboard_thunk_3_0; |
| -} |
| - |
| const PPB_Flash_Clipboard_4_0* GetPPB_Flash_Clipboard_4_0_Thunk() { |
| return &g_ppb_flash_clipboard_thunk_4_0; |
| } |
| +const PPB_Flash_Clipboard_5_0* GetPPB_Flash_Clipboard_5_0_Thunk() { |
| + return &g_ppb_flash_clipboard_thunk_5_0; |
| +} |
| + |
| } // namespace thunk |
| } // namespace ppapi |