コード例 #1
0
ファイル: gmpv_common.c プロジェクト: TingPing/gnome-mpv
gboolean update_seek_bar(gpointer data)
{
	GmpvApplication *app = data;
	GmpvMpv *mpv = gmpv_application_get_mpv(app);
	mpv_handle *mpv_ctx = gmpv_mpv_get_mpv_handle(mpv);
	gdouble time_pos = -1;
	gint rc = -1;

	if(gmpv_mpv_get_state(mpv)->loaded)
	{
		rc = gmpv_mpv_get_property(	mpv,
						"time-pos",
						MPV_FORMAT_DOUBLE,
						&time_pos );
	}

	if(rc >= 0)
	{
		GmpvMainWindow *wnd;
		GmpvControlBox *control_box;

		wnd = gmpv_application_get_main_window(app);
		control_box = gmpv_main_window_get_control_box(wnd);

		gmpv_control_box_set_seek_bar_pos(control_box, time_pos);
	}

	return !!mpv_ctx;
}
コード例 #2
0
void gmpv_playbackctl_connect_signals(GmpvApplication *app)
{
	GmpvMainWindow *wnd = gmpv_application_get_main_window(app);
	GmpvControlBox *control_box = gmpv_main_window_get_control_box(wnd);

	const struct
	{
		const gchar *name;
		GCallback handler;
	}
	signals_map[] = {	{"play-button-clicked",
				G_CALLBACK(play_handler)},
				{"stop-button-clicked",
				G_CALLBACK(stop_handler)},
				{"forward-button-clicked",
				G_CALLBACK(forward_handler)},
				{"rewind-button-clicked",
				G_CALLBACK(rewind_handler)},
				{"previous-button-clicked",
				G_CALLBACK(chapter_previous_handler)},
				{"next-button-clicked",
				G_CALLBACK(chapter_next_handler)},
				{"fullscreen-button-clicked",
				G_CALLBACK(fullscreen_handler)},
				{"seek",
				G_CALLBACK(seek_handler)},
				{"volume-changed",
				G_CALLBACK(volume_handler)},
				{NULL, NULL} };

	for(gint i = 0; signals_map[i].name; i++)
	{
		g_signal_connect(	control_box,
					signals_map[i].name,
					signals_map[i].handler,
					app );
	}
}