static void media_eos_cb (ClutterMedia *media, MexPlayer *player) { MexPlayerPrivate *priv = player->priv; priv->position = 0.0; if (priv->idle_mode) { /* loop the video in idle mode */ clutter_media_set_progress (media, priv->position); clutter_media_set_playing (media, TRUE); } else { /* set the control visible */ mex_player_set_controls_visible (player, TRUE); clutter_media_set_progress (media, priv->position); clutter_media_set_playing (media, FALSE); /* focus the related content */ mex_media_controls_focus_content (MEX_MEDIA_CONTROLS (priv->controls), priv->content); /* we're not playing the content or playing the idle video so allow * screensaver if previously inhibited */ mex_screensaver_uninhibit (priv->screensaver); priv->current_position = 0.0; priv->at_eos = TRUE; } }
void mex_player_set_idle_mode (MexPlayer *player, gboolean idle) { MexPlayerPrivate *priv = player->priv; if (priv->idle_mode == idle) return; priv->idle_mode = idle; mex_player_set_controls_visible (player, !idle); if (idle) { gchar *tmp; clutter_actor_hide (priv->controls); clutter_actor_hide (priv->info_panel); mx_widget_set_disabled (MX_WIDGET (player), TRUE); clutter_actor_set_reactive (CLUTTER_ACTOR (player), FALSE); if (priv->content) { save_old_content (player); g_object_unref (priv->content); priv->content = NULL; } tmp = g_strconcat ("file://", mex_get_data_dir (), "/common/style/background-loop.mkv", NULL); clutter_media_set_uri (priv->media, tmp); g_free (tmp); clutter_media_set_playing (priv->media, TRUE); /* we're idle so we don't mind the screensaver coming on */ mex_screensaver_uninhibit (priv->screensaver); } else { clutter_actor_show (priv->controls); clutter_actor_show (priv->info_panel); mx_widget_set_disabled (MX_WIDGET (player), FALSE); clutter_actor_set_reactive (CLUTTER_ACTOR (player), TRUE); clutter_media_set_playing (priv->media, FALSE); clutter_media_set_uri (priv->media, NULL); /* we're playing real content so don't allow the screensaver */ mex_screensaver_inhibit (priv->screensaver); } }
static void media_eos_cb (ClutterMedia *media, MexPlayer *player) { MexPlayerPrivate *priv = player->priv; priv->position = 0.0; if (priv->idle_mode) { /* loop the video in idle mode */ clutter_media_set_progress (media, priv->position); clutter_media_set_playing (media, TRUE); } else { /* Check to see if we have enqueued content and if so play it next */ MexContent *enqueued_content; enqueued_content = mex_media_controls_get_enqueued (MEX_MEDIA_CONTROLS (priv->controls), priv->content); /* set the control visible */ clutter_actor_animate (priv->info_panel, CLUTTER_EASE_IN_SINE, 250, "opacity", 0x00, NULL); mex_player_set_controls_visible (player, TRUE); if (enqueued_content) { priv->playing_from_queue = TRUE; mex_player_set_content (MEX_CONTENT_VIEW (player), enqueued_content); } else { priv->playing_from_queue = TRUE; mex_screensaver_uninhibit (priv->screensaver); clutter_media_set_progress (media, priv->position); clutter_media_set_playing (media, FALSE); priv->current_position = 0.0; priv->at_eos = TRUE; } /* focus the related content */ mex_media_controls_focus_content (MEX_MEDIA_CONTROLS (priv->controls), priv->content); } }
void mex_player_set_idle_mode (MexPlayer *player, gboolean idle) { MexPlayerPrivate *priv = player->priv; if (priv->idle_mode == idle) return; priv->idle_mode = idle; if (idle) { clutter_actor_hide (priv->controls); clutter_actor_hide (priv->info_panel); mx_widget_set_disabled (MX_WIDGET (player), TRUE); if (priv->content) { save_old_content (player); g_object_unref (priv->content); priv->content = NULL; } clutter_media_set_uri (priv->media, "file://" PKGDATADIR "/style/background-loop.mkv"); clutter_media_set_playing (priv->media, TRUE); /* we're idle so we don't mind the screensaver coming on */ mex_screensaver_uninhibit (priv->screensaver); } else { clutter_actor_show (priv->controls); clutter_actor_show (priv->info_panel); mx_widget_set_disabled (MX_WIDGET (player), FALSE); clutter_media_set_playing (priv->media, FALSE); clutter_media_set_uri (priv->media, NULL); /* we're playing real content so don't allow the screensaver */ mex_screensaver_inhibit (priv->screensaver); } }