1use 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 #[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}