blob: 7ce4e78e3b82fcd4eb66bc20987038ddf5ef3881 [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]3b98ced72012-03-09 02:08:3310#include "ppapi/c/pp_bool.h"
[email protected]18d871f2011-09-08 16:56:3411#include "ppapi/c/pp_completion_callback.h"
[email protected]3b98ced72012-03-09 02:08:3312#include "ppapi/c/pp_size.h"
13#include "ppapi/c/pp_time.h"
[email protected]c59ed5892012-02-18 01:10:1914#include "ppapi/c/ppb_audio_config.h"
[email protected]d5cc7192012-03-07 16:53:1615#include "ppapi/c/ppb_gamepad.h"
[email protected]ceadc392011-06-15 23:04:2416#include "ppapi/c/ppb_instance.h"
[email protected]33ec50562012-04-08 20:28:4317#include "ppapi/c/ppb_mouse_cursor.h"
[email protected]ceadc392011-06-15 23:04:2418#include "ppapi/c/private/ppb_instance_private.h"
[email protected]ac4b54d2011-10-20 23:09:2819#include "ppapi/shared_impl/api_id.h"
[email protected]ceadc392011-06-15 23:04:2420
[email protected]0f41c012011-10-21 19:49:2021// Windows headers interfere with this file.
22#ifdef PostMessage
23#undef PostMessage
24#endif
25
[email protected]ceadc392011-06-15 23:04:2426namespace ppapi {
[email protected]e8f07ac2012-01-03 17:43:3627
28struct ViewData;
29
[email protected]ceadc392011-06-15 23:04:2430namespace thunk {
31
32class PPB_Instance_FunctionAPI {
33 public:
[email protected]cb4fdad2011-06-27 22:25:2934 virtual ~PPB_Instance_FunctionAPI() {}
[email protected]ceadc392011-06-15 23:04:2435
36 virtual PP_Bool BindGraphics(PP_Instance instance, PP_Resource device) = 0;
37 virtual PP_Bool IsFullFrame(PP_Instance instance) = 0;
38
[email protected]e8f07ac2012-01-03 17:43:3639 // Not an exposed PPAPI function, this returns the internal view data struct.
40 virtual const ViewData* GetViewData(PP_Instance instance) = 0;
41
[email protected]ceadc392011-06-15 23:04:2442 // InstancePrivate.
43 virtual PP_Var GetWindowObject(PP_Instance instance) = 0;
44 virtual PP_Var GetOwnerElementObject(PP_Instance instance) = 0;
45 virtual PP_Var ExecuteScript(PP_Instance instance,
46 PP_Var script,
47 PP_Var* exception) = 0;
48
[email protected]c59ed5892012-02-18 01:10:1949 // Audio.
50 virtual uint32_t GetAudioHardwareOutputSampleRate(PP_Instance instance) = 0;
51 virtual uint32_t GetAudioHardwareOutputBufferSize(PP_Instance instance) = 0;
52
[email protected]8d770e492011-10-11 04:54:3153 // CharSet.
54 virtual PP_Var GetDefaultCharSet(PP_Instance instance) = 0;
55
[email protected]5c966022011-09-13 18:09:3756 // Console.
57 virtual void Log(PP_Instance instance,
[email protected]a9b16dd2012-01-31 05:00:2658 PP_LogLevel_Dev log_level,
[email protected]5c966022011-09-13 18:09:3759 PP_Var value) = 0;
60 virtual void LogWithSource(PP_Instance instance,
[email protected]a9b16dd2012-01-31 05:00:2661 PP_LogLevel_Dev log_level,
[email protected]5c966022011-09-13 18:09:3762 PP_Var source,
63 PP_Var value) = 0;
64
[email protected]59cf7022011-09-14 22:44:1965 // Find.
66 virtual void NumberOfFindResultsChanged(PP_Instance instance,
67 int32_t total,
68 PP_Bool final_result) = 0;
69 virtual void SelectedFindResultChanged(PP_Instance instance,
70 int32_t index) = 0;
71
[email protected]7a26d92e2012-02-17 20:15:2572 // Font.
73 virtual PP_Var GetFontFamilies(PP_Instance instance) = 0;
74
[email protected]557730a2011-10-05 18:03:3875 // Fullscreen.
[email protected]06e0a342011-09-27 04:24:3076 virtual PP_Bool SetFullscreen(PP_Instance instance,
77 PP_Bool fullscreen) = 0;
78 virtual PP_Bool GetScreenSize(PP_Instance instance, PP_Size* size) = 0;
79
80 // FlashFullscreen.
[email protected]dafab752011-09-20 20:08:4081 virtual PP_Bool FlashIsFullscreen(PP_Instance instance) = 0;
82 virtual PP_Bool FlashSetFullscreen(PP_Instance instance,
83 PP_Bool fullscreen) = 0;
84 virtual PP_Bool FlashGetScreenSize(PP_Instance instance, PP_Size* size) = 0;
[email protected]cb4fdad2011-06-27 22:25:2985
[email protected]0a424af2012-01-10 19:24:2886 // Gamepad.
87 virtual void SampleGamepads(PP_Instance instance,
[email protected]d5cc7192012-03-07 16:53:1688 PP_GamepadsSampleData* data) = 0;
[email protected]0a424af2012-01-10 19:24:2889
[email protected]493d14212011-07-07 15:38:4890 // InputEvent.
91 virtual int32_t RequestInputEvents(PP_Instance instance,
92 uint32_t event_classes) = 0;
93 virtual int32_t RequestFilteringInputEvents(PP_Instance instance,
94 uint32_t event_classes) = 0;
95 virtual void ClearInputEventRequest(PP_Instance instance,
96 uint32_t event_classes) = 0;
[email protected]3b98ced72012-03-09 02:08:3397 virtual void ClosePendingUserGesture(PP_Instance instance,
98 PP_TimeTicks timestamp) = 0;
[email protected]493d14212011-07-07 15:38:4899
[email protected]55a5a522011-07-06 22:52:40100 // Messaging.
101 virtual void PostMessage(PP_Instance instance, PP_Var message) = 0;
102
[email protected]33ec50562012-04-08 20:28:43103 // Mouse cursor.
104 virtual PP_Bool SetCursor(PP_Instance instance,
105 PP_MouseCursor_Type type,
[email protected]c6da0bcc2012-04-11 23:10:36106 PP_Resource image,
107 const PP_Point* hot_spot) = 0;
[email protected]33ec50562012-04-08 20:28:43108
[email protected]18d871f2011-09-08 16:56:34109 // MouseLock.
110 virtual int32_t LockMouse(PP_Instance instance,
111 PP_CompletionCallback callback) = 0;
112 virtual void UnlockMouse(PP_Instance instance) = 0;
113
[email protected]15237942011-07-30 04:24:19114 // Zoom.
[email protected]55a5a522011-07-06 22:52:40115 virtual void ZoomChanged(PP_Instance instance, double factor) = 0;
116 virtual void ZoomLimitsChanged(PP_Instance instance,
117 double minimum_factor,
118 double maximium_factor) = 0;
119
[email protected]03460232011-10-10 17:23:57120 // URLUtil.
121 virtual PP_Var ResolveRelativeToDocument(
122 PP_Instance instance,
123 PP_Var relative,
124 PP_URLComponents_Dev* components) = 0;
125 virtual PP_Bool DocumentCanRequest(PP_Instance instance, PP_Var url) = 0;
126 virtual PP_Bool DocumentCanAccessDocument(PP_Instance instance,
127 PP_Instance target) = 0;
128 virtual PP_Var GetDocumentURL(PP_Instance instance,
129 PP_URLComponents_Dev* components) = 0;
130 virtual PP_Var GetPluginInstanceURL(PP_Instance instance,
131 PP_URLComponents_Dev* components) = 0;
132
[email protected]ac4b54d2011-10-20 23:09:28133 static const ApiID kApiID = API_ID_PPB_INSTANCE;
[email protected]ceadc392011-06-15 23:04:24134};
135
136} // namespace thunk
137} // namespace ppapi
138
139#endif // PPAPI_THUNK_INSTANCE_API_H_