| // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #ifndef PPAPI_CPP_PRIVATE_FLASH_H_ | 
 | #define PPAPI_CPP_PRIVATE_FLASH_H_ | 
 |  | 
 | #include <string> | 
 | #include <vector> | 
 |  | 
 | #include "ppapi/c/private/ppb_flash.h" | 
 | #include "ppapi/c/pp_stdint.h" | 
 | #include "ppapi/c/pp_time.h" | 
 |  | 
 | struct PP_Point; | 
 |  | 
 | namespace pp { | 
 |  | 
 | class BrowserFontDescription; | 
 | class DeviceRef_Dev; | 
 | class ImageData; | 
 | class InstanceHandle; | 
 | class Module; | 
 | class Point; | 
 | class Rect; | 
 | class URLRequestInfo; | 
 | class Var; | 
 | class VideoCapture_Dev; | 
 |  | 
 | namespace flash { | 
 |  | 
 | class Flash { | 
 |  public: | 
 |   // Returns true if the required interface is available. | 
 |   static bool IsAvailable(); | 
 |  | 
 |   static void SetInstanceAlwaysOnTop(const InstanceHandle& instance, | 
 |                                      bool on_top); | 
 |   static bool DrawGlyphs(const InstanceHandle& instance, | 
 |                          ImageData* image, | 
 |                          const BrowserFontDescription& font_desc, | 
 |                          uint32_t color, | 
 |                          const Point& position, | 
 |                          const Rect& clip, | 
 |                          const float transformation[3][3], | 
 |                          bool allow_subpixel_aa, | 
 |                          uint32_t glyph_count, | 
 |                          const uint16_t glyph_indices[], | 
 |                          const PP_Point glyph_advances[]); | 
 |   static Var GetProxyForURL(const InstanceHandle& instance, | 
 |                             const std::string& url); | 
 |   static int32_t Navigate(const URLRequestInfo& request_info, | 
 |                           const std::string& target, | 
 |                           bool from_user_action); | 
 |   static void RunMessageLoop(const InstanceHandle& instance); | 
 |   static void QuitMessageLoop(const InstanceHandle& instance); | 
 |   static double GetLocalTimeZoneOffset(const InstanceHandle& instance, | 
 |                                        PP_Time t); | 
 |   static Var GetCommandLineArgs(Module* module); | 
 |   static void PreloadFontWin(const void* logfontw); | 
 |   static bool IsRectTopmost(const InstanceHandle& instance, const Rect& rect); | 
 |   static void UpdateActivity(const InstanceHandle& instance); | 
 |   static Var GetDeviceID(const InstanceHandle& instance); | 
 |   static Var GetSetting(const InstanceHandle& instance, | 
 |                         PP_FlashSetting setting); | 
 |   static bool SetCrashData(const InstanceHandle& instance, | 
 |                            PP_FlashCrashKey key, | 
 |                            const pp::Var& value); | 
 |   static int32_t EnumerateVideoCaptureDevices(const InstanceHandle& instance, | 
 |       const VideoCapture_Dev& video_capture, | 
 |       std::vector<DeviceRef_Dev>* devices_out); | 
 |  | 
 |   // PPB_Flash_Print. | 
 |   static bool InvokePrinting(const InstanceHandle& instance); | 
 | }; | 
 |  | 
 | }  // namespace flash | 
 | }  // namespace pp | 
 |  | 
 | #endif  // PPAPI_CPP_PRIVATE_FLASH_H_ |