glib/poppler-media.cc | 61 ++++++++++++++++++++++++++++++++++++ glib/poppler-media.h | 6 +++ glib/reference/poppler-sections.txt | 3 + 3 files changed, 70 insertions(+)
New commits: commit 81bee89c88d632ce6de878d338dd53a8150ea8aa Author: Clément Pit-Claudel <[email protected]> Date: Mon Mar 15 20:43:38 2021 +0000 [glib] Expose more fields from MediaRendition in PopplerMedia diff --git a/glib/poppler-media.cc b/glib/poppler-media.cc index 6f1826b8..6b827485 100644 --- a/glib/poppler-media.cc +++ b/glib/poppler-media.cc @@ -39,6 +39,9 @@ struct _PopplerMedia GObject parent_instance; gchar *filename; + gboolean auto_play; + gboolean show_controls; + gfloat repeat_count; gchar *mime_type; Object stream; @@ -98,6 +101,13 @@ PopplerMedia *_poppler_media_new(const MediaRendition *poppler_media) media->filename = g_strdup(poppler_media->getFileName()->c_str()); } + const MediaParameters *mp = poppler_media->getBEParameters(); + mp = mp ? mp : poppler_media->getMHParameters(); + + media->auto_play = mp ? mp->autoPlay : false; + media->show_controls = mp ? mp->showControls : false; + media->repeat_count = mp ? mp->repeatCount : 1.f; + return media; } @@ -140,6 +150,57 @@ gboolean poppler_media_is_embedded(PopplerMedia *poppler_media) return poppler_media->stream.isStream(); } +/** + * poppler_media_get_auto_play: + * @poppler_media: a #PopplerMedia + * + * Returns the auto-play parameter. + * + * Return value: %TRUE if media should auto-play, %FALSE otherwise + * + * Since: 20.04.0 + */ +gboolean poppler_media_get_auto_play(PopplerMedia *poppler_media) +{ + g_return_val_if_fail(POPPLER_IS_MEDIA(poppler_media), FALSE); + + return poppler_media->auto_play; +} + +/** + * poppler_media_get_show_controls: + * @poppler_media: a #PopplerMedia + * + * Returns the show controls parameter. + * + * Return value: %TRUE if media should show controls, %FALSE otherwise + * + * Since: 20.04.0 + */ +gboolean poppler_media_get_show_controls(PopplerMedia *poppler_media) +{ + g_return_val_if_fail(POPPLER_IS_MEDIA(poppler_media), FALSE); + + return poppler_media->show_controls; +} + +/** + * poppler_media_get_repeat_count: + * @poppler_media: a #PopplerMedia + * + * Returns the repeat count parameter. + * + * Return value: Repeat count parameter (float) + * + * Since: 20.04.0 + */ +gfloat poppler_media_get_repeat_count(PopplerMedia *poppler_media) +{ + g_return_val_if_fail(POPPLER_IS_MEDIA(poppler_media), FALSE); + + return poppler_media->repeat_count; +} + /** * poppler_media_get_mime_type: * @poppler_media: a #PopplerMedia diff --git a/glib/poppler-media.h b/glib/poppler-media.h index b5efdc0d..e4a278c6 100644 --- a/glib/poppler-media.h +++ b/glib/poppler-media.h @@ -61,6 +61,12 @@ const gchar *poppler_media_get_filename(PopplerMedia *poppler_media); POPPLER_PUBLIC const gchar *poppler_media_get_mime_type(PopplerMedia *poppler_media); POPPLER_PUBLIC +gboolean poppler_media_get_auto_play(PopplerMedia *poppler_media); +POPPLER_PUBLIC +gboolean poppler_media_get_show_controls(PopplerMedia *poppler_media); +POPPLER_PUBLIC +gfloat poppler_media_get_repeat_count(PopplerMedia *poppler_media); +POPPLER_PUBLIC gboolean poppler_media_save(PopplerMedia *poppler_media, const char *filename, GError **error); POPPLER_PUBLIC gboolean poppler_media_save_to_callback(PopplerMedia *poppler_media, PopplerMediaSaveFunc save_func, gpointer user_data, GError **error); diff --git a/glib/reference/poppler-sections.txt b/glib/reference/poppler-sections.txt index 828a8bf1..b6f8ecc9 100644 --- a/glib/reference/poppler-sections.txt +++ b/glib/reference/poppler-sections.txt @@ -584,8 +584,11 @@ poppler_layer_get_type <TITLE>Poppler Media</TITLE> PopplerMedia PopplerMediaSaveFunc +poppler_media_get_auto_play poppler_media_get_filename poppler_media_get_mime_type +poppler_media_get_repeat_count +poppler_media_get_show_controls poppler_media_is_embedded poppler_media_save poppler_media_save_to_callback _______________________________________________ poppler mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/poppler
