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) 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)/* From private/ppb_flash.idl modified Thu Apr 18 15:06:12 2013. */ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PPAPI_C_PRIVATE_PPB_FLASH_H_ 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_C_PRIVATE_PPB_FLASH_H_ 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_array_output.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_bool.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_instance.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_macros.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_module.h" 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_point.h" 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_rect.h" 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_resource.h" 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_size.h" 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_stdint.h" 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_time.h" 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_var.h" 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/c/trusted/ppb_browser_font_trusted.h" 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_FLASH_INTERFACE_12_4 "PPB_Flash;12.4" 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_FLASH_INTERFACE_12_5 "PPB_Flash;12.5" 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPB_FLASH_INTERFACE_12_6 "PPB_Flash;12.6" 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define PPB_FLASH_INTERFACE_13_0 "PPB_Flash;13.0" 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define PPB_FLASH_INTERFACE PPB_FLASH_INTERFACE_13_0 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @file 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This file contains the <code>PPB_Flash</code> interface. 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Enums 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{ 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum { 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * No restrictions on Flash LSOs. 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_FLASHLSORESTRICTIONS_NONE = 1, 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Don't allow access to Flash LSOs. 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_FLASHLSORESTRICTIONS_BLOCK = 2, 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Store Flash LSOs in memory only. 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_FLASHLSORESTRICTIONS_IN_MEMORY = 3 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} PP_FlashLSORestrictions; 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FlashLSORestrictions, 4); 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum { 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Specifies if the system likely supports 3D hardware acceleration. 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The result is a boolean PP_Var, depending on the supported nature of 3D 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * acceleration. If querying this function returns true, the 3D system will 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * normally use the native hardware for rendering which will be much faster. 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Having this set to true only means that 3D should be used to draw 2D and 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * video elements. PP_FLASHSETTING_STAGE3D_ENABLED should be checked to 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * determine if it's ok to use 3D for arbitrary content. 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * In rare cases (depending on the platform) this value will be true but a 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * created 3D context will use emulation because context initialization 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * failed. 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_FLASHSETTING_3DENABLED = 1, 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 75c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Specifies if the given instance is in private/incognito/off-the-record mode 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * (returns true) or "regular" mode (returns false). Returns an undefined 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PP_Var on invalid instance. 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_FLASHSETTING_INCOGNITO = 2, 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Specifies if arbitrary 3d commands are supported (returns true), or if 3d 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * should only be used for drawing 2d and video (returns false). 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This should only be enabled if PP_FLASHSETTING_3DENABLED is true. 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_FLASHSETTING_STAGE3DENABLED = 3, 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Specifies the string for the language code of the UI of the browser. 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * For example: "en-US" or "de". 915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Returns an undefined PP_Var on invalid instance. 935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_FLASHSETTING_LANGUAGE = 4, 955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Specifies the number of CPU cores that are present on the system. 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_FLASHSETTING_NUMCORES = 5, 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Specifies restrictions on how flash should handle LSOs. The result is an 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * int from <code>PP_FlashLSORestrictions</code>. 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_FLASHSETTING_LSORESTRICTIONS = 6, 1042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /** 1052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Specifies if the driver is reliable enough to use Shader Model 3 commands 1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * with it. 1072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * 1082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * This should only be enabled if PP_FLASHSETTING_STAGE3DENABLED is true. 1092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 1102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_FLASHSETTING_STAGE3DBASELINEENABLED = 7 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} PP_FlashSetting; 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FlashSetting, 4); 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This enum provides keys for setting breakpad crash report data. 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef enum { 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Specifies the document URL which contains the flash instance. 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 121c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) PP_FLASHCRASHKEY_URL = 1, 122c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) /** 123c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Specifies the URL of the current swf. 124c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 125c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) PP_FLASHCRASHKEY_RESOURCE_URL = 2 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} PP_FlashCrashKey; 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FlashCrashKey, 4); 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @} 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Interfaces 1345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{ 1355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 1375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The <code>PPB_Flash</code> interface contains pointers to various functions 1385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * that are only needed to support Pepper Flash. 1395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct PPB_Flash_13_0 { 1415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Sets or clears the rendering hint that the given plugin instance is always 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * on top of page content. Somewhat more optimized painting can be used in 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * this case. 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*SetInstanceAlwaysOnTop)(PP_Instance instance, PP_Bool on_top); 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Draws the given pre-laid-out text. It is almost equivalent to Windows' 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * ExtTextOut with the addition of the transformation (a 3x3 matrix given the 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * transform to apply before drawing). It also adds the allow_subpixel_aa 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * flag which when true, will use subpixel antialiasing if enabled in the 1525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * system settings. For this to work properly, the graphics layer that the 1535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * text is being drawn into must be opaque. 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Bool (*DrawGlyphs)( 1562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Instance instance, 1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Resource pp_image_data, 1582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_BrowserFont_Trusted_Description* font_desc, 1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) uint32_t color, 1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_Point* position, 1612a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_Rect* clip, 1622a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const float transformation[3][3], 1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Bool allow_subpixel_aa, 1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) uint32_t glyph_count, 1652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const uint16_t glyph_indices[], 1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_Point glyph_advances[]); 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Retrieves the proxy that will be used for the given URL. The result will 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * be a string in PAC format, or an undefined var on error. 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetProxyForURL)(PP_Instance instance, const char* url); 1725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Navigate to the URL given by the given URLRequestInfo. (This supports GETs, 1745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * POSTs, and javascript: URLs.) May open a new tab if target is not "_self". 1755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t (*Navigate)(PP_Resource request_info, 1775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* target, 1785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool from_user_action); 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Retrieves the local time zone offset from GM time for the given UTC time. 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) double (*GetLocalTimeZoneOffset)(PP_Instance instance, PP_Time t); 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Gets a (string) with "command-line" options for Flash; used to pass 1855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * run-time debugging parameters, etc. 1865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetCommandLineArgs)(PP_Module module); 1885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 189c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Loads the given font in a more privileged process on Windows. Call this if 1905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Windows is giving errors for font calls. See 1915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * content/renderer/font_cache_dispatcher_win.cc 1925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The parameter is a pointer to a LOGFONTW structure. 1945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 1955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * On non-Windows platforms, this function does nothing. 1965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*PreloadFontWin)(const void* logfontw); 1985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Returns whether the given rectangle (in the plugin) is topmost, i.e., above 2005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * all other web content. 2015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*IsRectTopmost)(PP_Instance instance, const struct PP_Rect* rect); 2035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 2045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Indicates that there's activity and, e.g., the screensaver shouldn't kick 2055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * in. 2065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*UpdateActivity)(PP_Instance instance); 2085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 2095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Returns the value associated with the given setting. Invalid enums will 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * result in an undefined PP_Var return value. 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetSetting)(PP_Instance instance, PP_FlashSetting setting); 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Allows setting breakpad crash data which will be included in plugin crash 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * reports. Returns PP_FALSE if crash data could not be set. 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*SetCrashData)(PP_Instance instance, 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_FlashCrashKey key, 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var value); 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Enumerates video capture devices. |video_capture| is a valid 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PPB_VideoCapture_Dev resource. Once the operation has completed 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * successfully, |devices| will be set up with an array of 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PPB_DeviceRef_Dev resources. 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PP_OK is returned on success and different pepper error code on failure. 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The ref count of the returned |devices| has already been increased by 1 for 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the caller. 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * NOTE: This method is a synchronous version of |EnumerateDevices| in 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PPB_VideoCapture_Dev. 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t (*EnumerateVideoCaptureDevices)(PP_Instance instance, 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Resource video_capture, 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_ArrayOutput devices); 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)typedef struct PPB_Flash_13_0 PPB_Flash; 2395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct PPB_Flash_12_4 { 2415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*SetInstanceAlwaysOnTop)(PP_Instance instance, PP_Bool on_top); 2422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Bool (*DrawGlyphs)( 2432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Instance instance, 2442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Resource pp_image_data, 2452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_BrowserFont_Trusted_Description* font_desc, 2462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) uint32_t color, 2472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_Point* position, 2482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_Rect* clip, 2492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const float transformation[3][3], 2502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Bool allow_subpixel_aa, 2512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) uint32_t glyph_count, 2522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const uint16_t glyph_indices[], 2532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_Point glyph_advances[]); 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetProxyForURL)(PP_Instance instance, const char* url); 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t (*Navigate)(PP_Resource request_info, 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* target, 2575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool from_user_action); 2585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*RunMessageLoop)(PP_Instance instance); 2595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*QuitMessageLoop)(PP_Instance instance); 2605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) double (*GetLocalTimeZoneOffset)(PP_Instance instance, PP_Time t); 2615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetCommandLineArgs)(PP_Module module); 2625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*PreloadFontWin)(const void* logfontw); 2635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*IsRectTopmost)(PP_Instance instance, const struct PP_Rect* rect); 2645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t (*InvokePrinting)(PP_Instance instance); 2655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*UpdateActivity)(PP_Instance instance); 2665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetDeviceID)(PP_Instance instance); 2675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t (*GetSettingInt)(PP_Instance instance, PP_FlashSetting setting); 2682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) struct PP_Var (*GetSetting)(PP_Instance instance, PP_FlashSetting setting); 2695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 2705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct PPB_Flash_12_5 { 2725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*SetInstanceAlwaysOnTop)(PP_Instance instance, PP_Bool on_top); 2732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Bool (*DrawGlyphs)( 2742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Instance instance, 2752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Resource pp_image_data, 2762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_BrowserFont_Trusted_Description* font_desc, 2772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) uint32_t color, 2782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_Point* position, 2792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_Rect* clip, 2802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const float transformation[3][3], 2812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Bool allow_subpixel_aa, 2822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) uint32_t glyph_count, 2832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const uint16_t glyph_indices[], 2842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_Point glyph_advances[]); 2855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetProxyForURL)(PP_Instance instance, const char* url); 2865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t (*Navigate)(PP_Resource request_info, 2875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* target, 2885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool from_user_action); 2895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*RunMessageLoop)(PP_Instance instance); 2905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*QuitMessageLoop)(PP_Instance instance); 2915821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) double (*GetLocalTimeZoneOffset)(PP_Instance instance, PP_Time t); 2925821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetCommandLineArgs)(PP_Module module); 2935821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*PreloadFontWin)(const void* logfontw); 2945821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*IsRectTopmost)(PP_Instance instance, const struct PP_Rect* rect); 2955821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t (*InvokePrinting)(PP_Instance instance); 2965821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*UpdateActivity)(PP_Instance instance); 2975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetDeviceID)(PP_Instance instance); 2985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t (*GetSettingInt)(PP_Instance instance, PP_FlashSetting setting); 2995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetSetting)(PP_Instance instance, PP_FlashSetting setting); 3002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Bool (*SetCrashData)(PP_Instance instance, 3012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_FlashCrashKey key, 3022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) struct PP_Var value); 3035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 3045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct PPB_Flash_12_6 { 3065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*SetInstanceAlwaysOnTop)(PP_Instance instance, PP_Bool on_top); 3072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Bool (*DrawGlyphs)( 3082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Instance instance, 3092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Resource pp_image_data, 3102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_BrowserFont_Trusted_Description* font_desc, 3112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) uint32_t color, 3122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_Point* position, 3132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_Rect* clip, 3142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const float transformation[3][3], 3152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Bool allow_subpixel_aa, 3162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) uint32_t glyph_count, 3172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const uint16_t glyph_indices[], 3182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const struct PP_Point glyph_advances[]); 3195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetProxyForURL)(PP_Instance instance, const char* url); 3205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t (*Navigate)(PP_Resource request_info, 3215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const char* target, 3225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool from_user_action); 3235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*RunMessageLoop)(PP_Instance instance); 3245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*QuitMessageLoop)(PP_Instance instance); 3255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) double (*GetLocalTimeZoneOffset)(PP_Instance instance, PP_Time t); 3265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetCommandLineArgs)(PP_Module module); 3275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*PreloadFontWin)(const void* logfontw); 3285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*IsRectTopmost)(PP_Instance instance, const struct PP_Rect* rect); 3295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t (*InvokePrinting)(PP_Instance instance); 3305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) void (*UpdateActivity)(PP_Instance instance); 3315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetDeviceID)(PP_Instance instance); 3325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t (*GetSettingInt)(PP_Instance instance, PP_FlashSetting setting); 3335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var (*GetSetting)(PP_Instance instance, PP_FlashSetting setting); 3345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_Bool (*SetCrashData)(PP_Instance instance, 3355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) PP_FlashCrashKey key, 3365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Var value); 3372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) int32_t (*EnumerateVideoCaptureDevices)(PP_Instance instance, 3382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) PP_Resource video_capture, 3392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) struct PP_ArrayOutput devices); 3405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 3415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 3425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @} 3435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 3445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 3455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PPAPI_C_PRIVATE_PPB_FLASH_H_ */ 3465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 347