gstreamer_rtsp_server/auto/
rtsp_address_pool.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from gir-files (https://github.com/gtk-rs/gir-files)
3// from gst-gir-files (https://gitlab.freedesktop.org/gstreamer/gir-files-rs.git)
4// DO NOT EDIT
5
6use crate::{ffi, RTSPAddress, RTSPAddressFlags};
7use glib::{prelude::*, translate::*};
8
9glib::wrapper! {
10    #[doc(alias = "GstRTSPAddressPool")]
11    pub struct RTSPAddressPool(Object<ffi::GstRTSPAddressPool, ffi::GstRTSPAddressPoolClass>);
12
13    match fn {
14        type_ => || ffi::gst_rtsp_address_pool_get_type(),
15    }
16}
17
18impl RTSPAddressPool {
19    pub const NONE: Option<&'static RTSPAddressPool> = None;
20
21    #[doc(alias = "gst_rtsp_address_pool_new")]
22    pub fn new() -> RTSPAddressPool {
23        assert_initialized_main_thread!();
24        unsafe { from_glib_full(ffi::gst_rtsp_address_pool_new()) }
25    }
26}
27
28impl Default for RTSPAddressPool {
29    fn default() -> Self {
30        Self::new()
31    }
32}
33
34unsafe impl Send for RTSPAddressPool {}
35unsafe impl Sync for RTSPAddressPool {}
36
37pub trait RTSPAddressPoolExt: IsA<RTSPAddressPool> + 'static {
38    #[doc(alias = "gst_rtsp_address_pool_acquire_address")]
39    fn acquire_address(
40        &self,
41        flags: RTSPAddressFlags,
42        n_ports: i32,
43    ) -> Result<RTSPAddress, glib::BoolError> {
44        unsafe {
45            Option::<_>::from_glib_full(ffi::gst_rtsp_address_pool_acquire_address(
46                self.as_ref().to_glib_none().0,
47                flags.into_glib(),
48                n_ports,
49            ))
50            .ok_or_else(|| glib::bool_error!("Failed to acquire address"))
51        }
52    }
53
54    #[doc(alias = "gst_rtsp_address_pool_add_range")]
55    fn add_range(
56        &self,
57        min_address: &str,
58        max_address: &str,
59        min_port: u16,
60        max_port: u16,
61        ttl: u8,
62    ) -> Result<(), glib::error::BoolError> {
63        unsafe {
64            glib::result_from_gboolean!(
65                ffi::gst_rtsp_address_pool_add_range(
66                    self.as_ref().to_glib_none().0,
67                    min_address.to_glib_none().0,
68                    max_address.to_glib_none().0,
69                    min_port,
70                    max_port,
71                    ttl
72                ),
73                "Failed to add address range"
74            )
75        }
76    }
77
78    #[doc(alias = "gst_rtsp_address_pool_clear")]
79    fn clear(&self) {
80        unsafe {
81            ffi::gst_rtsp_address_pool_clear(self.as_ref().to_glib_none().0);
82        }
83    }
84
85    #[doc(alias = "gst_rtsp_address_pool_dump")]
86    fn dump(&self) {
87        unsafe {
88            ffi::gst_rtsp_address_pool_dump(self.as_ref().to_glib_none().0);
89        }
90    }
91
92    #[doc(alias = "gst_rtsp_address_pool_has_unicast_addresses")]
93    fn has_unicast_addresses(&self) -> bool {
94        unsafe {
95            from_glib(ffi::gst_rtsp_address_pool_has_unicast_addresses(
96                self.as_ref().to_glib_none().0,
97            ))
98        }
99    }
100}
101
102impl<O: IsA<RTSPAddressPool>> RTSPAddressPoolExt for O {}