15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PPAPI_THUNK_PPB_FLASH_FUNCTIONS_API_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_THUNK_PPB_FLASH_FUNCTIONS_API_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <string>
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/c/private/ppb_flash.h"
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/shared_impl/singleton_resource_id.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/thunk/ppapi_thunk_export.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct PP_BrowserFont_Trusted_Description;
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ppapi {
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace thunk {
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// This class collects all of the Flash interface-related APIs into one place.
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class PPAPI_THUNK_EXPORT PPB_Flash_Functions_API {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~PPB_Flash_Functions_API() {}
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual PP_Var GetProxyForURL(PP_Instance instance,
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                const std::string& url) = 0;
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void UpdateActivity(PP_Instance instance) = 0;
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual PP_Bool SetCrashData(PP_Instance instance, PP_FlashCrashKey key,
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                               PP_Var value) = 0;
292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual double GetLocalTimeZoneOffset(PP_Instance instance, PP_Time t) = 0;
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual PP_Var GetSetting(PP_Instance instance, PP_FlashSetting setting) = 0;
312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void SetInstanceAlwaysOnTop(PP_Instance instance, PP_Bool on_top) = 0;
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual PP_Bool DrawGlyphs(
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      PP_Instance instance,
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      PP_Resource pp_image_data,
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      const PP_BrowserFont_Trusted_Description* font_desc,
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      uint32_t color,
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      const PP_Point* position,
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      const PP_Rect* clip,
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      const float transformation[3][3],
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      PP_Bool allow_subpixel_aa,
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      uint32_t glyph_count,
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      const uint16_t glyph_indices[],
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      const PP_Point glyph_advances[]) = 0;
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual int32_t Navigate(PP_Instance instance,
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                           PP_Resource request_info,
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                           const char* target,
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                           PP_Bool from_user_action) = 0;
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual PP_Bool IsRectTopmost(PP_Instance instance, const PP_Rect* rect) = 0;
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  virtual void InvokePrinting(PP_Instance instance) = 0;
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static const SingletonResourceID kSingletonResourceID = FLASH_SINGLETON_ID;
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace thunk
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace ppapi
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // PPAPI_THUNK_PPB_FLASH_FUNCTIONS_API_H_
58