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. 4 5 #ifndef PPAPI_CPP_PRIVATE_FLASH_H_ 6 #define PPAPI_CPP_PRIVATE_FLASH_H_ 7 8 #include <string> 9 #include <vector> 10 11 #include "ppapi/c/private/ppb_flash.h" 12 #include "ppapi/c/pp_stdint.h" 13 #include "ppapi/c/pp_time.h" 14 15 struct PP_Point; 16 17 namespace pp { 18 19 class BrowserFontDescription; 20 class DeviceRef_Dev; 21 class ImageData; 22 class InstanceHandle; 23 class Module; 24 class Point; 25 class Rect; 26 class URLRequestInfo; 27 class Var; 28 class VideoCapture_Dev; 29 30 namespace flash { 31 32 class Flash { 33 public: 34 // Returns true if the required interface is available. 35 static bool IsAvailable(); 36 37 static void SetInstanceAlwaysOnTop(const InstanceHandle& instance, 38 bool on_top); 39 static bool DrawGlyphs(const InstanceHandle& instance, 40 ImageData* image, 41 const BrowserFontDescription& font_desc, 42 uint32_t color, 43 const Point& position, 44 const Rect& clip, 45 const float transformation[3][3], 46 bool allow_subpixel_aa, 47 uint32_t glyph_count, 48 const uint16_t glyph_indices[], 49 const PP_Point glyph_advances[]); 50 static Var GetProxyForURL(const InstanceHandle& instance, 51 const std::string& url); 52 static int32_t Navigate(const URLRequestInfo& request_info, 53 const std::string& target, 54 bool from_user_action); 55 static void RunMessageLoop(const InstanceHandle& instance); 56 static void QuitMessageLoop(const InstanceHandle& instance); 57 static double GetLocalTimeZoneOffset(const InstanceHandle& instance, 58 PP_Time t); 59 static Var GetCommandLineArgs(Module* module); 60 static void PreloadFontWin(const void* logfontw); 61 static bool IsRectTopmost(const InstanceHandle& instance, const Rect& rect); 62 static void UpdateActivity(const InstanceHandle& instance); 63 static Var GetDeviceID(const InstanceHandle& instance); 64 static Var GetSetting(const InstanceHandle& instance, 65 PP_FlashSetting setting); 66 static bool SetCrashData(const InstanceHandle& instance, 67 PP_FlashCrashKey key, 68 const pp::Var& value); 69 static int32_t EnumerateVideoCaptureDevices(const InstanceHandle& instance, 70 const VideoCapture_Dev& video_capture, 71 std::vector<DeviceRef_Dev>* devices_out); 72 73 // PPB_Flash_Print. 74 static bool InvokePrinting(const InstanceHandle& instance); 75 }; 76 77 } // namespace flash 78 } // namespace pp 79 80 #endif // PPAPI_CPP_PRIVATE_FLASH_H_ 81