- add sources.
[platform/framework/web/crosswalk.git] / src / content / renderer / pepper / resource_creation_impl.cc
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 #include "content/renderer/pepper/resource_creation_impl.h"
6
7 #include "content/renderer/pepper/common.h"
8 #include "content/renderer/pepper/ppb_audio_impl.h"
9 #include "content/renderer/pepper/ppb_broker_impl.h"
10 #include "content/renderer/pepper/ppb_buffer_impl.h"
11 #include "content/renderer/pepper/ppb_flash_message_loop_impl.h"
12 #include "content/renderer/pepper/ppb_graphics_3d_impl.h"
13 #include "content/renderer/pepper/ppb_image_data_impl.h"
14 #include "content/renderer/pepper/ppb_scrollbar_impl.h"
15 #include "content/renderer/pepper/ppb_video_decoder_impl.h"
16 #include "ppapi/c/pp_size.h"
17 #include "ppapi/shared_impl/ppb_audio_config_shared.h"
18 #include "ppapi/shared_impl/ppb_audio_shared.h"
19 #include "ppapi/shared_impl/ppb_image_data_shared.h"
20 #include "ppapi/shared_impl/ppb_input_event_shared.h"
21 #include "ppapi/shared_impl/ppb_resource_array_shared.h"
22 #include "ppapi/shared_impl/var.h"
23
24 using ppapi::InputEventData;
25 using ppapi::PPB_InputEvent_Shared;
26 using ppapi::PPB_ResourceArray_Shared;
27 using ppapi::StringVar;
28
29 namespace content {
30
31 ResourceCreationImpl::ResourceCreationImpl(PepperPluginInstanceImpl* instance) {
32 }
33
34 ResourceCreationImpl::~ResourceCreationImpl() {
35 }
36
37 PP_Resource ResourceCreationImpl::CreateAudio1_0(
38     PP_Instance instance,
39     PP_Resource config_id,
40     PPB_Audio_Callback_1_0 audio_callback,
41     void* user_data) {
42   return PPB_Audio_Impl::Create(
43       instance, config_id, ppapi::AudioCallbackCombined(audio_callback),
44       user_data);
45 }
46
47 PP_Resource ResourceCreationImpl::CreateAudio(
48     PP_Instance instance,
49     PP_Resource config_id,
50     PPB_Audio_Callback audio_callback,
51     void* user_data) {
52   return PPB_Audio_Impl::Create(
53       instance, config_id, ppapi::AudioCallbackCombined(audio_callback),
54       user_data);
55 }
56
57 PP_Resource ResourceCreationImpl::CreateAudioConfig(
58     PP_Instance instance,
59     PP_AudioSampleRate sample_rate,
60     uint32_t sample_frame_count) {
61   return ppapi::PPB_AudioConfig_Shared::Create(
62       ppapi::OBJECT_IS_IMPL, instance, sample_rate, sample_frame_count);
63 }
64
65 PP_Resource ResourceCreationImpl::CreateAudioTrusted(
66     PP_Instance instance) {
67   return (new PPB_Audio_Impl(instance))->GetReference();
68 }
69
70 PP_Resource ResourceCreationImpl::CreateAudioInput(PP_Instance instance) {
71   return 0;  // Not supported in-process.
72 }
73
74 PP_Resource ResourceCreationImpl::CreateBroker(PP_Instance instance) {
75   return (new PPB_Broker_Impl(instance))->GetReference();
76 }
77
78 PP_Resource ResourceCreationImpl::CreateBuffer(PP_Instance instance,
79                                                uint32_t size) {
80   return PPB_Buffer_Impl::Create(instance, size);
81 }
82
83 PP_Resource ResourceCreationImpl::CreateFlashDRM(PP_Instance instance) {
84   return 0;  // Not supported in-process.
85 }
86
87 PP_Resource ResourceCreationImpl::CreateFlashFontFile(
88     PP_Instance instance,
89     const PP_BrowserFont_Trusted_Description* description,
90     PP_PrivateFontCharset charset) {
91   return 0;  // Not supported in-process.
92 }
93
94 PP_Resource ResourceCreationImpl::CreateFlashMenu(
95     PP_Instance instance,
96     const PP_Flash_Menu* menu_data) {
97   return 0;  // Not supported in-process.
98 }
99
100 PP_Resource ResourceCreationImpl::CreateFlashMessageLoop(PP_Instance instance) {
101   return PPB_Flash_MessageLoop_Impl::Create(instance);
102 }
103
104 PP_Resource ResourceCreationImpl::CreateGraphics3D(
105     PP_Instance instance,
106     PP_Resource share_context,
107     const int32_t* attrib_list) {
108   return PPB_Graphics3D_Impl::Create(instance, share_context, attrib_list);
109 }
110
111 PP_Resource ResourceCreationImpl::CreateGraphics3DRaw(
112     PP_Instance instance,
113     PP_Resource share_context,
114     const int32_t* attrib_list) {
115   return PPB_Graphics3D_Impl::CreateRaw(instance, share_context, attrib_list);
116 }
117
118 PP_Resource ResourceCreationImpl::CreateHostResolver(PP_Instance instance) {
119   return 0;  // Not supported in-process.
120 }
121
122 PP_Resource ResourceCreationImpl::CreateHostResolverPrivate(
123     PP_Instance instance) {
124   return 0;  // Not supported in-process.
125 }
126
127 PP_Resource ResourceCreationImpl::CreateImageData(
128     PP_Instance instance,
129     PP_ImageDataFormat format,
130     const PP_Size* size,
131     PP_Bool init_to_zero) {
132   return PPB_ImageData_Impl::Create(instance,
133                                     ppapi::PPB_ImageData_Shared::PLATFORM,
134                                     format, *size, init_to_zero);
135 }
136
137 PP_Resource ResourceCreationImpl::CreateImageDataSimple(
138     PP_Instance instance,
139     PP_ImageDataFormat format,
140     const PP_Size* size,
141     PP_Bool init_to_zero) {
142   return PPB_ImageData_Impl::Create(instance,
143                                     ppapi::PPB_ImageData_Shared::SIMPLE,
144                                     format, *size, init_to_zero);
145 }
146
147 PP_Resource ResourceCreationImpl::CreateIMEInputEvent(
148     PP_Instance instance,
149     PP_InputEvent_Type type,
150     PP_TimeTicks time_stamp,
151     struct PP_Var text,
152     uint32_t segment_number,
153     const uint32_t* segment_offsets,
154     int32_t target_segment,
155     uint32_t selection_start,
156     uint32_t selection_end) {
157   return PPB_InputEvent_Shared::CreateIMEInputEvent(
158       ppapi::OBJECT_IS_IMPL, instance, type, time_stamp, text, segment_number,
159       segment_offsets, target_segment, selection_start, selection_end);
160 }
161
162 PP_Resource ResourceCreationImpl::CreateKeyboardInputEvent(
163     PP_Instance instance,
164     PP_InputEvent_Type type,
165     PP_TimeTicks time_stamp,
166     uint32_t modifiers,
167     uint32_t key_code,
168     struct PP_Var character_text) {
169   return PPB_InputEvent_Shared::CreateKeyboardInputEvent(
170       ppapi::OBJECT_IS_IMPL, instance, type, time_stamp, modifiers, key_code,
171       character_text);
172 }
173
174 PP_Resource ResourceCreationImpl::CreateMouseInputEvent(
175     PP_Instance instance,
176     PP_InputEvent_Type type,
177     PP_TimeTicks time_stamp,
178     uint32_t modifiers,
179     PP_InputEvent_MouseButton mouse_button,
180     const PP_Point* mouse_position,
181     int32_t click_count,
182     const PP_Point* mouse_movement) {
183   return PPB_InputEvent_Shared::CreateMouseInputEvent(
184       ppapi::OBJECT_IS_IMPL, instance, type, time_stamp, modifiers,
185       mouse_button, mouse_position, click_count, mouse_movement);
186 }
187
188 PP_Resource ResourceCreationImpl::CreateNetAddressFromIPv4Address(
189     PP_Instance instance,
190     const PP_NetAddress_IPv4* ipv4_addr) {
191   return 0;  // Not supported in-process.
192 }
193
194 PP_Resource ResourceCreationImpl::CreateNetAddressFromIPv6Address(
195     PP_Instance instance,
196     const PP_NetAddress_IPv6* ipv6_addr) {
197   return 0;  // Not supported in-process.
198 }
199
200 PP_Resource ResourceCreationImpl::CreateNetAddressFromNetAddressPrivate(
201     PP_Instance instance,
202     const PP_NetAddress_Private& private_addr) {
203   return 0;  // Not supported in-process.
204 }
205
206 PP_Resource ResourceCreationImpl::CreateTouchInputEvent(
207     PP_Instance instance,
208     PP_InputEvent_Type type,
209     PP_TimeTicks time_stamp,
210     uint32_t modifiers) {
211   return PPB_InputEvent_Shared::CreateTouchInputEvent(
212       ppapi::OBJECT_IS_IMPL, instance, type, time_stamp, modifiers);
213 }
214
215 PP_Resource ResourceCreationImpl::CreateNetworkMonitor(PP_Instance instance) {
216   return 0;  // Not supported in-process.
217 }
218
219 PP_Resource ResourceCreationImpl::CreateOutputProtectionPrivate(
220     PP_Instance instance) {
221   return 0;  // Not supported in-process.
222 }
223
224 PP_Resource ResourceCreationImpl::CreatePlatformVerificationPrivate(
225     PP_Instance instance) {
226   return 0;  // Not supported in-process.
227 }
228
229 PP_Resource ResourceCreationImpl::CreateScrollbar(PP_Instance instance,
230                                                   PP_Bool vertical) {
231   return PPB_Scrollbar_Impl::Create(instance, PP_ToBool(vertical));
232 }
233
234 PP_Resource ResourceCreationImpl::CreateTalk(PP_Instance /* instance */) {
235   return 0;  // Not supported in-process.
236 }
237
238 PP_Resource ResourceCreationImpl::CreateResourceArray(
239     PP_Instance instance,
240     const PP_Resource elements[],
241     uint32_t size) {
242   PPB_ResourceArray_Shared* object = new PPB_ResourceArray_Shared(
243       ppapi::OBJECT_IS_IMPL, instance, elements, size);
244   return object->GetReference();
245 }
246
247 PP_Resource ResourceCreationImpl::CreateTCPServerSocketPrivate(
248     PP_Instance instance) {
249   return 0;  // Not supported in-process.
250 }
251
252 PP_Resource ResourceCreationImpl::CreateTCPSocket1_0(PP_Instance instance) {
253   return 0;  // Not supported in-process.
254 }
255
256 PP_Resource ResourceCreationImpl::CreateTCPSocket(PP_Instance instance) {
257   return 0;  // Not supported in-process.
258 }
259
260 PP_Resource ResourceCreationImpl::CreateTCPSocketPrivate(PP_Instance instance) {
261   return 0;  // Not supported in-process.
262 }
263
264 PP_Resource ResourceCreationImpl::CreateUDPSocket(PP_Instance instance) {
265   return 0;  // Not supported in-process.
266 }
267
268 PP_Resource ResourceCreationImpl::CreateUDPSocketPrivate(PP_Instance instance) {
269   return 0;  // Not supported in-process.
270 }
271
272 PP_Resource ResourceCreationImpl::CreateVideoCapture(PP_Instance instance) {
273   return 0;  // VideoCapture is not supported in process now.
274 }
275
276 PP_Resource ResourceCreationImpl::CreateVideoDecoder(
277     PP_Instance instance,
278     PP_Resource graphics3d_id,
279     PP_VideoDecoder_Profile profile) {
280   return PPB_VideoDecoder_Impl::Create(instance, graphics3d_id, profile);
281 }
282
283 PP_Resource ResourceCreationImpl::CreateVideoDestination(
284     PP_Instance instance) {
285   return 0;  // Not supported in-process.
286 }
287
288 PP_Resource ResourceCreationImpl::CreateVideoSource(
289     PP_Instance instance) {
290   return 0;  // Not supported in-process.
291 }
292
293 PP_Resource ResourceCreationImpl::CreateWheelInputEvent(
294     PP_Instance instance,
295     PP_TimeTicks time_stamp,
296     uint32_t modifiers,
297     const PP_FloatPoint* wheel_delta,
298     const PP_FloatPoint* wheel_ticks,
299     PP_Bool scroll_by_page) {
300   return PPB_InputEvent_Shared::CreateWheelInputEvent(
301       ppapi::OBJECT_IS_IMPL, instance, time_stamp, modifiers,
302       wheel_delta, wheel_ticks, scroll_by_page);
303 }
304
305 PP_Resource ResourceCreationImpl::CreateX509CertificatePrivate(
306     PP_Instance instance) {
307   return 0;  // Not supported in-process.
308 }
309
310 }  // namespace content