1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
8use futures::future::{self, MaybeDone, TryFutureExt};
9use zx_status;
10
11#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
13#[repr(u32)]
14pub enum PlaySoundError {
15 NoSuchSound = 1,
17 RendererFailed = 2,
19 Stopped = 3,
21}
22
23impl PlaySoundError {
24 #[inline]
25 pub fn from_primitive(prim: u32) -> Option<Self> {
26 match prim {
27 1 => Some(Self::NoSuchSound),
28 2 => Some(Self::RendererFailed),
29 3 => Some(Self::Stopped),
30 _ => None,
31 }
32 }
33
34 #[inline]
35 pub const fn into_primitive(self) -> u32 {
36 self as u32
37 }
38}
39
40#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
41pub struct PlayerPlaySound2Request {
42 pub id: u32,
43 pub usage: fidl_fuchsia_media__common::AudioRenderUsage2,
44}
45
46impl fidl::Persistable for PlayerPlaySound2Request {}
47
48#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
49pub struct PlayerPlaySoundRequest {
50 pub id: u32,
51 pub usage: fidl_fuchsia_media__common::AudioRenderUsage,
52}
53
54impl fidl::Persistable for PlayerPlaySoundRequest {}
55
56#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
57#[repr(C)]
58pub struct PlayerRemoveSoundRequest {
59 pub id: u32,
60}
61
62impl fidl::Persistable for PlayerRemoveSoundRequest {}
63
64#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
65#[repr(C)]
66pub struct PlayerStopPlayingSoundRequest {
67 pub id: u32,
68}
69
70impl fidl::Persistable for PlayerStopPlayingSoundRequest {}
71
72#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
73#[repr(C)]
74pub struct PlayerAddSoundFromFileResponse {
75 pub duration: i64,
76}
77
78impl fidl::Persistable for PlayerAddSoundFromFileResponse {}
79
80mod internal {
81 use super::*;
82 unsafe impl fidl::encoding::TypeMarker for PlaySoundError {
83 type Owned = Self;
84
85 #[inline(always)]
86 fn inline_align(_context: fidl::encoding::Context) -> usize {
87 std::mem::align_of::<u32>()
88 }
89
90 #[inline(always)]
91 fn inline_size(_context: fidl::encoding::Context) -> usize {
92 std::mem::size_of::<u32>()
93 }
94
95 #[inline(always)]
96 fn encode_is_copy() -> bool {
97 true
98 }
99
100 #[inline(always)]
101 fn decode_is_copy() -> bool {
102 false
103 }
104 }
105
106 impl fidl::encoding::ValueTypeMarker for PlaySoundError {
107 type Borrowed<'a> = Self;
108 #[inline(always)]
109 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
110 *value
111 }
112 }
113
114 unsafe impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Encode<Self, D> for PlaySoundError {
115 #[inline]
116 unsafe fn encode(
117 self,
118 encoder: &mut fidl::encoding::Encoder<'_, D>,
119 offset: usize,
120 _depth: fidl::encoding::Depth,
121 ) -> fidl::Result<()> {
122 encoder.debug_check_bounds::<Self>(offset);
123 encoder.write_num(self.into_primitive(), offset);
124 Ok(())
125 }
126 }
127
128 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D> for PlaySoundError {
129 #[inline(always)]
130 fn new_empty() -> Self {
131 Self::NoSuchSound
132 }
133
134 #[inline]
135 unsafe fn decode(
136 &mut self,
137 decoder: &mut fidl::encoding::Decoder<'_, D>,
138 offset: usize,
139 _depth: fidl::encoding::Depth,
140 ) -> fidl::Result<()> {
141 decoder.debug_check_bounds::<Self>(offset);
142 let prim = decoder.read_num::<u32>(offset);
143
144 *self = Self::from_primitive(prim).ok_or(fidl::Error::InvalidEnumValue)?;
145 Ok(())
146 }
147 }
148
149 impl fidl::encoding::ValueTypeMarker for PlayerPlaySound2Request {
150 type Borrowed<'a> = &'a Self;
151 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
152 value
153 }
154 }
155
156 unsafe impl fidl::encoding::TypeMarker for PlayerPlaySound2Request {
157 type Owned = Self;
158
159 #[inline(always)]
160 fn inline_align(_context: fidl::encoding::Context) -> usize {
161 4
162 }
163
164 #[inline(always)]
165 fn inline_size(_context: fidl::encoding::Context) -> usize {
166 8
167 }
168 }
169
170 unsafe impl<D: fidl::encoding::ResourceDialect>
171 fidl::encoding::Encode<PlayerPlaySound2Request, D> for &PlayerPlaySound2Request
172 {
173 #[inline]
174 unsafe fn encode(
175 self,
176 encoder: &mut fidl::encoding::Encoder<'_, D>,
177 offset: usize,
178 _depth: fidl::encoding::Depth,
179 ) -> fidl::Result<()> {
180 encoder.debug_check_bounds::<PlayerPlaySound2Request>(offset);
181 fidl::encoding::Encode::<PlayerPlaySound2Request, D>::encode(
183 (
184 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.id),
185 <fidl_fuchsia_media__common::AudioRenderUsage2 as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
186 ),
187 encoder, offset, _depth
188 )
189 }
190 }
191 unsafe impl<
192 D: fidl::encoding::ResourceDialect,
193 T0: fidl::encoding::Encode<u32, D>,
194 T1: fidl::encoding::Encode<fidl_fuchsia_media__common::AudioRenderUsage2, D>,
195 > fidl::encoding::Encode<PlayerPlaySound2Request, D> for (T0, T1)
196 {
197 #[inline]
198 unsafe fn encode(
199 self,
200 encoder: &mut fidl::encoding::Encoder<'_, D>,
201 offset: usize,
202 depth: fidl::encoding::Depth,
203 ) -> fidl::Result<()> {
204 encoder.debug_check_bounds::<PlayerPlaySound2Request>(offset);
205 self.0.encode(encoder, offset + 0, depth)?;
209 self.1.encode(encoder, offset + 4, depth)?;
210 Ok(())
211 }
212 }
213
214 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
215 for PlayerPlaySound2Request
216 {
217 #[inline(always)]
218 fn new_empty() -> Self {
219 Self {
220 id: fidl::new_empty!(u32, D),
221 usage: fidl::new_empty!(fidl_fuchsia_media__common::AudioRenderUsage2, D),
222 }
223 }
224
225 #[inline]
226 unsafe fn decode(
227 &mut self,
228 decoder: &mut fidl::encoding::Decoder<'_, D>,
229 offset: usize,
230 _depth: fidl::encoding::Depth,
231 ) -> fidl::Result<()> {
232 decoder.debug_check_bounds::<Self>(offset);
233 fidl::decode!(u32, D, &mut self.id, decoder, offset + 0, _depth)?;
235 fidl::decode!(
236 fidl_fuchsia_media__common::AudioRenderUsage2,
237 D,
238 &mut self.usage,
239 decoder,
240 offset + 4,
241 _depth
242 )?;
243 Ok(())
244 }
245 }
246
247 impl fidl::encoding::ValueTypeMarker for PlayerPlaySoundRequest {
248 type Borrowed<'a> = &'a Self;
249 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
250 value
251 }
252 }
253
254 unsafe impl fidl::encoding::TypeMarker for PlayerPlaySoundRequest {
255 type Owned = Self;
256
257 #[inline(always)]
258 fn inline_align(_context: fidl::encoding::Context) -> usize {
259 4
260 }
261
262 #[inline(always)]
263 fn inline_size(_context: fidl::encoding::Context) -> usize {
264 8
265 }
266 }
267
268 unsafe impl<D: fidl::encoding::ResourceDialect>
269 fidl::encoding::Encode<PlayerPlaySoundRequest, D> for &PlayerPlaySoundRequest
270 {
271 #[inline]
272 unsafe fn encode(
273 self,
274 encoder: &mut fidl::encoding::Encoder<'_, D>,
275 offset: usize,
276 _depth: fidl::encoding::Depth,
277 ) -> fidl::Result<()> {
278 encoder.debug_check_bounds::<PlayerPlaySoundRequest>(offset);
279 fidl::encoding::Encode::<PlayerPlaySoundRequest, D>::encode(
281 (
282 <u32 as fidl::encoding::ValueTypeMarker>::borrow(&self.id),
283 <fidl_fuchsia_media__common::AudioRenderUsage as fidl::encoding::ValueTypeMarker>::borrow(&self.usage),
284 ),
285 encoder, offset, _depth
286 )
287 }
288 }
289 unsafe impl<
290 D: fidl::encoding::ResourceDialect,
291 T0: fidl::encoding::Encode<u32, D>,
292 T1: fidl::encoding::Encode<fidl_fuchsia_media__common::AudioRenderUsage, D>,
293 > fidl::encoding::Encode<PlayerPlaySoundRequest, D> for (T0, T1)
294 {
295 #[inline]
296 unsafe fn encode(
297 self,
298 encoder: &mut fidl::encoding::Encoder<'_, D>,
299 offset: usize,
300 depth: fidl::encoding::Depth,
301 ) -> fidl::Result<()> {
302 encoder.debug_check_bounds::<PlayerPlaySoundRequest>(offset);
303 self.0.encode(encoder, offset + 0, depth)?;
307 self.1.encode(encoder, offset + 4, depth)?;
308 Ok(())
309 }
310 }
311
312 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
313 for PlayerPlaySoundRequest
314 {
315 #[inline(always)]
316 fn new_empty() -> Self {
317 Self {
318 id: fidl::new_empty!(u32, D),
319 usage: fidl::new_empty!(fidl_fuchsia_media__common::AudioRenderUsage, D),
320 }
321 }
322
323 #[inline]
324 unsafe fn decode(
325 &mut self,
326 decoder: &mut fidl::encoding::Decoder<'_, D>,
327 offset: usize,
328 _depth: fidl::encoding::Depth,
329 ) -> fidl::Result<()> {
330 decoder.debug_check_bounds::<Self>(offset);
331 fidl::decode!(u32, D, &mut self.id, decoder, offset + 0, _depth)?;
333 fidl::decode!(
334 fidl_fuchsia_media__common::AudioRenderUsage,
335 D,
336 &mut self.usage,
337 decoder,
338 offset + 4,
339 _depth
340 )?;
341 Ok(())
342 }
343 }
344
345 impl fidl::encoding::ValueTypeMarker for PlayerRemoveSoundRequest {
346 type Borrowed<'a> = &'a Self;
347 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
348 value
349 }
350 }
351
352 unsafe impl fidl::encoding::TypeMarker for PlayerRemoveSoundRequest {
353 type Owned = Self;
354
355 #[inline(always)]
356 fn inline_align(_context: fidl::encoding::Context) -> usize {
357 4
358 }
359
360 #[inline(always)]
361 fn inline_size(_context: fidl::encoding::Context) -> usize {
362 4
363 }
364 #[inline(always)]
365 fn encode_is_copy() -> bool {
366 true
367 }
368
369 #[inline(always)]
370 fn decode_is_copy() -> bool {
371 true
372 }
373 }
374
375 unsafe impl<D: fidl::encoding::ResourceDialect>
376 fidl::encoding::Encode<PlayerRemoveSoundRequest, D> for &PlayerRemoveSoundRequest
377 {
378 #[inline]
379 unsafe fn encode(
380 self,
381 encoder: &mut fidl::encoding::Encoder<'_, D>,
382 offset: usize,
383 _depth: fidl::encoding::Depth,
384 ) -> fidl::Result<()> {
385 encoder.debug_check_bounds::<PlayerRemoveSoundRequest>(offset);
386 unsafe {
387 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
389 (buf_ptr as *mut PlayerRemoveSoundRequest)
390 .write_unaligned((self as *const PlayerRemoveSoundRequest).read());
391 }
394 Ok(())
395 }
396 }
397 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
398 fidl::encoding::Encode<PlayerRemoveSoundRequest, D> for (T0,)
399 {
400 #[inline]
401 unsafe fn encode(
402 self,
403 encoder: &mut fidl::encoding::Encoder<'_, D>,
404 offset: usize,
405 depth: fidl::encoding::Depth,
406 ) -> fidl::Result<()> {
407 encoder.debug_check_bounds::<PlayerRemoveSoundRequest>(offset);
408 self.0.encode(encoder, offset + 0, depth)?;
412 Ok(())
413 }
414 }
415
416 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
417 for PlayerRemoveSoundRequest
418 {
419 #[inline(always)]
420 fn new_empty() -> Self {
421 Self { id: fidl::new_empty!(u32, D) }
422 }
423
424 #[inline]
425 unsafe fn decode(
426 &mut self,
427 decoder: &mut fidl::encoding::Decoder<'_, D>,
428 offset: usize,
429 _depth: fidl::encoding::Depth,
430 ) -> fidl::Result<()> {
431 decoder.debug_check_bounds::<Self>(offset);
432 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
433 unsafe {
436 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
437 }
438 Ok(())
439 }
440 }
441
442 impl fidl::encoding::ValueTypeMarker for PlayerStopPlayingSoundRequest {
443 type Borrowed<'a> = &'a Self;
444 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
445 value
446 }
447 }
448
449 unsafe impl fidl::encoding::TypeMarker for PlayerStopPlayingSoundRequest {
450 type Owned = Self;
451
452 #[inline(always)]
453 fn inline_align(_context: fidl::encoding::Context) -> usize {
454 4
455 }
456
457 #[inline(always)]
458 fn inline_size(_context: fidl::encoding::Context) -> usize {
459 4
460 }
461 #[inline(always)]
462 fn encode_is_copy() -> bool {
463 true
464 }
465
466 #[inline(always)]
467 fn decode_is_copy() -> bool {
468 true
469 }
470 }
471
472 unsafe impl<D: fidl::encoding::ResourceDialect>
473 fidl::encoding::Encode<PlayerStopPlayingSoundRequest, D>
474 for &PlayerStopPlayingSoundRequest
475 {
476 #[inline]
477 unsafe fn encode(
478 self,
479 encoder: &mut fidl::encoding::Encoder<'_, D>,
480 offset: usize,
481 _depth: fidl::encoding::Depth,
482 ) -> fidl::Result<()> {
483 encoder.debug_check_bounds::<PlayerStopPlayingSoundRequest>(offset);
484 unsafe {
485 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
487 (buf_ptr as *mut PlayerStopPlayingSoundRequest)
488 .write_unaligned((self as *const PlayerStopPlayingSoundRequest).read());
489 }
492 Ok(())
493 }
494 }
495 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<u32, D>>
496 fidl::encoding::Encode<PlayerStopPlayingSoundRequest, D> for (T0,)
497 {
498 #[inline]
499 unsafe fn encode(
500 self,
501 encoder: &mut fidl::encoding::Encoder<'_, D>,
502 offset: usize,
503 depth: fidl::encoding::Depth,
504 ) -> fidl::Result<()> {
505 encoder.debug_check_bounds::<PlayerStopPlayingSoundRequest>(offset);
506 self.0.encode(encoder, offset + 0, depth)?;
510 Ok(())
511 }
512 }
513
514 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
515 for PlayerStopPlayingSoundRequest
516 {
517 #[inline(always)]
518 fn new_empty() -> Self {
519 Self { id: fidl::new_empty!(u32, D) }
520 }
521
522 #[inline]
523 unsafe fn decode(
524 &mut self,
525 decoder: &mut fidl::encoding::Decoder<'_, D>,
526 offset: usize,
527 _depth: fidl::encoding::Depth,
528 ) -> fidl::Result<()> {
529 decoder.debug_check_bounds::<Self>(offset);
530 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
531 unsafe {
534 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 4);
535 }
536 Ok(())
537 }
538 }
539
540 impl fidl::encoding::ValueTypeMarker for PlayerAddSoundFromFileResponse {
541 type Borrowed<'a> = &'a Self;
542 fn borrow(value: &<Self as fidl::encoding::TypeMarker>::Owned) -> Self::Borrowed<'_> {
543 value
544 }
545 }
546
547 unsafe impl fidl::encoding::TypeMarker for PlayerAddSoundFromFileResponse {
548 type Owned = Self;
549
550 #[inline(always)]
551 fn inline_align(_context: fidl::encoding::Context) -> usize {
552 8
553 }
554
555 #[inline(always)]
556 fn inline_size(_context: fidl::encoding::Context) -> usize {
557 8
558 }
559 #[inline(always)]
560 fn encode_is_copy() -> bool {
561 true
562 }
563
564 #[inline(always)]
565 fn decode_is_copy() -> bool {
566 true
567 }
568 }
569
570 unsafe impl<D: fidl::encoding::ResourceDialect>
571 fidl::encoding::Encode<PlayerAddSoundFromFileResponse, D>
572 for &PlayerAddSoundFromFileResponse
573 {
574 #[inline]
575 unsafe fn encode(
576 self,
577 encoder: &mut fidl::encoding::Encoder<'_, D>,
578 offset: usize,
579 _depth: fidl::encoding::Depth,
580 ) -> fidl::Result<()> {
581 encoder.debug_check_bounds::<PlayerAddSoundFromFileResponse>(offset);
582 unsafe {
583 let buf_ptr = encoder.buf.as_mut_ptr().add(offset);
585 (buf_ptr as *mut PlayerAddSoundFromFileResponse)
586 .write_unaligned((self as *const PlayerAddSoundFromFileResponse).read());
587 }
590 Ok(())
591 }
592 }
593 unsafe impl<D: fidl::encoding::ResourceDialect, T0: fidl::encoding::Encode<i64, D>>
594 fidl::encoding::Encode<PlayerAddSoundFromFileResponse, D> for (T0,)
595 {
596 #[inline]
597 unsafe fn encode(
598 self,
599 encoder: &mut fidl::encoding::Encoder<'_, D>,
600 offset: usize,
601 depth: fidl::encoding::Depth,
602 ) -> fidl::Result<()> {
603 encoder.debug_check_bounds::<PlayerAddSoundFromFileResponse>(offset);
604 self.0.encode(encoder, offset + 0, depth)?;
608 Ok(())
609 }
610 }
611
612 impl<D: fidl::encoding::ResourceDialect> fidl::encoding::Decode<Self, D>
613 for PlayerAddSoundFromFileResponse
614 {
615 #[inline(always)]
616 fn new_empty() -> Self {
617 Self { duration: fidl::new_empty!(i64, D) }
618 }
619
620 #[inline]
621 unsafe fn decode(
622 &mut self,
623 decoder: &mut fidl::encoding::Decoder<'_, D>,
624 offset: usize,
625 _depth: fidl::encoding::Depth,
626 ) -> fidl::Result<()> {
627 decoder.debug_check_bounds::<Self>(offset);
628 let buf_ptr = unsafe { decoder.buf.as_ptr().add(offset) };
629 unsafe {
632 std::ptr::copy_nonoverlapping(buf_ptr, self as *mut Self as *mut u8, 8);
633 }
634 Ok(())
635 }
636 }
637}