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 15struct PP_Point; 16 17namespace pp { 18 19class BrowserFontDescription; 20class DeviceRef_Dev; 21class ImageData; 22class InstanceHandle; 23class Module; 24class Point; 25class Rect; 26class URLRequestInfo; 27class Var; 28class VideoCapture_Dev; 29 30namespace flash { 31 32class 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