1#![warn(clippy::all)]
4#![allow(unused_parens, unused_mut, unused_imports, nonstandard_style)]
5
6use bitflags::bitflags;
7use fidl::client::QueryResponseFut;
8use fidl::encoding::{MessageBufFor, ProxyChannelBox, ResourceDialect};
9use fidl::endpoints::{ControlHandle as _, Responder as _};
10pub use fidl_fuchsia_ultrasound_common::*;
11use futures::future::{self, MaybeDone, TryFutureExt};
12use zx_status;
13
14#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
15pub struct FactoryCreateCapturerRequest {
16 pub request: fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioCapturerMarker>,
17}
18
19impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
20 for FactoryCreateCapturerRequest
21{
22}
23
24#[derive(Debug, PartialEq)]
25pub struct FactoryCreateCapturerResponse {
26 pub reference_clock: fidl::Clock,
27 pub stream_type: fidl_fuchsia_media::AudioStreamType,
28}
29
30impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
31 for FactoryCreateCapturerResponse
32{
33}
34
35#[derive(Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
36pub struct FactoryCreateRendererRequest {
37 pub renderer: fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioRendererMarker>,
38}
39
40impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
41 for FactoryCreateRendererRequest
42{
43}
44
45#[derive(Debug, PartialEq)]
46pub struct FactoryCreateRendererResponse {
47 pub reference_clock: fidl::Clock,
48 pub stream_type: fidl_fuchsia_media::AudioStreamType,
49}
50
51impl fidl::Standalone<fidl::encoding::DefaultFuchsiaResourceDialect>
52 for FactoryCreateRendererResponse
53{
54}
55
56#[derive(Debug, Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
57pub struct FactoryMarker;
58
59impl fidl::endpoints::ProtocolMarker for FactoryMarker {
60 type Proxy = FactoryProxy;
61 type RequestStream = FactoryRequestStream;
62 #[cfg(target_os = "fuchsia")]
63 type SynchronousProxy = FactorySynchronousProxy;
64
65 const DEBUG_NAME: &'static str = "fuchsia.ultrasound.Factory";
66}
67impl fidl::endpoints::DiscoverableProtocolMarker for FactoryMarker {}
68
69pub trait FactoryProxyInterface: Send + Sync {
70 type CreateCapturerResponseFut: std::future::Future<
71 Output = Result<(fidl::Clock, fidl_fuchsia_media::AudioStreamType), fidl::Error>,
72 > + Send;
73 fn r#create_capturer(
74 &self,
75 request: fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioCapturerMarker>,
76 ) -> Self::CreateCapturerResponseFut;
77 type CreateRendererResponseFut: std::future::Future<
78 Output = Result<(fidl::Clock, fidl_fuchsia_media::AudioStreamType), fidl::Error>,
79 > + Send;
80 fn r#create_renderer(
81 &self,
82 renderer: fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioRendererMarker>,
83 ) -> Self::CreateRendererResponseFut;
84}
85#[derive(Debug)]
86#[cfg(target_os = "fuchsia")]
87pub struct FactorySynchronousProxy {
88 client: fidl::client::sync::Client,
89}
90
91#[cfg(target_os = "fuchsia")]
92impl fidl::endpoints::SynchronousProxy for FactorySynchronousProxy {
93 type Proxy = FactoryProxy;
94 type Protocol = FactoryMarker;
95
96 fn from_channel(inner: fidl::Channel) -> Self {
97 Self::new(inner)
98 }
99
100 fn into_channel(self) -> fidl::Channel {
101 self.client.into_channel()
102 }
103
104 fn as_channel(&self) -> &fidl::Channel {
105 self.client.as_channel()
106 }
107}
108
109#[cfg(target_os = "fuchsia")]
110impl FactorySynchronousProxy {
111 pub fn new(channel: fidl::Channel) -> Self {
112 let protocol_name = <FactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
113 Self { client: fidl::client::sync::Client::new(channel, protocol_name) }
114 }
115
116 pub fn into_channel(self) -> fidl::Channel {
117 self.client.into_channel()
118 }
119
120 pub fn wait_for_event(
123 &self,
124 deadline: zx::MonotonicInstant,
125 ) -> Result<FactoryEvent, fidl::Error> {
126 FactoryEvent::decode(self.client.wait_for_event(deadline)?)
127 }
128
129 pub fn r#create_capturer(
150 &self,
151 mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioCapturerMarker>,
152 ___deadline: zx::MonotonicInstant,
153 ) -> Result<(fidl::Clock, fidl_fuchsia_media::AudioStreamType), fidl::Error> {
154 let _response =
155 self.client.send_query::<FactoryCreateCapturerRequest, FactoryCreateCapturerResponse>(
156 (request,),
157 0xe8b6e0e27f02115,
158 fidl::encoding::DynamicFlags::empty(),
159 ___deadline,
160 )?;
161 Ok((_response.reference_clock, _response.stream_type))
162 }
163
164 pub fn r#create_renderer(
185 &self,
186 mut renderer: fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioRendererMarker>,
187 ___deadline: zx::MonotonicInstant,
188 ) -> Result<(fidl::Clock, fidl_fuchsia_media::AudioStreamType), fidl::Error> {
189 let _response =
190 self.client.send_query::<FactoryCreateRendererRequest, FactoryCreateRendererResponse>(
191 (renderer,),
192 0x3ce8fb1897ec7932,
193 fidl::encoding::DynamicFlags::empty(),
194 ___deadline,
195 )?;
196 Ok((_response.reference_clock, _response.stream_type))
197 }
198}
199
200#[derive(Debug, Clone)]
201pub struct FactoryProxy {
202 client: fidl::client::Client<fidl::encoding::DefaultFuchsiaResourceDialect>,
203}
204
205impl fidl::endpoints::Proxy for FactoryProxy {
206 type Protocol = FactoryMarker;
207
208 fn from_channel(inner: ::fidl::AsyncChannel) -> Self {
209 Self::new(inner)
210 }
211
212 fn into_channel(self) -> Result<::fidl::AsyncChannel, Self> {
213 self.client.into_channel().map_err(|client| Self { client })
214 }
215
216 fn as_channel(&self) -> &::fidl::AsyncChannel {
217 self.client.as_channel()
218 }
219}
220
221impl FactoryProxy {
222 pub fn new(channel: ::fidl::AsyncChannel) -> Self {
224 let protocol_name = <FactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME;
225 Self { client: fidl::client::Client::new(channel, protocol_name) }
226 }
227
228 pub fn take_event_stream(&self) -> FactoryEventStream {
234 FactoryEventStream { event_receiver: self.client.take_event_receiver() }
235 }
236
237 pub fn r#create_capturer(
258 &self,
259 mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioCapturerMarker>,
260 ) -> fidl::client::QueryResponseFut<
261 (fidl::Clock, fidl_fuchsia_media::AudioStreamType),
262 fidl::encoding::DefaultFuchsiaResourceDialect,
263 > {
264 FactoryProxyInterface::r#create_capturer(self, request)
265 }
266
267 pub fn r#create_renderer(
288 &self,
289 mut renderer: fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioRendererMarker>,
290 ) -> fidl::client::QueryResponseFut<
291 (fidl::Clock, fidl_fuchsia_media::AudioStreamType),
292 fidl::encoding::DefaultFuchsiaResourceDialect,
293 > {
294 FactoryProxyInterface::r#create_renderer(self, renderer)
295 }
296}
297
298impl FactoryProxyInterface for FactoryProxy {
299 type CreateCapturerResponseFut = fidl::client::QueryResponseFut<
300 (fidl::Clock, fidl_fuchsia_media::AudioStreamType),
301 fidl::encoding::DefaultFuchsiaResourceDialect,
302 >;
303 fn r#create_capturer(
304 &self,
305 mut request: fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioCapturerMarker>,
306 ) -> Self::CreateCapturerResponseFut {
307 fn _decode(
308 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
309 ) -> Result<(fidl::Clock, fidl_fuchsia_media::AudioStreamType), fidl::Error> {
310 let _response = fidl::client::decode_transaction_body::<
311 FactoryCreateCapturerResponse,
312 fidl::encoding::DefaultFuchsiaResourceDialect,
313 0xe8b6e0e27f02115,
314 >(_buf?)?;
315 Ok((_response.reference_clock, _response.stream_type))
316 }
317 self.client.send_query_and_decode::<
318 FactoryCreateCapturerRequest,
319 (fidl::Clock, fidl_fuchsia_media::AudioStreamType),
320 >(
321 (request,),
322 0xe8b6e0e27f02115,
323 fidl::encoding::DynamicFlags::empty(),
324 _decode,
325 )
326 }
327
328 type CreateRendererResponseFut = fidl::client::QueryResponseFut<
329 (fidl::Clock, fidl_fuchsia_media::AudioStreamType),
330 fidl::encoding::DefaultFuchsiaResourceDialect,
331 >;
332 fn r#create_renderer(
333 &self,
334 mut renderer: fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioRendererMarker>,
335 ) -> Self::CreateRendererResponseFut {
336 fn _decode(
337 mut _buf: Result<<fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc, fidl::Error>,
338 ) -> Result<(fidl::Clock, fidl_fuchsia_media::AudioStreamType), fidl::Error> {
339 let _response = fidl::client::decode_transaction_body::<
340 FactoryCreateRendererResponse,
341 fidl::encoding::DefaultFuchsiaResourceDialect,
342 0x3ce8fb1897ec7932,
343 >(_buf?)?;
344 Ok((_response.reference_clock, _response.stream_type))
345 }
346 self.client.send_query_and_decode::<
347 FactoryCreateRendererRequest,
348 (fidl::Clock, fidl_fuchsia_media::AudioStreamType),
349 >(
350 (renderer,),
351 0x3ce8fb1897ec7932,
352 fidl::encoding::DynamicFlags::empty(),
353 _decode,
354 )
355 }
356}
357
358pub struct FactoryEventStream {
359 event_receiver: fidl::client::EventReceiver<fidl::encoding::DefaultFuchsiaResourceDialect>,
360}
361
362impl std::marker::Unpin for FactoryEventStream {}
363
364impl futures::stream::FusedStream for FactoryEventStream {
365 fn is_terminated(&self) -> bool {
366 self.event_receiver.is_terminated()
367 }
368}
369
370impl futures::Stream for FactoryEventStream {
371 type Item = Result<FactoryEvent, fidl::Error>;
372
373 fn poll_next(
374 mut self: std::pin::Pin<&mut Self>,
375 cx: &mut std::task::Context<'_>,
376 ) -> std::task::Poll<Option<Self::Item>> {
377 match futures::ready!(futures::stream::StreamExt::poll_next_unpin(
378 &mut self.event_receiver,
379 cx
380 )?) {
381 Some(buf) => std::task::Poll::Ready(Some(FactoryEvent::decode(buf))),
382 None => std::task::Poll::Ready(None),
383 }
384 }
385}
386
387#[derive(Debug)]
388pub enum FactoryEvent {}
389
390impl FactoryEvent {
391 fn decode(
393 mut buf: <fidl::encoding::DefaultFuchsiaResourceDialect as fidl::encoding::ResourceDialect>::MessageBufEtc,
394 ) -> Result<FactoryEvent, fidl::Error> {
395 let (bytes, _handles) = buf.split_mut();
396 let (tx_header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
397 debug_assert_eq!(tx_header.tx_id, 0);
398 match tx_header.ordinal {
399 _ => Err(fidl::Error::UnknownOrdinal {
400 ordinal: tx_header.ordinal,
401 protocol_name: <FactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
402 }),
403 }
404 }
405}
406
407pub struct FactoryRequestStream {
409 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
410 is_terminated: bool,
411}
412
413impl std::marker::Unpin for FactoryRequestStream {}
414
415impl futures::stream::FusedStream for FactoryRequestStream {
416 fn is_terminated(&self) -> bool {
417 self.is_terminated
418 }
419}
420
421impl fidl::endpoints::RequestStream for FactoryRequestStream {
422 type Protocol = FactoryMarker;
423 type ControlHandle = FactoryControlHandle;
424
425 fn from_channel(channel: ::fidl::AsyncChannel) -> Self {
426 Self { inner: std::sync::Arc::new(fidl::ServeInner::new(channel)), is_terminated: false }
427 }
428
429 fn control_handle(&self) -> Self::ControlHandle {
430 FactoryControlHandle { inner: self.inner.clone() }
431 }
432
433 fn into_inner(
434 self,
435 ) -> (::std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>, bool)
436 {
437 (self.inner, self.is_terminated)
438 }
439
440 fn from_inner(
441 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
442 is_terminated: bool,
443 ) -> Self {
444 Self { inner, is_terminated }
445 }
446}
447
448impl futures::Stream for FactoryRequestStream {
449 type Item = Result<FactoryRequest, fidl::Error>;
450
451 fn poll_next(
452 mut self: std::pin::Pin<&mut Self>,
453 cx: &mut std::task::Context<'_>,
454 ) -> std::task::Poll<Option<Self::Item>> {
455 let this = &mut *self;
456 if this.inner.check_shutdown(cx) {
457 this.is_terminated = true;
458 return std::task::Poll::Ready(None);
459 }
460 if this.is_terminated {
461 panic!("polled FactoryRequestStream after completion");
462 }
463 fidl::encoding::with_tls_decode_buf::<_, fidl::encoding::DefaultFuchsiaResourceDialect>(
464 |bytes, handles| {
465 match this.inner.channel().read_etc(cx, bytes, handles) {
466 std::task::Poll::Ready(Ok(())) => {}
467 std::task::Poll::Pending => return std::task::Poll::Pending,
468 std::task::Poll::Ready(Err(zx_status::Status::PEER_CLOSED)) => {
469 this.is_terminated = true;
470 return std::task::Poll::Ready(None);
471 }
472 std::task::Poll::Ready(Err(e)) => {
473 return std::task::Poll::Ready(Some(Err(fidl::Error::ServerRequestRead(
474 e.into(),
475 ))))
476 }
477 }
478
479 let (header, _body_bytes) = fidl::encoding::decode_transaction_header(bytes)?;
481
482 std::task::Poll::Ready(Some(match header.ordinal {
483 0xe8b6e0e27f02115 => {
484 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
485 let mut req = fidl::new_empty!(
486 FactoryCreateCapturerRequest,
487 fidl::encoding::DefaultFuchsiaResourceDialect
488 );
489 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<FactoryCreateCapturerRequest>(&header, _body_bytes, handles, &mut req)?;
490 let control_handle = FactoryControlHandle { inner: this.inner.clone() };
491 Ok(FactoryRequest::CreateCapturer {
492 request: req.request,
493
494 responder: FactoryCreateCapturerResponder {
495 control_handle: std::mem::ManuallyDrop::new(control_handle),
496 tx_id: header.tx_id,
497 },
498 })
499 }
500 0x3ce8fb1897ec7932 => {
501 header.validate_request_tx_id(fidl::MethodType::TwoWay)?;
502 let mut req = fidl::new_empty!(
503 FactoryCreateRendererRequest,
504 fidl::encoding::DefaultFuchsiaResourceDialect
505 );
506 fidl::encoding::Decoder::<fidl::encoding::DefaultFuchsiaResourceDialect>::decode_into::<FactoryCreateRendererRequest>(&header, _body_bytes, handles, &mut req)?;
507 let control_handle = FactoryControlHandle { inner: this.inner.clone() };
508 Ok(FactoryRequest::CreateRenderer {
509 renderer: req.renderer,
510
511 responder: FactoryCreateRendererResponder {
512 control_handle: std::mem::ManuallyDrop::new(control_handle),
513 tx_id: header.tx_id,
514 },
515 })
516 }
517 _ => Err(fidl::Error::UnknownOrdinal {
518 ordinal: header.ordinal,
519 protocol_name:
520 <FactoryMarker as fidl::endpoints::ProtocolMarker>::DEBUG_NAME,
521 }),
522 }))
523 },
524 )
525 }
526}
527
528#[derive(Debug)]
529pub enum FactoryRequest {
530 CreateCapturer {
551 request: fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioCapturerMarker>,
552 responder: FactoryCreateCapturerResponder,
553 },
554 CreateRenderer {
575 renderer: fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioRendererMarker>,
576 responder: FactoryCreateRendererResponder,
577 },
578}
579
580impl FactoryRequest {
581 #[allow(irrefutable_let_patterns)]
582 pub fn into_create_capturer(
583 self,
584 ) -> Option<(
585 fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioCapturerMarker>,
586 FactoryCreateCapturerResponder,
587 )> {
588 if let FactoryRequest::CreateCapturer { request, responder } = self {
589 Some((request, responder))
590 } else {
591 None
592 }
593 }
594
595 #[allow(irrefutable_let_patterns)]
596 pub fn into_create_renderer(
597 self,
598 ) -> Option<(
599 fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioRendererMarker>,
600 FactoryCreateRendererResponder,
601 )> {
602 if let FactoryRequest::CreateRenderer { renderer, responder } = self {
603 Some((renderer, responder))
604 } else {
605 None
606 }
607 }
608
609 pub fn method_name(&self) -> &'static str {
611 match *self {
612 FactoryRequest::CreateCapturer { .. } => "create_capturer",
613 FactoryRequest::CreateRenderer { .. } => "create_renderer",
614 }
615 }
616}
617
618#[derive(Debug, Clone)]
619pub struct FactoryControlHandle {
620 inner: std::sync::Arc<fidl::ServeInner<fidl::encoding::DefaultFuchsiaResourceDialect>>,
621}
622
623impl fidl::endpoints::ControlHandle for FactoryControlHandle {
624 fn shutdown(&self) {
625 self.inner.shutdown()
626 }
627 fn shutdown_with_epitaph(&self, status: zx_status::Status) {
628 self.inner.shutdown_with_epitaph(status)
629 }
630
631 fn is_closed(&self) -> bool {
632 self.inner.channel().is_closed()
633 }
634 fn on_closed(&self) -> fidl::OnSignalsRef<'_> {
635 self.inner.channel().on_closed()
636 }
637
638 #[cfg(target_os = "fuchsia")]
639 fn signal_peer(
640 &self,
641 clear_mask: zx::Signals,
642 set_mask: zx::Signals,
643 ) -> Result<(), zx_status::Status> {
644 use fidl::Peered;
645 self.inner.channel().signal_peer(clear_mask, set_mask)
646 }
647}
648
649impl FactoryControlHandle {}
650
651#[must_use = "FIDL methods require a response to be sent"]
652#[derive(Debug)]
653pub struct FactoryCreateCapturerResponder {
654 control_handle: std::mem::ManuallyDrop<FactoryControlHandle>,
655 tx_id: u32,
656}
657
658impl std::ops::Drop for FactoryCreateCapturerResponder {
662 fn drop(&mut self) {
663 self.control_handle.shutdown();
664 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
666 }
667}
668
669impl fidl::endpoints::Responder for FactoryCreateCapturerResponder {
670 type ControlHandle = FactoryControlHandle;
671
672 fn control_handle(&self) -> &FactoryControlHandle {
673 &self.control_handle
674 }
675
676 fn drop_without_shutdown(mut self) {
677 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
679 std::mem::forget(self);
681 }
682}
683
684impl FactoryCreateCapturerResponder {
685 pub fn send(
689 self,
690 mut reference_clock: fidl::Clock,
691 mut stream_type: &fidl_fuchsia_media::AudioStreamType,
692 ) -> Result<(), fidl::Error> {
693 let _result = self.send_raw(reference_clock, stream_type);
694 if _result.is_err() {
695 self.control_handle.shutdown();
696 }
697 self.drop_without_shutdown();
698 _result
699 }
700
701 pub fn send_no_shutdown_on_err(
703 self,
704 mut reference_clock: fidl::Clock,
705 mut stream_type: &fidl_fuchsia_media::AudioStreamType,
706 ) -> Result<(), fidl::Error> {
707 let _result = self.send_raw(reference_clock, stream_type);
708 self.drop_without_shutdown();
709 _result
710 }
711
712 fn send_raw(
713 &self,
714 mut reference_clock: fidl::Clock,
715 mut stream_type: &fidl_fuchsia_media::AudioStreamType,
716 ) -> Result<(), fidl::Error> {
717 self.control_handle.inner.send::<FactoryCreateCapturerResponse>(
718 (reference_clock, stream_type),
719 self.tx_id,
720 0xe8b6e0e27f02115,
721 fidl::encoding::DynamicFlags::empty(),
722 )
723 }
724}
725
726#[must_use = "FIDL methods require a response to be sent"]
727#[derive(Debug)]
728pub struct FactoryCreateRendererResponder {
729 control_handle: std::mem::ManuallyDrop<FactoryControlHandle>,
730 tx_id: u32,
731}
732
733impl std::ops::Drop for FactoryCreateRendererResponder {
737 fn drop(&mut self) {
738 self.control_handle.shutdown();
739 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
741 }
742}
743
744impl fidl::endpoints::Responder for FactoryCreateRendererResponder {
745 type ControlHandle = FactoryControlHandle;
746
747 fn control_handle(&self) -> &FactoryControlHandle {
748 &self.control_handle
749 }
750
751 fn drop_without_shutdown(mut self) {
752 unsafe { std::mem::ManuallyDrop::drop(&mut self.control_handle) };
754 std::mem::forget(self);
756 }
757}
758
759impl FactoryCreateRendererResponder {
760 pub fn send(
764 self,
765 mut reference_clock: fidl::Clock,
766 mut stream_type: &fidl_fuchsia_media::AudioStreamType,
767 ) -> Result<(), fidl::Error> {
768 let _result = self.send_raw(reference_clock, stream_type);
769 if _result.is_err() {
770 self.control_handle.shutdown();
771 }
772 self.drop_without_shutdown();
773 _result
774 }
775
776 pub fn send_no_shutdown_on_err(
778 self,
779 mut reference_clock: fidl::Clock,
780 mut stream_type: &fidl_fuchsia_media::AudioStreamType,
781 ) -> Result<(), fidl::Error> {
782 let _result = self.send_raw(reference_clock, stream_type);
783 self.drop_without_shutdown();
784 _result
785 }
786
787 fn send_raw(
788 &self,
789 mut reference_clock: fidl::Clock,
790 mut stream_type: &fidl_fuchsia_media::AudioStreamType,
791 ) -> Result<(), fidl::Error> {
792 self.control_handle.inner.send::<FactoryCreateRendererResponse>(
793 (reference_clock, stream_type),
794 self.tx_id,
795 0x3ce8fb1897ec7932,
796 fidl::encoding::DynamicFlags::empty(),
797 )
798 }
799}
800
801mod internal {
802 use super::*;
803
804 impl fidl::encoding::ResourceTypeMarker for FactoryCreateCapturerRequest {
805 type Borrowed<'a> = &'a mut Self;
806 fn take_or_borrow<'a>(
807 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
808 ) -> Self::Borrowed<'a> {
809 value
810 }
811 }
812
813 unsafe impl fidl::encoding::TypeMarker for FactoryCreateCapturerRequest {
814 type Owned = Self;
815
816 #[inline(always)]
817 fn inline_align(_context: fidl::encoding::Context) -> usize {
818 4
819 }
820
821 #[inline(always)]
822 fn inline_size(_context: fidl::encoding::Context) -> usize {
823 4
824 }
825 }
826
827 unsafe impl
828 fidl::encoding::Encode<
829 FactoryCreateCapturerRequest,
830 fidl::encoding::DefaultFuchsiaResourceDialect,
831 > for &mut FactoryCreateCapturerRequest
832 {
833 #[inline]
834 unsafe fn encode(
835 self,
836 encoder: &mut fidl::encoding::Encoder<
837 '_,
838 fidl::encoding::DefaultFuchsiaResourceDialect,
839 >,
840 offset: usize,
841 _depth: fidl::encoding::Depth,
842 ) -> fidl::Result<()> {
843 encoder.debug_check_bounds::<FactoryCreateCapturerRequest>(offset);
844 fidl::encoding::Encode::<
846 FactoryCreateCapturerRequest,
847 fidl::encoding::DefaultFuchsiaResourceDialect,
848 >::encode(
849 (<fidl::encoding::Endpoint<
850 fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioCapturerMarker>,
851 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
852 &mut self.request
853 ),),
854 encoder,
855 offset,
856 _depth,
857 )
858 }
859 }
860 unsafe impl<
861 T0: fidl::encoding::Encode<
862 fidl::encoding::Endpoint<
863 fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioCapturerMarker>,
864 >,
865 fidl::encoding::DefaultFuchsiaResourceDialect,
866 >,
867 >
868 fidl::encoding::Encode<
869 FactoryCreateCapturerRequest,
870 fidl::encoding::DefaultFuchsiaResourceDialect,
871 > for (T0,)
872 {
873 #[inline]
874 unsafe fn encode(
875 self,
876 encoder: &mut fidl::encoding::Encoder<
877 '_,
878 fidl::encoding::DefaultFuchsiaResourceDialect,
879 >,
880 offset: usize,
881 depth: fidl::encoding::Depth,
882 ) -> fidl::Result<()> {
883 encoder.debug_check_bounds::<FactoryCreateCapturerRequest>(offset);
884 self.0.encode(encoder, offset + 0, depth)?;
888 Ok(())
889 }
890 }
891
892 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
893 for FactoryCreateCapturerRequest
894 {
895 #[inline(always)]
896 fn new_empty() -> Self {
897 Self {
898 request: fidl::new_empty!(
899 fidl::encoding::Endpoint<
900 fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioCapturerMarker>,
901 >,
902 fidl::encoding::DefaultFuchsiaResourceDialect
903 ),
904 }
905 }
906
907 #[inline]
908 unsafe fn decode(
909 &mut self,
910 decoder: &mut fidl::encoding::Decoder<
911 '_,
912 fidl::encoding::DefaultFuchsiaResourceDialect,
913 >,
914 offset: usize,
915 _depth: fidl::encoding::Depth,
916 ) -> fidl::Result<()> {
917 decoder.debug_check_bounds::<Self>(offset);
918 fidl::decode!(
920 fidl::encoding::Endpoint<
921 fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioCapturerMarker>,
922 >,
923 fidl::encoding::DefaultFuchsiaResourceDialect,
924 &mut self.request,
925 decoder,
926 offset + 0,
927 _depth
928 )?;
929 Ok(())
930 }
931 }
932
933 impl fidl::encoding::ResourceTypeMarker for FactoryCreateCapturerResponse {
934 type Borrowed<'a> = &'a mut Self;
935 fn take_or_borrow<'a>(
936 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
937 ) -> Self::Borrowed<'a> {
938 value
939 }
940 }
941
942 unsafe impl fidl::encoding::TypeMarker for FactoryCreateCapturerResponse {
943 type Owned = Self;
944
945 #[inline(always)]
946 fn inline_align(_context: fidl::encoding::Context) -> usize {
947 4
948 }
949
950 #[inline(always)]
951 fn inline_size(_context: fidl::encoding::Context) -> usize {
952 16
953 }
954 }
955
956 unsafe impl
957 fidl::encoding::Encode<
958 FactoryCreateCapturerResponse,
959 fidl::encoding::DefaultFuchsiaResourceDialect,
960 > for &mut FactoryCreateCapturerResponse
961 {
962 #[inline]
963 unsafe fn encode(
964 self,
965 encoder: &mut fidl::encoding::Encoder<
966 '_,
967 fidl::encoding::DefaultFuchsiaResourceDialect,
968 >,
969 offset: usize,
970 _depth: fidl::encoding::Depth,
971 ) -> fidl::Result<()> {
972 encoder.debug_check_bounds::<FactoryCreateCapturerResponse>(offset);
973 fidl::encoding::Encode::<FactoryCreateCapturerResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
975 (
976 <fidl::encoding::HandleType<fidl::Clock, { fidl::ObjectType::CLOCK.into_raw() }, 2147483648> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reference_clock),
977 <fidl_fuchsia_media::AudioStreamType as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_type),
978 ),
979 encoder, offset, _depth
980 )
981 }
982 }
983 unsafe impl<
984 T0: fidl::encoding::Encode<
985 fidl::encoding::HandleType<
986 fidl::Clock,
987 { fidl::ObjectType::CLOCK.into_raw() },
988 2147483648,
989 >,
990 fidl::encoding::DefaultFuchsiaResourceDialect,
991 >,
992 T1: fidl::encoding::Encode<
993 fidl_fuchsia_media::AudioStreamType,
994 fidl::encoding::DefaultFuchsiaResourceDialect,
995 >,
996 >
997 fidl::encoding::Encode<
998 FactoryCreateCapturerResponse,
999 fidl::encoding::DefaultFuchsiaResourceDialect,
1000 > for (T0, T1)
1001 {
1002 #[inline]
1003 unsafe fn encode(
1004 self,
1005 encoder: &mut fidl::encoding::Encoder<
1006 '_,
1007 fidl::encoding::DefaultFuchsiaResourceDialect,
1008 >,
1009 offset: usize,
1010 depth: fidl::encoding::Depth,
1011 ) -> fidl::Result<()> {
1012 encoder.debug_check_bounds::<FactoryCreateCapturerResponse>(offset);
1013 self.0.encode(encoder, offset + 0, depth)?;
1017 self.1.encode(encoder, offset + 4, depth)?;
1018 Ok(())
1019 }
1020 }
1021
1022 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1023 for FactoryCreateCapturerResponse
1024 {
1025 #[inline(always)]
1026 fn new_empty() -> Self {
1027 Self {
1028 reference_clock: fidl::new_empty!(fidl::encoding::HandleType<fidl::Clock, { fidl::ObjectType::CLOCK.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
1029 stream_type: fidl::new_empty!(
1030 fidl_fuchsia_media::AudioStreamType,
1031 fidl::encoding::DefaultFuchsiaResourceDialect
1032 ),
1033 }
1034 }
1035
1036 #[inline]
1037 unsafe fn decode(
1038 &mut self,
1039 decoder: &mut fidl::encoding::Decoder<
1040 '_,
1041 fidl::encoding::DefaultFuchsiaResourceDialect,
1042 >,
1043 offset: usize,
1044 _depth: fidl::encoding::Depth,
1045 ) -> fidl::Result<()> {
1046 decoder.debug_check_bounds::<Self>(offset);
1047 fidl::decode!(fidl::encoding::HandleType<fidl::Clock, { fidl::ObjectType::CLOCK.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.reference_clock, decoder, offset + 0, _depth)?;
1049 fidl::decode!(
1050 fidl_fuchsia_media::AudioStreamType,
1051 fidl::encoding::DefaultFuchsiaResourceDialect,
1052 &mut self.stream_type,
1053 decoder,
1054 offset + 4,
1055 _depth
1056 )?;
1057 Ok(())
1058 }
1059 }
1060
1061 impl fidl::encoding::ResourceTypeMarker for FactoryCreateRendererRequest {
1062 type Borrowed<'a> = &'a mut Self;
1063 fn take_or_borrow<'a>(
1064 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1065 ) -> Self::Borrowed<'a> {
1066 value
1067 }
1068 }
1069
1070 unsafe impl fidl::encoding::TypeMarker for FactoryCreateRendererRequest {
1071 type Owned = Self;
1072
1073 #[inline(always)]
1074 fn inline_align(_context: fidl::encoding::Context) -> usize {
1075 4
1076 }
1077
1078 #[inline(always)]
1079 fn inline_size(_context: fidl::encoding::Context) -> usize {
1080 4
1081 }
1082 }
1083
1084 unsafe impl
1085 fidl::encoding::Encode<
1086 FactoryCreateRendererRequest,
1087 fidl::encoding::DefaultFuchsiaResourceDialect,
1088 > for &mut FactoryCreateRendererRequest
1089 {
1090 #[inline]
1091 unsafe fn encode(
1092 self,
1093 encoder: &mut fidl::encoding::Encoder<
1094 '_,
1095 fidl::encoding::DefaultFuchsiaResourceDialect,
1096 >,
1097 offset: usize,
1098 _depth: fidl::encoding::Depth,
1099 ) -> fidl::Result<()> {
1100 encoder.debug_check_bounds::<FactoryCreateRendererRequest>(offset);
1101 fidl::encoding::Encode::<
1103 FactoryCreateRendererRequest,
1104 fidl::encoding::DefaultFuchsiaResourceDialect,
1105 >::encode(
1106 (<fidl::encoding::Endpoint<
1107 fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioRendererMarker>,
1108 > as fidl::encoding::ResourceTypeMarker>::take_or_borrow(
1109 &mut self.renderer
1110 ),),
1111 encoder,
1112 offset,
1113 _depth,
1114 )
1115 }
1116 }
1117 unsafe impl<
1118 T0: fidl::encoding::Encode<
1119 fidl::encoding::Endpoint<
1120 fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioRendererMarker>,
1121 >,
1122 fidl::encoding::DefaultFuchsiaResourceDialect,
1123 >,
1124 >
1125 fidl::encoding::Encode<
1126 FactoryCreateRendererRequest,
1127 fidl::encoding::DefaultFuchsiaResourceDialect,
1128 > for (T0,)
1129 {
1130 #[inline]
1131 unsafe fn encode(
1132 self,
1133 encoder: &mut fidl::encoding::Encoder<
1134 '_,
1135 fidl::encoding::DefaultFuchsiaResourceDialect,
1136 >,
1137 offset: usize,
1138 depth: fidl::encoding::Depth,
1139 ) -> fidl::Result<()> {
1140 encoder.debug_check_bounds::<FactoryCreateRendererRequest>(offset);
1141 self.0.encode(encoder, offset + 0, depth)?;
1145 Ok(())
1146 }
1147 }
1148
1149 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1150 for FactoryCreateRendererRequest
1151 {
1152 #[inline(always)]
1153 fn new_empty() -> Self {
1154 Self {
1155 renderer: fidl::new_empty!(
1156 fidl::encoding::Endpoint<
1157 fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioRendererMarker>,
1158 >,
1159 fidl::encoding::DefaultFuchsiaResourceDialect
1160 ),
1161 }
1162 }
1163
1164 #[inline]
1165 unsafe fn decode(
1166 &mut self,
1167 decoder: &mut fidl::encoding::Decoder<
1168 '_,
1169 fidl::encoding::DefaultFuchsiaResourceDialect,
1170 >,
1171 offset: usize,
1172 _depth: fidl::encoding::Depth,
1173 ) -> fidl::Result<()> {
1174 decoder.debug_check_bounds::<Self>(offset);
1175 fidl::decode!(
1177 fidl::encoding::Endpoint<
1178 fidl::endpoints::ServerEnd<fidl_fuchsia_media::AudioRendererMarker>,
1179 >,
1180 fidl::encoding::DefaultFuchsiaResourceDialect,
1181 &mut self.renderer,
1182 decoder,
1183 offset + 0,
1184 _depth
1185 )?;
1186 Ok(())
1187 }
1188 }
1189
1190 impl fidl::encoding::ResourceTypeMarker for FactoryCreateRendererResponse {
1191 type Borrowed<'a> = &'a mut Self;
1192 fn take_or_borrow<'a>(
1193 value: &'a mut <Self as fidl::encoding::TypeMarker>::Owned,
1194 ) -> Self::Borrowed<'a> {
1195 value
1196 }
1197 }
1198
1199 unsafe impl fidl::encoding::TypeMarker for FactoryCreateRendererResponse {
1200 type Owned = Self;
1201
1202 #[inline(always)]
1203 fn inline_align(_context: fidl::encoding::Context) -> usize {
1204 4
1205 }
1206
1207 #[inline(always)]
1208 fn inline_size(_context: fidl::encoding::Context) -> usize {
1209 16
1210 }
1211 }
1212
1213 unsafe impl
1214 fidl::encoding::Encode<
1215 FactoryCreateRendererResponse,
1216 fidl::encoding::DefaultFuchsiaResourceDialect,
1217 > for &mut FactoryCreateRendererResponse
1218 {
1219 #[inline]
1220 unsafe fn encode(
1221 self,
1222 encoder: &mut fidl::encoding::Encoder<
1223 '_,
1224 fidl::encoding::DefaultFuchsiaResourceDialect,
1225 >,
1226 offset: usize,
1227 _depth: fidl::encoding::Depth,
1228 ) -> fidl::Result<()> {
1229 encoder.debug_check_bounds::<FactoryCreateRendererResponse>(offset);
1230 fidl::encoding::Encode::<FactoryCreateRendererResponse, fidl::encoding::DefaultFuchsiaResourceDialect>::encode(
1232 (
1233 <fidl::encoding::HandleType<fidl::Clock, { fidl::ObjectType::CLOCK.into_raw() }, 2147483648> as fidl::encoding::ResourceTypeMarker>::take_or_borrow(&mut self.reference_clock),
1234 <fidl_fuchsia_media::AudioStreamType as fidl::encoding::ValueTypeMarker>::borrow(&self.stream_type),
1235 ),
1236 encoder, offset, _depth
1237 )
1238 }
1239 }
1240 unsafe impl<
1241 T0: fidl::encoding::Encode<
1242 fidl::encoding::HandleType<
1243 fidl::Clock,
1244 { fidl::ObjectType::CLOCK.into_raw() },
1245 2147483648,
1246 >,
1247 fidl::encoding::DefaultFuchsiaResourceDialect,
1248 >,
1249 T1: fidl::encoding::Encode<
1250 fidl_fuchsia_media::AudioStreamType,
1251 fidl::encoding::DefaultFuchsiaResourceDialect,
1252 >,
1253 >
1254 fidl::encoding::Encode<
1255 FactoryCreateRendererResponse,
1256 fidl::encoding::DefaultFuchsiaResourceDialect,
1257 > for (T0, T1)
1258 {
1259 #[inline]
1260 unsafe fn encode(
1261 self,
1262 encoder: &mut fidl::encoding::Encoder<
1263 '_,
1264 fidl::encoding::DefaultFuchsiaResourceDialect,
1265 >,
1266 offset: usize,
1267 depth: fidl::encoding::Depth,
1268 ) -> fidl::Result<()> {
1269 encoder.debug_check_bounds::<FactoryCreateRendererResponse>(offset);
1270 self.0.encode(encoder, offset + 0, depth)?;
1274 self.1.encode(encoder, offset + 4, depth)?;
1275 Ok(())
1276 }
1277 }
1278
1279 impl fidl::encoding::Decode<Self, fidl::encoding::DefaultFuchsiaResourceDialect>
1280 for FactoryCreateRendererResponse
1281 {
1282 #[inline(always)]
1283 fn new_empty() -> Self {
1284 Self {
1285 reference_clock: fidl::new_empty!(fidl::encoding::HandleType<fidl::Clock, { fidl::ObjectType::CLOCK.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect),
1286 stream_type: fidl::new_empty!(
1287 fidl_fuchsia_media::AudioStreamType,
1288 fidl::encoding::DefaultFuchsiaResourceDialect
1289 ),
1290 }
1291 }
1292
1293 #[inline]
1294 unsafe fn decode(
1295 &mut self,
1296 decoder: &mut fidl::encoding::Decoder<
1297 '_,
1298 fidl::encoding::DefaultFuchsiaResourceDialect,
1299 >,
1300 offset: usize,
1301 _depth: fidl::encoding::Depth,
1302 ) -> fidl::Result<()> {
1303 decoder.debug_check_bounds::<Self>(offset);
1304 fidl::decode!(fidl::encoding::HandleType<fidl::Clock, { fidl::ObjectType::CLOCK.into_raw() }, 2147483648>, fidl::encoding::DefaultFuchsiaResourceDialect, &mut self.reference_clock, decoder, offset + 0, _depth)?;
1306 fidl::decode!(
1307 fidl_fuchsia_media::AudioStreamType,
1308 fidl::encoding::DefaultFuchsiaResourceDialect,
1309 &mut self.stream_type,
1310 decoder,
1311 offset + 4,
1312 _depth
1313 )?;
1314 Ok(())
1315 }
1316 }
1317}