1 : //
2 : // Automatically generated by ipdlc.
3 : // Edit at your own risk
4 : //
5 :
6 :
7 : #include "mozilla/dom/PAudioChild.h"
8 :
9 : #include "mozilla/dom/PContentChild.h"
10 :
11 : typedef IPC::Message Message;
12 : typedef mozilla::ipc::RPCChannel Channel;
13 : typedef mozilla::ipc::RPCChannel::RPCListener ChannelListener;
14 : typedef base::ProcessHandle ProcessHandle;
15 : typedef mozilla::ipc::AsyncChannel AsyncChannel;
16 : typedef mozilla::ipc::SharedMemory SharedMemory;
17 : typedef mozilla::ipc::Trigger Trigger;
18 : typedef mozilla::ipc::ActorHandle ActorHandle;
19 : typedef mozilla::ipc::Shmem Shmem;
20 : using mozilla::dom::PContentChild;
21 :
22 : namespace mozilla {
23 : namespace dom {
24 :
25 :
26 : bool
27 0 : PAudioChild::Recv__delete__()
28 : {
29 0 : return true;
30 : }
31 :
32 : void
33 0 : PAudioChild::ActorDestroy(ActorDestroyReason why)
34 : {
35 0 : }
36 :
37 0 : PAudioChild::PAudioChild() :
38 : mId(0),
39 0 : mState(PAudio::__Dead)
40 : {
41 0 : MOZ_COUNT_CTOR(PAudioChild);
42 0 : }
43 :
44 0 : PAudioChild::~PAudioChild()
45 : {
46 0 : MOZ_COUNT_DTOR(PAudioChild);
47 0 : }
48 :
49 : PContentChild*
50 0 : PAudioChild::Manager()
51 : {
52 0 : return static_cast<PContentChild*>(mManager);
53 : }
54 :
55 : PAudio::State
56 0 : PAudioChild::state()
57 : {
58 0 : return mState;
59 : }
60 :
61 : bool
62 0 : PAudioChild::SendWrite(
63 : const nsCString& data,
64 : const PRUint32& frames)
65 : {
66 0 : PAudio::Msg_Write* __msg = new PAudio::Msg_Write();
67 :
68 0 : Write(data, __msg);
69 0 : Write(frames, __msg);
70 :
71 0 : (__msg)->set_routing_id(mId);
72 :
73 :
74 :
75 0 : if (mozilla::ipc::LoggingEnabled()) {
76 0 : (__msg)->Log("[PAudioChild] Sending ", stderr);
77 : }
78 0 : if ((!(PAudio::Transition(mState, Trigger(Trigger::Recv, PAudio::Msg_Write__ID), (&(mState)))))) {
79 0 : NS_WARNING("bad state transition!");
80 : }
81 :
82 0 : bool __sendok = (mChannel)->Send(__msg);
83 0 : return __sendok;
84 : }
85 :
86 : bool
87 0 : PAudioChild::SendSetVolume(const float& aVolume)
88 : {
89 0 : PAudio::Msg_SetVolume* __msg = new PAudio::Msg_SetVolume();
90 :
91 0 : Write(aVolume, __msg);
92 :
93 0 : (__msg)->set_routing_id(mId);
94 :
95 :
96 :
97 0 : if (mozilla::ipc::LoggingEnabled()) {
98 0 : (__msg)->Log("[PAudioChild] Sending ", stderr);
99 : }
100 0 : if ((!(PAudio::Transition(mState, Trigger(Trigger::Recv, PAudio::Msg_SetVolume__ID), (&(mState)))))) {
101 0 : NS_WARNING("bad state transition!");
102 : }
103 :
104 0 : bool __sendok = (mChannel)->Send(__msg);
105 0 : return __sendok;
106 : }
107 :
108 : bool
109 0 : PAudioChild::SendMinWriteSize()
110 : {
111 0 : PAudio::Msg_MinWriteSize* __msg = new PAudio::Msg_MinWriteSize();
112 :
113 :
114 0 : (__msg)->set_routing_id(mId);
115 :
116 :
117 :
118 0 : if (mozilla::ipc::LoggingEnabled()) {
119 0 : (__msg)->Log("[PAudioChild] Sending ", stderr);
120 : }
121 0 : if ((!(PAudio::Transition(mState, Trigger(Trigger::Recv, PAudio::Msg_MinWriteSize__ID), (&(mState)))))) {
122 0 : NS_WARNING("bad state transition!");
123 : }
124 :
125 0 : bool __sendok = (mChannel)->Send(__msg);
126 0 : return __sendok;
127 : }
128 :
129 : bool
130 0 : PAudioChild::SendDrain()
131 : {
132 0 : PAudio::Msg_Drain* __msg = new PAudio::Msg_Drain();
133 :
134 :
135 0 : (__msg)->set_routing_id(mId);
136 :
137 :
138 :
139 0 : if (mozilla::ipc::LoggingEnabled()) {
140 0 : (__msg)->Log("[PAudioChild] Sending ", stderr);
141 : }
142 0 : if ((!(PAudio::Transition(mState, Trigger(Trigger::Recv, PAudio::Msg_Drain__ID), (&(mState)))))) {
143 0 : NS_WARNING("bad state transition!");
144 : }
145 :
146 0 : bool __sendok = (mChannel)->Send(__msg);
147 0 : return __sendok;
148 : }
149 :
150 : bool
151 0 : PAudioChild::SendPause()
152 : {
153 0 : PAudio::Msg_Pause* __msg = new PAudio::Msg_Pause();
154 :
155 :
156 0 : (__msg)->set_routing_id(mId);
157 :
158 :
159 :
160 0 : if (mozilla::ipc::LoggingEnabled()) {
161 0 : (__msg)->Log("[PAudioChild] Sending ", stderr);
162 : }
163 0 : if ((!(PAudio::Transition(mState, Trigger(Trigger::Recv, PAudio::Msg_Pause__ID), (&(mState)))))) {
164 0 : NS_WARNING("bad state transition!");
165 : }
166 :
167 0 : bool __sendok = (mChannel)->Send(__msg);
168 0 : return __sendok;
169 : }
170 :
171 : bool
172 0 : PAudioChild::SendResume()
173 : {
174 0 : PAudio::Msg_Resume* __msg = new PAudio::Msg_Resume();
175 :
176 :
177 0 : (__msg)->set_routing_id(mId);
178 :
179 :
180 :
181 0 : if (mozilla::ipc::LoggingEnabled()) {
182 0 : (__msg)->Log("[PAudioChild] Sending ", stderr);
183 : }
184 0 : if ((!(PAudio::Transition(mState, Trigger(Trigger::Recv, PAudio::Msg_Resume__ID), (&(mState)))))) {
185 0 : NS_WARNING("bad state transition!");
186 : }
187 :
188 0 : bool __sendok = (mChannel)->Send(__msg);
189 0 : return __sendok;
190 : }
191 :
192 : bool
193 0 : PAudioChild::SendShutdown()
194 : {
195 0 : PAudio::Msg_Shutdown* __msg = new PAudio::Msg_Shutdown();
196 :
197 :
198 0 : (__msg)->set_routing_id(mId);
199 :
200 :
201 :
202 0 : if (mozilla::ipc::LoggingEnabled()) {
203 0 : (__msg)->Log("[PAudioChild] Sending ", stderr);
204 : }
205 0 : if ((!(PAudio::Transition(mState, Trigger(Trigger::Recv, PAudio::Msg_Shutdown__ID), (&(mState)))))) {
206 0 : NS_WARNING("bad state transition!");
207 : }
208 :
209 0 : bool __sendok = (mChannel)->Send(__msg);
210 0 : return __sendok;
211 : }
212 :
213 : int32
214 0 : PAudioChild::Register(ChannelListener* aRouted)
215 : {
216 0 : return (mManager)->Register(aRouted);
217 : }
218 :
219 : int32
220 0 : PAudioChild::RegisterID(
221 : ChannelListener* aRouted,
222 : int32 aId)
223 : {
224 0 : return (mManager)->RegisterID(aRouted, aId);
225 : }
226 :
227 : ChannelListener*
228 0 : PAudioChild::Lookup(int32 aId)
229 : {
230 0 : return (mManager)->Lookup(aId);
231 : }
232 :
233 : void
234 0 : PAudioChild::Unregister(int32 aId)
235 : {
236 0 : return (mManager)->Unregister(aId);
237 : }
238 :
239 : void
240 0 : PAudioChild::RemoveManagee(
241 : int32 aProtocolId,
242 : ChannelListener* aListener)
243 : {
244 0 : NS_RUNTIMEABORT("unreached");
245 : return;
246 : }
247 :
248 : Shmem::SharedMemory*
249 0 : PAudioChild::CreateSharedMemory(
250 : size_t aSize,
251 : Shmem::SharedMemory::SharedMemoryType type,
252 : bool unsafe,
253 : Shmem::id_t* aId)
254 : {
255 0 : return (mManager)->CreateSharedMemory(aSize, type, unsafe, aId);
256 : }
257 :
258 : bool
259 0 : PAudioChild::AdoptSharedMemory(
260 : Shmem::SharedMemory* segment,
261 : Shmem::id_t* aId)
262 : {
263 0 : return (mManager)->AdoptSharedMemory(segment, aId);
264 : }
265 :
266 : Shmem::SharedMemory*
267 0 : PAudioChild::LookupSharedMemory(Shmem::id_t aId)
268 : {
269 0 : return (mManager)->LookupSharedMemory(aId);
270 : }
271 :
272 : bool
273 0 : PAudioChild::IsTrackingSharedMemory(Shmem::SharedMemory* segment)
274 : {
275 0 : return (mManager)->IsTrackingSharedMemory(segment);
276 : }
277 :
278 : bool
279 0 : PAudioChild::DestroySharedMemory(Shmem& aShmem)
280 : {
281 0 : return (mManager)->DestroySharedMemory(aShmem);
282 : }
283 :
284 : ProcessHandle
285 0 : PAudioChild::OtherProcess() const
286 : {
287 0 : return (mManager)->OtherProcess();
288 : }
289 :
290 : AsyncChannel*
291 0 : PAudioChild::GetIPCChannel()
292 : {
293 0 : return mChannel;
294 : }
295 :
296 : PAudioChild::Result
297 0 : PAudioChild::OnMessageReceived(const Message& __msg)
298 : {
299 0 : switch ((__msg).type()) {
300 : case PAudio::Msg___delete____ID:
301 : {
302 0 : (const_cast<Message&>(__msg)).set_name("PAudio::Msg___delete__");
303 0 : if (mozilla::ipc::LoggingEnabled()) {
304 0 : (static_cast<const PAudio::Msg___delete__*>((&(__msg))))->Log("[PAudioChild] Received ", stderr);
305 : }
306 :
307 0 : void* __iter = 0;
308 : PAudioChild* actor;
309 :
310 0 : if ((!(Read((&(actor)), (&(__msg)), (&(__iter)), false)))) {
311 0 : FatalError("error deserializing (better message TODO)");
312 0 : return MsgValueError;
313 : }
314 0 : (__msg).EndRead(__iter);
315 0 : if ((!(PAudio::Transition(mState, Trigger(Trigger::Send, PAudio::Msg___delete____ID), (&(mState)))))) {
316 0 : NS_WARNING("bad state transition!");
317 : }
318 0 : if ((!(Recv__delete__()))) {
319 0 : return MsgProcessingError;
320 : }
321 :
322 0 : (actor)->DestroySubtree(Deletion);
323 0 : (actor)->DeallocSubtree();
324 0 : ((actor)->mManager)->RemoveManagee(PAudioMsgStart, actor);
325 :
326 :
327 0 : return MsgProcessed;
328 : }
329 : case PAudio::Msg_PositionInFramesUpdate__ID:
330 : {
331 0 : (const_cast<Message&>(__msg)).set_name("PAudio::Msg_PositionInFramesUpdate");
332 0 : if (mozilla::ipc::LoggingEnabled()) {
333 0 : (static_cast<const PAudio::Msg_PositionInFramesUpdate*>((&(__msg))))->Log("[PAudioChild] Received ", stderr);
334 : }
335 :
336 0 : void* __iter = 0;
337 : PRInt64 position;
338 : PRInt64 time;
339 :
340 0 : if ((!(Read((&(position)), (&(__msg)), (&(__iter)))))) {
341 0 : FatalError("error deserializing (better message TODO)");
342 0 : return MsgValueError;
343 : }
344 0 : if ((!(Read((&(time)), (&(__msg)), (&(__iter)))))) {
345 0 : FatalError("error deserializing (better message TODO)");
346 0 : return MsgValueError;
347 : }
348 0 : (__msg).EndRead(__iter);
349 0 : if ((!(PAudio::Transition(mState, Trigger(Trigger::Send, PAudio::Msg_PositionInFramesUpdate__ID), (&(mState)))))) {
350 0 : NS_WARNING("bad state transition!");
351 : }
352 0 : if ((!(RecvPositionInFramesUpdate(position, time)))) {
353 0 : return MsgProcessingError;
354 : }
355 :
356 0 : return MsgProcessed;
357 : }
358 : case PAudio::Msg_MinWriteSizeDone__ID:
359 : {
360 0 : (const_cast<Message&>(__msg)).set_name("PAudio::Msg_MinWriteSizeDone");
361 0 : if (mozilla::ipc::LoggingEnabled()) {
362 0 : (static_cast<const PAudio::Msg_MinWriteSizeDone*>((&(__msg))))->Log("[PAudioChild] Received ", stderr);
363 : }
364 :
365 0 : void* __iter = 0;
366 : PRInt32 frameCount;
367 :
368 0 : if ((!(Read((&(frameCount)), (&(__msg)), (&(__iter)))))) {
369 0 : FatalError("error deserializing (better message TODO)");
370 0 : return MsgValueError;
371 : }
372 0 : (__msg).EndRead(__iter);
373 0 : if ((!(PAudio::Transition(mState, Trigger(Trigger::Send, PAudio::Msg_MinWriteSizeDone__ID), (&(mState)))))) {
374 0 : NS_WARNING("bad state transition!");
375 : }
376 0 : if ((!(RecvMinWriteSizeDone(frameCount)))) {
377 0 : return MsgProcessingError;
378 : }
379 :
380 0 : return MsgProcessed;
381 : }
382 : case PAudio::Msg_DrainDone__ID:
383 : {
384 0 : (const_cast<Message&>(__msg)).set_name("PAudio::Msg_DrainDone");
385 0 : if (mozilla::ipc::LoggingEnabled()) {
386 0 : (static_cast<const PAudio::Msg_DrainDone*>((&(__msg))))->Log("[PAudioChild] Received ", stderr);
387 : }
388 :
389 0 : if ((!(PAudio::Transition(mState, Trigger(Trigger::Send, PAudio::Msg_DrainDone__ID), (&(mState)))))) {
390 0 : NS_WARNING("bad state transition!");
391 : }
392 0 : if ((!(RecvDrainDone()))) {
393 0 : return MsgProcessingError;
394 : }
395 :
396 0 : return MsgProcessed;
397 : }
398 : default:
399 : {
400 0 : return MsgNotKnown;
401 : }
402 : }
403 : }
404 :
405 : PAudioChild::Result
406 0 : PAudioChild::OnMessageReceived(
407 : const Message& __msg,
408 : Message*& __reply)
409 : {
410 0 : return MsgNotKnown;
411 : }
412 :
413 : PAudioChild::Result
414 0 : PAudioChild::OnCallReceived(
415 : const Message& __msg,
416 : Message*& __reply)
417 : {
418 0 : return MsgNotKnown;
419 : }
420 :
421 : void
422 0 : PAudioChild::OnProcessingError(Result code)
423 : {
424 0 : NS_RUNTIMEABORT("`OnProcessingError' called on non-toplevel actor");
425 0 : }
426 :
427 : bool
428 0 : PAudioChild::OnReplyTimeout()
429 : {
430 0 : NS_RUNTIMEABORT("`OnReplyTimeout' called on non-toplevel actor");
431 0 : return false;
432 : }
433 :
434 : void
435 0 : PAudioChild::OnChannelClose()
436 : {
437 0 : NS_RUNTIMEABORT("`OnClose' called on non-toplevel actor");
438 0 : }
439 :
440 : void
441 0 : PAudioChild::OnChannelError()
442 : {
443 0 : NS_RUNTIMEABORT("`OnError' called on non-toplevel actor");
444 0 : }
445 :
446 : void
447 0 : PAudioChild::OnChannelConnected(int32 pid)
448 : {
449 0 : NS_RUNTIMEABORT("'OnConnected' called on non-toplevel actor");
450 0 : }
451 :
452 : bool
453 0 : PAudioChild::AllocShmem(
454 : size_t aSize,
455 : Shmem::SharedMemory::SharedMemoryType aType,
456 : Shmem* aMem)
457 : {
458 : Shmem::id_t aId;
459 0 : nsAutoPtr<Shmem::SharedMemory> rawmem(CreateSharedMemory(aSize, aType, false, (&(aId))));
460 0 : if ((!(rawmem))) {
461 0 : return false;
462 : }
463 :
464 0 : (*(aMem)) = Shmem(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead(), (rawmem).forget(), aId);
465 0 : return true;
466 : }
467 :
468 : bool
469 0 : PAudioChild::AllocUnsafeShmem(
470 : size_t aSize,
471 : Shmem::SharedMemory::SharedMemoryType aType,
472 : Shmem* aMem)
473 : {
474 : Shmem::id_t aId;
475 0 : nsAutoPtr<Shmem::SharedMemory> rawmem(CreateSharedMemory(aSize, aType, true, (&(aId))));
476 0 : if ((!(rawmem))) {
477 0 : return false;
478 : }
479 :
480 0 : (*(aMem)) = Shmem(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead(), (rawmem).forget(), aId);
481 0 : return true;
482 : }
483 :
484 : bool
485 0 : PAudioChild::AdoptShmem(
486 : Shmem& aMem,
487 : Shmem* aOutMem)
488 : {
489 0 : Shmem::SharedMemory* rawmem = (aMem).Segment(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead());
490 0 : if (((!(rawmem))) || (IsTrackingSharedMemory(rawmem))) {
491 0 : NS_RUNTIMEABORT("bad Shmem");
492 : }
493 :
494 : Shmem::id_t aId;
495 0 : if ((!(AdoptSharedMemory(rawmem, (&(aId)))))) {
496 0 : return false;
497 : }
498 :
499 0 : (*(aOutMem)) = Shmem(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead(), rawmem, aId);
500 0 : return true;
501 : }
502 :
503 : bool
504 0 : PAudioChild::DeallocShmem(Shmem& aMem)
505 : {
506 0 : bool ok = DestroySharedMemory(aMem);
507 0 : (aMem).forget(Shmem::IHadBetterBeIPDLCodeCallingThis_OtherwiseIAmADoodyhead());
508 0 : return ok;
509 : }
510 :
511 : void
512 0 : PAudioChild::FatalError(const char* const msg) const
513 : {
514 : // Virtual method to prevent inlining.
515 : // This give us better error reporting.
516 : // See bug 589371
517 :
518 0 : NS_ERROR("IPDL error:");
519 0 : NS_ERROR(msg);
520 :
521 0 : NS_RUNTIMEABORT("[PAudioChild] abort()ing as a result");
522 0 : }
523 :
524 : void
525 0 : PAudioChild::DestroySubtree(ActorDestroyReason why)
526 : {
527 : // Unregister from our manager.
528 0 : Unregister(mId);
529 0 : mId = 1;
530 :
531 : // Finally, destroy "us".
532 0 : ActorDestroy(why);
533 0 : }
534 :
535 : void
536 0 : PAudioChild::DeallocSubtree()
537 : {
538 0 : }
539 :
540 : void
541 0 : PAudioChild::Write(
542 : PAudioChild* __v,
543 : Message* __msg,
544 : bool __nullable)
545 : {
546 : int32 id;
547 0 : if ((!(__v))) {
548 0 : if ((!(__nullable))) {
549 0 : NS_RUNTIMEABORT("NULL actor value passed to non-nullable param");
550 : }
551 0 : id = 0;
552 : }
553 : else {
554 0 : id = (__v)->mId;
555 0 : if ((1) == (id)) {
556 0 : NS_RUNTIMEABORT("actor has been |delete|d");
557 : }
558 : }
559 :
560 0 : Write(id, __msg);
561 0 : }
562 :
563 : bool
564 0 : PAudioChild::Read(
565 : PAudioChild** __v,
566 : const Message* __msg,
567 : void** __iter,
568 : bool __nullable)
569 : {
570 : int32 id;
571 0 : if ((!(Read((&(id)), __msg, __iter)))) {
572 0 : return false;
573 : }
574 0 : if (((1) == (id)) || (((0) == (id)) && ((!(__nullable))))) {
575 0 : return false;
576 : }
577 :
578 0 : if ((0) == (id)) {
579 0 : (*(__v)) = 0;
580 : }
581 : else {
582 0 : (*(__v)) = static_cast<PAudioChild*>(Lookup(id));
583 0 : if ((!((*(__v))))) {
584 0 : return false;
585 : }
586 : }
587 0 : return true;
588 : }
589 :
590 :
591 :
592 : } // namespace dom
593 : } // namespace mozilla
|