Index: ppapi/cpp/private/flash.cc |
diff --git a/ppapi/cpp/private/flash.cc b/ppapi/cpp/private/flash.cc |
index 501da376e9295f605e1f84dbc612ba48f586502a..d5e2b399b4168e17655ce07a8f911a88d3a5fa47 100644 |
--- a/ppapi/cpp/private/flash.cc |
+++ b/ppapi/cpp/private/flash.cc |
@@ -21,8 +21,12 @@ namespace pp { |
namespace { |
-template <> const char* interface_name<PPB_Flash>() { |
- return PPB_FLASH_INTERFACE; |
+template <> const char* interface_name<PPB_Flash_12_2>() { |
+ return PPB_FLASH_INTERFACE_12_2; |
+} |
+ |
+template <> const char* interface_name<PPB_Flash_12_1>() { |
+ return PPB_FLASH_INTERFACE_12_1; |
} |
template <> const char* interface_name<PPB_Flash_12_0>() { |
@@ -39,7 +43,8 @@ namespace flash { |
// static |
bool Flash::IsAvailable() { |
- return has_interface<PPB_Flash>() || |
+ return has_interface<PPB_Flash_12_2>() || |
+ has_interface<PPB_Flash_12_1>() || |
has_interface<PPB_Flash_12_0>() || |
has_interface<PPB_Flash_11>(); |
} |
@@ -47,9 +52,12 @@ bool Flash::IsAvailable() { |
// static |
void Flash::SetInstanceAlwaysOnTop(const InstanceHandle& instance, |
bool on_top) { |
- if (has_interface<PPB_Flash>()) { |
- get_interface<PPB_Flash>()->SetInstanceAlwaysOnTop(instance.pp_instance(), |
- PP_FromBool(on_top)); |
+ if (has_interface<PPB_Flash_12_2>()) { |
+ get_interface<PPB_Flash_12_2>()->SetInstanceAlwaysOnTop( |
+ instance.pp_instance(), PP_FromBool(on_top)); |
+ } else if (has_interface<PPB_Flash_12_1>()) { |
+ get_interface<PPB_Flash_12_1>()->SetInstanceAlwaysOnTop( |
+ instance.pp_instance(), PP_FromBool(on_top)); |
} else if (has_interface<PPB_Flash_12_0>()) { |
get_interface<PPB_Flash_12_0>()->SetInstanceAlwaysOnTop( |
instance.pp_instance(), PP_FromBool(on_top)); |
@@ -72,8 +80,21 @@ bool Flash::DrawGlyphs(const InstanceHandle& instance, |
const uint16_t glyph_indices[], |
const PP_Point glyph_advances[]) { |
bool rv = false; |
- if (has_interface<PPB_Flash>()) { |
- rv = PP_ToBool(get_interface<PPB_Flash>()->DrawGlyphs( |
+ if (has_interface<PPB_Flash_12_2>()) { |
+ rv = PP_ToBool(get_interface<PPB_Flash_12_2>()->DrawGlyphs( |
+ instance.pp_instance(), |
+ image->pp_resource(), |
+ &font_desc.pp_font_description(), |
+ color, |
+ &position.pp_point(), |
+ &clip.pp_rect(), |
+ transformation, |
+ PP_FromBool(allow_subpixel_aa), |
+ glyph_count, |
+ glyph_indices, |
+ glyph_advances)); |
+ } else if (has_interface<PPB_Flash_12_1>()) { |
+ rv = PP_ToBool(get_interface<PPB_Flash_12_1>()->DrawGlyphs( |
instance.pp_instance(), |
image->pp_resource(), |
&font_desc.pp_font_description(), |
@@ -118,10 +139,14 @@ bool Flash::DrawGlyphs(const InstanceHandle& instance, |
Var Flash::GetProxyForURL(const InstanceHandle& instance, |
const std::string& url) { |
Var rv; |
- if (has_interface<PPB_Flash>()) { |
+ if (has_interface<PPB_Flash_12_2>()) { |
+ rv = Var(PASS_REF, |
+ get_interface<PPB_Flash_12_2>()->GetProxyForURL( |
+ instance.pp_instance(), url.c_str())); |
+ } else if (has_interface<PPB_Flash_12_1>()) { |
rv = Var(PASS_REF, |
- get_interface<PPB_Flash>()->GetProxyForURL(instance.pp_instance(), |
- url.c_str())); |
+ get_interface<PPB_Flash_12_1>()->GetProxyForURL( |
+ instance.pp_instance(), url.c_str())); |
} else if (has_interface<PPB_Flash_12_0>()) { |
rv = Var(PASS_REF, |
get_interface<PPB_Flash_12_0>()->GetProxyForURL( |
@@ -139,10 +164,16 @@ int32_t Flash::Navigate(const URLRequestInfo& request_info, |
const std::string& target, |
bool from_user_action) { |
int32_t rv = PP_ERROR_FAILED; |
- if (has_interface<PPB_Flash>()) { |
- rv = get_interface<PPB_Flash>()->Navigate(request_info.pp_resource(), |
- target.c_str(), |
- PP_FromBool(from_user_action)); |
+ if (has_interface<PPB_Flash_12_2>()) { |
+ rv = get_interface<PPB_Flash_12_2>()->Navigate( |
+ request_info.pp_resource(), |
+ target.c_str(), |
+ PP_FromBool(from_user_action)); |
+ } else if (has_interface<PPB_Flash_12_1>()) { |
+ rv = get_interface<PPB_Flash_12_1>()->Navigate( |
+ request_info.pp_resource(), |
+ target.c_str(), |
+ PP_FromBool(from_user_action)); |
} else if (has_interface<PPB_Flash_12_0>()) { |
rv = get_interface<PPB_Flash_12_0>()->Navigate( |
request_info.pp_resource(), |
@@ -158,8 +189,10 @@ int32_t Flash::Navigate(const URLRequestInfo& request_info, |
// static |
void Flash::RunMessageLoop(const InstanceHandle& instance) { |
- if (has_interface<PPB_Flash>()) |
- get_interface<PPB_Flash>()->RunMessageLoop(instance.pp_instance()); |
+ if (has_interface<PPB_Flash_12_2>()) |
+ get_interface<PPB_Flash_12_2>()->RunMessageLoop(instance.pp_instance()); |
+ else if (has_interface<PPB_Flash_12_1>()) |
+ get_interface<PPB_Flash_12_1>()->RunMessageLoop(instance.pp_instance()); |
else if (has_interface<PPB_Flash_12_0>()) |
get_interface<PPB_Flash_12_0>()->RunMessageLoop(instance.pp_instance()); |
else if (has_interface<PPB_Flash_11>()) |
@@ -168,8 +201,10 @@ void Flash::RunMessageLoop(const InstanceHandle& instance) { |
// static |
void Flash::QuitMessageLoop(const InstanceHandle& instance) { |
- if (has_interface<PPB_Flash>()) |
- get_interface<PPB_Flash>()->QuitMessageLoop(instance.pp_instance()); |
+ if (has_interface<PPB_Flash_12_2>()) |
+ get_interface<PPB_Flash_12_2>()->QuitMessageLoop(instance.pp_instance()); |
+ else if (has_interface<PPB_Flash_12_1>()) |
+ get_interface<PPB_Flash_12_1>()->QuitMessageLoop(instance.pp_instance()); |
else if (has_interface<PPB_Flash_12_0>()) |
get_interface<PPB_Flash_12_0>()->QuitMessageLoop(instance.pp_instance()); |
else if (has_interface<PPB_Flash_11>()) |
@@ -180,8 +215,11 @@ void Flash::QuitMessageLoop(const InstanceHandle& instance) { |
double Flash::GetLocalTimeZoneOffset(const InstanceHandle& instance, |
PP_Time t) { |
double rv = 0; |
- if (has_interface<PPB_Flash>()) { |
- rv = get_interface<PPB_Flash>()->GetLocalTimeZoneOffset( |
+ if (has_interface<PPB_Flash_12_2>()) { |
+ rv = get_interface<PPB_Flash_12_2>()->GetLocalTimeZoneOffset( |
+ instance.pp_instance(), t); |
+ } else if (has_interface<PPB_Flash_12_1>()) { |
+ rv = get_interface<PPB_Flash_12_1>()->GetLocalTimeZoneOffset( |
instance.pp_instance(), t); |
} else if (has_interface<PPB_Flash_12_0>()) { |
rv = get_interface<PPB_Flash_12_0>()->GetLocalTimeZoneOffset( |
@@ -196,9 +234,13 @@ double Flash::GetLocalTimeZoneOffset(const InstanceHandle& instance, |
// static |
Var Flash::GetCommandLineArgs(Module* module) { |
Var rv; |
- if (has_interface<PPB_Flash>()) { |
+ if (has_interface<PPB_Flash_12_2>()) { |
rv = Var(PASS_REF, |
- get_interface<PPB_Flash>()->GetCommandLineArgs( |
+ get_interface<PPB_Flash_12_2>()->GetCommandLineArgs( |
+ module->pp_module())); |
+ } else if (has_interface<PPB_Flash_12_1>()) { |
+ rv = Var(PASS_REF, |
+ get_interface<PPB_Flash_12_1>()->GetCommandLineArgs( |
module->pp_module())); |
} else if (has_interface<PPB_Flash_12_0>()) { |
rv = Var(PASS_REF, |
@@ -214,8 +256,10 @@ Var Flash::GetCommandLineArgs(Module* module) { |
// static |
void Flash::PreloadFontWin(const void* logfontw) { |
- if (has_interface<PPB_Flash>()) |
- get_interface<PPB_Flash>()->PreloadFontWin(logfontw); |
+ if (has_interface<PPB_Flash_12_2>()) |
+ get_interface<PPB_Flash_12_2>()->PreloadFontWin(logfontw); |
+ else if (has_interface<PPB_Flash_12_1>()) |
+ get_interface<PPB_Flash_12_1>()->PreloadFontWin(logfontw); |
else if (has_interface<PPB_Flash_12_0>()) |
get_interface<PPB_Flash_12_0>()->PreloadFontWin(logfontw); |
} |
@@ -223,8 +267,11 @@ void Flash::PreloadFontWin(const void* logfontw) { |
// static |
bool Flash::IsRectTopmost(const InstanceHandle& instance, const Rect& rect) { |
bool rv = false; |
- if (has_interface<PPB_Flash>()) { |
- rv = PP_ToBool(get_interface<PPB_Flash>()->IsRectTopmost( |
+ if (has_interface<PPB_Flash_12_2>()) { |
+ rv = PP_ToBool(get_interface<PPB_Flash_12_2>()->IsRectTopmost( |
+ instance.pp_instance(), &rect.pp_rect())); |
+ } else if (has_interface<PPB_Flash_12_1>()) { |
+ rv = PP_ToBool(get_interface<PPB_Flash_12_1>()->IsRectTopmost( |
instance.pp_instance(), &rect.pp_rect())); |
} |
return rv; |
@@ -233,15 +280,32 @@ bool Flash::IsRectTopmost(const InstanceHandle& instance, const Rect& rect) { |
// static |
int32_t Flash::InvokePrinting(const InstanceHandle& instance) { |
int32_t rv = PP_ERROR_NOTSUPPORTED; |
- if (has_interface<PPB_Flash>()) |
- rv = get_interface<PPB_Flash>()->InvokePrinting(instance.pp_instance()); |
+ if (has_interface<PPB_Flash_12_2>()) { |
+ rv = get_interface<PPB_Flash_12_2>()->InvokePrinting( |
+ instance.pp_instance()); |
+ } else if (has_interface<PPB_Flash_12_1>()) { |
+ rv = get_interface<PPB_Flash_12_1>()->InvokePrinting( |
+ instance.pp_instance()); |
+ } |
return rv; |
} |
// static |
void Flash::UpdateActivity(const InstanceHandle& instance) { |
- if (has_interface<PPB_Flash>()) |
- get_interface<PPB_Flash>()->UpdateActivity(instance.pp_instance()); |
+ if (has_interface<PPB_Flash_12_2>()) |
+ get_interface<PPB_Flash_12_2>()->UpdateActivity(instance.pp_instance()); |
+ if (has_interface<PPB_Flash_12_1>()) |
+ get_interface<PPB_Flash_12_1>()->UpdateActivity(instance.pp_instance()); |
+} |
+ |
+// static |
+Var Flash::GetDeviceID(const InstanceHandle& instance) { |
+ if (has_interface<PPB_Flash_12_2>()) { |
+ return Var( |
+ PASS_REF, |
+ get_interface<PPB_Flash_12_2>()->GetDeviceID(instance.pp_instance())); |
+ } |
+ return Var(); |
} |
} // namespace flash |