Home | History | Annotate | Download | only in private
      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