blob: d7ea28ab4ea6f3541a013a8c8ea0e2c32903b5bd [file] [log] [blame]
[email protected]0a424af2012-01-10 19:24:281// Copyright (c) 2012 The Chromium Authors. All rights reserved.
[email protected]ceadc392011-06-15 23:04:242// 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_THUNK_INSTANCE_API_H_
6#define PPAPI_THUNK_INSTANCE_API_H_
7
[email protected]a9b16dd2012-01-31 05:00:268#include "ppapi/c/dev/ppb_console_dev.h"
[email protected]03460232011-10-10 17:23:579#include "ppapi/c/dev/ppb_url_util_dev.h"
[email protected]18d871f2011-09-08 16:56:3410#include "ppapi/c/pp_completion_callback.h"
[email protected]c59ed5892012-02-18 01:10:1911#include "ppapi/c/ppb_audio_config.h"
[email protected]d5cc7192012-03-07 16:53:1612#include "ppapi/c/ppb_gamepad.h"
[email protected]ceadc392011-06-15 23:04:2413#include "ppapi/c/ppb_instance.h"
14#include "ppapi/c/pp_bool.h"
15#include "ppapi/c/pp_size.h"
16#include "ppapi/c/private/ppb_instance_private.h"
[email protected]ac4b54d2011-10-20 23:09:2817#include "ppapi/shared_impl/api_id.h"
[email protected]ceadc392011-06-15 23:04:2418
[email protected]0f41c012011-10-21 19:49:2019// Windows headers interfere with this file.
20#ifdef PostMessage
21#undef PostMessage
22#endif
23
[email protected]ceadc392011-06-15 23:04:2424namespace ppapi {
[email protected]e8f07ac2012-01-03 17:43:3625
26struct ViewData;
27
[email protected]ceadc392011-06-15 23:04:2428namespace thunk {
29
30class PPB_Instance_FunctionAPI {
31 public:
[email protected]cb4fdad2011-06-27 22:25:2932 virtual ~PPB_Instance_FunctionAPI() {}
[email protected]ceadc392011-06-15 23:04:2433
34 virtual PP_Bool BindGraphics(PP_Instance instance, PP_Resource device) = 0;
35 virtual PP_Bool IsFullFrame(PP_Instance instance) = 0;
36
[email protected]e8f07ac2012-01-03 17:43:3637 // Not an exposed PPAPI function, this returns the internal view data struct.
38 virtual const ViewData* GetViewData(PP_Instance instance) = 0;
39
[email protected]ceadc392011-06-15 23:04:2440 // InstancePrivate.
41 virtual PP_Var GetWindowObject(PP_Instance instance) = 0;
42 virtual PP_Var GetOwnerElementObject(PP_Instance instance) = 0;
43 virtual PP_Var ExecuteScript(PP_Instance instance,
44 PP_Var script,
45 PP_Var* exception) = 0;
46
[email protected]c59ed5892012-02-18 01:10:1947 // Audio.
48 virtual uint32_t GetAudioHardwareOutputSampleRate(PP_Instance instance) = 0;
49 virtual uint32_t GetAudioHardwareOutputBufferSize(PP_Instance instance) = 0;
50
[email protected]8d770e492011-10-11 04:54:3151 // CharSet.
52 virtual PP_Var GetDefaultCharSet(PP_Instance instance) = 0;
53
[email protected]5c966022011-09-13 18:09:3754 // Console.
55 virtual void Log(PP_Instance instance,
[email protected]a9b16dd2012-01-31 05:00:2656 PP_LogLevel_Dev log_level,
[email protected]5c966022011-09-13 18:09:3757 PP_Var value) = 0;
58 virtual void LogWithSource(PP_Instance instance,
[email protected]a9b16dd2012-01-31 05:00:2659 PP_LogLevel_Dev log_level,
[email protected]5c966022011-09-13 18:09:3760 PP_Var source,
61 PP_Var value) = 0;
62
[email protected]59cf7022011-09-14 22:44:1963 // Find.
64 virtual void NumberOfFindResultsChanged(PP_Instance instance,
65 int32_t total,
66 PP_Bool final_result) = 0;
67 virtual void SelectedFindResultChanged(PP_Instance instance,
68 int32_t index) = 0;
69
[email protected]7a26d92e2012-02-17 20:15:2570 // Font.
71 virtual PP_Var GetFontFamilies(PP_Instance instance) = 0;
72
[email protected]557730a2011-10-05 18:03:3873 // Fullscreen.
[email protected]06e0a342011-09-27 04:24:3074 virtual PP_Bool SetFullscreen(PP_Instance instance,
75 PP_Bool fullscreen) = 0;
76 virtual PP_Bool GetScreenSize(PP_Instance instance, PP_Size* size) = 0;
77
78 // FlashFullscreen.
[email protected]dafab752011-09-20 20:08:4079 virtual PP_Bool FlashIsFullscreen(PP_Instance instance) = 0;
80 virtual PP_Bool FlashSetFullscreen(PP_Instance instance,
81 PP_Bool fullscreen) = 0;
82 virtual PP_Bool FlashGetScreenSize(PP_Instance instance, PP_Size* size) = 0;
[email protected]cb4fdad2011-06-27 22:25:2983
[email protected]0a424af2012-01-10 19:24:2884 // Gamepad.
85 virtual void SampleGamepads(PP_Instance instance,
[email protected]d5cc7192012-03-07 16:53:1686 PP_GamepadsSampleData* data) = 0;
[email protected]0a424af2012-01-10 19:24:2887
[email protected]493d14212011-07-07 15:38:4888 // InputEvent.
89 virtual int32_t RequestInputEvents(PP_Instance instance,
90 uint32_t event_classes) = 0;
91 virtual int32_t RequestFilteringInputEvents(PP_Instance instance,
92 uint32_t event_classes) = 0;
93 virtual void ClearInputEventRequest(PP_Instance instance,
94 uint32_t event_classes) = 0;
95
[email protected]55a5a522011-07-06 22:52:4096 // Messaging.
97 virtual void PostMessage(PP_Instance instance, PP_Var message) = 0;
98
[email protected]18d871f2011-09-08 16:56:3499 // MouseLock.
100 virtual int32_t LockMouse(PP_Instance instance,
101 PP_CompletionCallback callback) = 0;
102 virtual void UnlockMouse(PP_Instance instance) = 0;
103
[email protected]15237942011-07-30 04:24:19104 // Zoom.
[email protected]55a5a522011-07-06 22:52:40105 virtual void ZoomChanged(PP_Instance instance, double factor) = 0;
106 virtual void ZoomLimitsChanged(PP_Instance instance,
107 double minimum_factor,
108 double maximium_factor) = 0;
109
[email protected]03460232011-10-10 17:23:57110 // URLUtil.
111 virtual PP_Var ResolveRelativeToDocument(
112 PP_Instance instance,
113 PP_Var relative,
114 PP_URLComponents_Dev* components) = 0;
115 virtual PP_Bool DocumentCanRequest(PP_Instance instance, PP_Var url) = 0;
116 virtual PP_Bool DocumentCanAccessDocument(PP_Instance instance,
117 PP_Instance target) = 0;
118 virtual PP_Var GetDocumentURL(PP_Instance instance,
119 PP_URLComponents_Dev* components) = 0;
120 virtual PP_Var GetPluginInstanceURL(PP_Instance instance,
121 PP_URLComponents_Dev* components) = 0;
122
[email protected]ac4b54d2011-10-20 23:09:28123 static const ApiID kApiID = API_ID_PPB_INSTANCE;
[email protected]ceadc392011-06-15 23:04:24124};
125
126} // namespace thunk
127} // namespace ppapi
128
129#endif // PPAPI_THUNK_INSTANCE_API_H_