1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
// This file was generated by gir (https://github.com/gtk-rs/gir)
// from
// from gir-files (https://github.com/gtk-rs/gir-files)
// DO NOT EDIT
use glib::translate::*;
use std::{fmt, ptr};
glib::wrapper! {
///
#[doc(alias = "PopplerMedia")]
pub struct Media(Object<ffi::PopplerMedia>);
match fn {
type_ => || ffi::poppler_media_get_type(),
}
}
impl Media {
/// Returns the auto-play parameter.
///
/// # Returns
///
/// [`true`] if media should auto-play, [`false`] otherwise
#[cfg(feature = "v20_4")]
#[cfg_attr(docsrs, doc(cfg(feature = "v20_4")))]
#[doc(alias = "poppler_media_get_auto_play")]
#[doc(alias = "get_auto_play")]
pub fn is_auto_play(&self) -> bool {
unsafe { from_glib(ffi::poppler_media_get_auto_play(self.to_glib_none().0)) }
}
/// Returns the media clip filename, in case of non-embedded media. filename might be
/// a local relative or absolute path or a URI
///
/// # Returns
///
/// a filename, return value is owned by [`Media`][crate::Media] and should not be freed
#[doc(alias = "poppler_media_get_filename")]
#[doc(alias = "get_filename")]
pub fn filename(&self) -> Option<glib::GString> {
unsafe { from_glib_none(ffi::poppler_media_get_filename(self.to_glib_none().0)) }
}
/// Returns the media clip mime-type
///
/// # Returns
///
/// the mime-type, return value is owned by [`Media`][crate::Media] and should not be freed
#[doc(alias = "poppler_media_get_mime_type")]
#[doc(alias = "get_mime_type")]
pub fn mime_type(&self) -> Option<glib::GString> {
unsafe { from_glib_none(ffi::poppler_media_get_mime_type(self.to_glib_none().0)) }
}
/// Returns the repeat count parameter.
///
/// # Returns
///
/// Repeat count parameter (float)
#[cfg(feature = "v20_4")]
#[cfg_attr(docsrs, doc(cfg(feature = "v20_4")))]
#[doc(alias = "poppler_media_get_repeat_count")]
#[doc(alias = "get_repeat_count")]
pub fn repeat_count(&self) -> f32 {
unsafe { ffi::poppler_media_get_repeat_count(self.to_glib_none().0) }
}
/// Returns the show controls parameter.
///
/// # Returns
///
/// [`true`] if media should show controls, [`false`] otherwise
#[cfg(feature = "v20_4")]
#[cfg_attr(docsrs, doc(cfg(feature = "v20_4")))]
#[doc(alias = "poppler_media_get_show_controls")]
#[doc(alias = "get_show_controls")]
pub fn shows_controls(&self) -> bool {
unsafe { from_glib(ffi::poppler_media_get_show_controls(self.to_glib_none().0)) }
}
/// Whether the media clip is embedded in the PDF. If the result is [`true`], the embedded stream
/// can be saved with [`save()`][Self::save()] or `poppler_media_save_to_callback()` function.
/// If the result is [`false`], the media clip filename can be retrieved with
/// [`filename()`][Self::filename()] function.
///
/// # Returns
///
/// [`true`] if media clip is embedded, [`false`] otherwise
#[doc(alias = "poppler_media_is_embedded")]
pub fn is_embedded(&self) -> bool {
unsafe { from_glib(ffi::poppler_media_is_embedded(self.to_glib_none().0)) }
}
/// Saves embedded stream of `self` to a file indicated by `filename`.
/// If `error` is set, [`false`] will be returned.
/// Possible errors include those in the `G_FILE_ERROR` domain
/// and whatever the save function generates.
/// ## `filename`
/// name of file to save
///
/// # Returns
///
/// [`true`], if the file successfully saved
#[doc(alias = "poppler_media_save")]
pub fn save(&self, filename: &str) -> Result<(), glib::Error> {
unsafe {
let mut error = ptr::null_mut();
let is_ok = ffi::poppler_media_save(
self.to_glib_none().0,
filename.to_glib_none().0,
&mut error,
);
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
if error.is_null() {
Ok(())
} else {
Err(from_glib_full(error))
}
}
}
//#[doc(alias = "poppler_media_save_to_callback")]
//pub fn save_to_callback<P: FnMut(&Vec<u8>, usize, Option<&glib::Error>) -> bool>(&self, save_func: P) -> Result<(), glib::Error> {
// unsafe { TODO: call ffi:poppler_media_save_to_callback() }
//}
/// Saves embedded stream of `self` to a file referred to by `fd`.
/// If `error` is set, [`false`] will be returned.
/// Possible errors include those in the `G_FILE_ERROR` domain
/// and whatever the save function generates.
/// Note that this function takes ownership of `fd`; you must not operate on it
/// again, nor close it.
/// ## `fd`
/// a valid file descriptor open for writing
///
/// # Returns
///
/// [`true`], if the file successfully saved
#[cfg(feature = "v21_12")]
#[cfg_attr(docsrs, doc(cfg(feature = "v21_12")))]
#[doc(alias = "poppler_media_save_to_fd")]
pub fn save_to_fd(&self, fd: i32) -> Result<(), glib::Error> {
unsafe {
let mut error = ptr::null_mut();
let is_ok = ffi::poppler_media_save_to_fd(self.to_glib_none().0, fd, &mut error);
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
if error.is_null() {
Ok(())
} else {
Err(from_glib_full(error))
}
}
}
}
impl fmt::Display for Media {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.write_str("Media")
}
}