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 |