poppler/auto/
media.rs

1// This file was generated by gir (https://github.com/gtk-rs/gir)
2// from
3// from gir-files (https://github.com/gtk-rs/gir-files)
4// DO NOT EDIT
5
6use crate::ffi;
7use glib::translate::*;
8
9glib::wrapper! {
10    #[doc(alias = "PopplerMedia")]
11    pub struct Media(Object<ffi::PopplerMedia>);
12
13    match fn {
14        type_ => || ffi::poppler_media_get_type(),
15    }
16}
17
18impl Media {
19    #[cfg(feature = "v20_4")]
20    #[cfg_attr(docsrs, doc(cfg(feature = "v20_4")))]
21    #[doc(alias = "poppler_media_get_auto_play")]
22    #[doc(alias = "get_auto_play")]
23    pub fn is_auto_play(&self) -> bool {
24        unsafe { from_glib(ffi::poppler_media_get_auto_play(self.to_glib_none().0)) }
25    }
26
27    #[doc(alias = "poppler_media_get_filename")]
28    #[doc(alias = "get_filename")]
29    pub fn filename(&self) -> Option<glib::GString> {
30        unsafe { from_glib_none(ffi::poppler_media_get_filename(self.to_glib_none().0)) }
31    }
32
33    #[doc(alias = "poppler_media_get_mime_type")]
34    #[doc(alias = "get_mime_type")]
35    pub fn mime_type(&self) -> Option<glib::GString> {
36        unsafe { from_glib_none(ffi::poppler_media_get_mime_type(self.to_glib_none().0)) }
37    }
38
39    #[cfg(feature = "v20_4")]
40    #[cfg_attr(docsrs, doc(cfg(feature = "v20_4")))]
41    #[doc(alias = "poppler_media_get_repeat_count")]
42    #[doc(alias = "get_repeat_count")]
43    pub fn repeat_count(&self) -> f32 {
44        unsafe { ffi::poppler_media_get_repeat_count(self.to_glib_none().0) }
45    }
46
47    #[cfg(feature = "v20_4")]
48    #[cfg_attr(docsrs, doc(cfg(feature = "v20_4")))]
49    #[doc(alias = "poppler_media_get_show_controls")]
50    #[doc(alias = "get_show_controls")]
51    pub fn shows_controls(&self) -> bool {
52        unsafe { from_glib(ffi::poppler_media_get_show_controls(self.to_glib_none().0)) }
53    }
54
55    #[doc(alias = "poppler_media_is_embedded")]
56    pub fn is_embedded(&self) -> bool {
57        unsafe { from_glib(ffi::poppler_media_is_embedded(self.to_glib_none().0)) }
58    }
59
60    #[doc(alias = "poppler_media_save")]
61    pub fn save(&self, filename: &str) -> Result<(), glib::Error> {
62        unsafe {
63            let mut error = std::ptr::null_mut();
64            let is_ok = ffi::poppler_media_save(
65                self.to_glib_none().0,
66                filename.to_glib_none().0,
67                &mut error,
68            );
69            debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
70            if error.is_null() {
71                Ok(())
72            } else {
73                Err(from_glib_full(error))
74            }
75        }
76    }
77
78    //#[doc(alias = "poppler_media_save_to_callback")]
79    //pub fn save_to_callback<P: FnMut(&Vec<u8>, usize, Option<&glib::Error>) -> bool>(&self, save_func: P) -> Result<(), glib::Error> {
80    //    unsafe { TODO: call ffi:poppler_media_save_to_callback() }
81    //}
82
83    #[cfg(target_os = "linux")]
84    #[cfg_attr(docsrs, doc(cfg(target_os = "linux")))]
85    #[cfg(feature = "v21_12")]
86    #[cfg_attr(docsrs, doc(cfg(feature = "v21_12")))]
87    #[doc(alias = "poppler_media_save_to_fd")]
88    pub fn save_to_fd(&self, fd: i32) -> Result<(), glib::Error> {
89        unsafe {
90            let mut error = std::ptr::null_mut();
91            let is_ok = ffi::poppler_media_save_to_fd(self.to_glib_none().0, fd, &mut error);
92            debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
93            if error.is_null() {
94                Ok(())
95            } else {
96                Err(from_glib_full(error))
97            }
98        }
99    }
100}