Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion src/celluloid-metadata-cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -147,8 +147,10 @@ mpv_event_notify( CelluloidMpv *mpv,
CelluloidMetadataCacheEntry *entry = NULL;
gchar *path = NULL;

/*
celluloid_mpv_get_property
(mpv, "path", MPV_FORMAT_STRING, &path);
*/

if(path)
{
Expand All @@ -163,6 +165,7 @@ mpv_event_notify( CelluloidMpv *mpv,
gchar *media_title = NULL;
mpv_node metadata;

/*
celluloid_mpv_get_property( mpv,
"duration",
MPV_FORMAT_DOUBLE,
Expand All @@ -175,7 +178,7 @@ mpv_event_notify( CelluloidMpv *mpv,
"metadata",
MPV_FORMAT_NODE,
&metadata );

*/
if(!entry->title)
{
entry->title = g_strdup(media_title);
Expand Down
46 changes: 31 additions & 15 deletions src/celluloid-model.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ enum
PROP_WINDOW_MAXIMIZED,
PROP_WINDOW_SCALE,
PROP_DISPLAY_FPS,
PROP_TIME_POS,
N_PROPERTIES
};

Expand Down Expand Up @@ -81,6 +82,7 @@ struct _CelluloidModel
gboolean window_maximized;
gdouble window_scale;
gdouble display_fps;
gdouble time_pos;
GStrv input_binding_list;
};

Expand Down Expand Up @@ -310,6 +312,10 @@ set_property( GObject *object,
self->display_fps = g_value_get_double(value);
break;

case PROP_TIME_POS:
self->time_pos = g_value_get_double(value);
break;

default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
break;
Expand Down Expand Up @@ -421,6 +427,10 @@ get_property( GObject *object,
g_value_set_double(value, self->display_fps);
break;

case PROP_TIME_POS:
g_value_set_double(value, self->time_pos);
break;

default:
G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec);
break;
Expand Down Expand Up @@ -566,6 +576,13 @@ set_mpv_property( GObject *object,
MPV_FORMAT_DOUBLE,
&self->display_fps );
break;

case PROP_TIME_POS:
celluloid_mpv_set_property( mpv,
"time-pos",
MPV_FORMAT_DOUBLE,
&self->time_pos );
break;
}
}

Expand Down Expand Up @@ -715,6 +732,7 @@ build_input_binding_list(CelluloidMpv *mpv)
mpv_node bindings_node = {0};
mpv_node_list *bindings_array = NULL;

return NULL;
const gint err =
celluloid_mpv_get_property
( mpv,
Expand Down Expand Up @@ -809,6 +827,7 @@ celluloid_model_class_init(CelluloidModelClass *klass)
{"volume-max", PROP_VOLUME_MAX, G_TYPE_DOUBLE},
{"window-maximized", PROP_WINDOW_MAXIMIZED, G_TYPE_BOOLEAN},
{"window-scale", PROP_WINDOW_SCALE, G_TYPE_DOUBLE},
{"time-pos", PROP_TIME_POS, G_TYPE_DOUBLE},
{NULL, PROP_INVALID, 0} };

GObjectClass *obj_class = G_OBJECT_CLASS(klass);
Expand Down Expand Up @@ -896,6 +915,7 @@ celluloid_model_init(CelluloidModel *model)
model->window_maximized = FALSE;
model->window_scale = 1.0;
model->display_fps = 0.0;
model->time_pos = 0.0;
model->input_binding_list = NULL;
}

Expand Down Expand Up @@ -940,22 +960,23 @@ celluloid_model_initialize(CelluloidModel *model)
CelluloidMpv *mpv =
CELLULOID_MPV(model);
gboolean shuffle =
celluloid_mpv_get_property_flag(mpv, "shuffle");
false;
// celluloid_mpv_get_property_flag(mpv, "shuffle");

g_object_set(model, "shuffle", shuffle, NULL);
//g_object_set(model, "shuffle", shuffle, NULL);
}

if(extra_options_contains(model, "loop-playlist"))
{
// Sync the property to match mpv's
CelluloidMpv *mpv =
CELLULOID_MPV(model);
gchar *loop_playlist =
/*gchar *loop_playlist =
celluloid_mpv_get_property_string(mpv, "loop-playlist");

g_object_set(model, "loop-playlist", loop_playlist, NULL);

mpv_free(loop_playlist);
mpv_free(loop_playlist);*/
}
else
{
Expand Down Expand Up @@ -1175,18 +1196,8 @@ celluloid_model_load_subtitle_track( CelluloidModel *model,
gdouble
celluloid_model_get_time_position(CelluloidModel *model)
{
gdouble time_pos = 0.0;

if(!model->idle_active)
{
celluloid_mpv_get_property( CELLULOID_MPV(model),
"time-pos",
MPV_FORMAT_DOUBLE,
&time_pos );
}

/* time-pos may become negative during seeks */
return MAX(0, time_pos);
return MAX(0, model->time_pos);
}

void
Expand Down Expand Up @@ -1276,18 +1287,23 @@ celluloid_model_get_video_geometry( CelluloidModel *model,
{
CelluloidMpv *mpv = CELLULOID_MPV(model);

/*
celluloid_mpv_get_property(mpv, "dwidth", MPV_FORMAT_INT64, width);
celluloid_mpv_get_property(mpv, "dheight", MPV_FORMAT_INT64, height);
*/
}

gchar *
celluloid_model_get_current_path(CelluloidModel *model)
{
CelluloidMpv *mpv = CELLULOID_MPV(model);
/*
gchar *path = celluloid_mpv_get_property_string(mpv, "path");
gchar *buf = g_strdup(path);

mpv_free(path);

return buf;
*/
return NULL;
}
13 changes: 8 additions & 5 deletions src/celluloid-mpv.c
Original file line number Diff line number Diff line change
Expand Up @@ -472,16 +472,16 @@ load_file(CelluloidMpv *mpv, const gchar *uri, gboolean append)
g_assert(uri);
g_info( "Loading file (append=%s): %s", append?"TRUE":"FALSE", uri);

mpv_get_property( priv->mpv_ctx,
/*mpv_get_property( priv->mpv_ctx,
"playlist-count",
MPV_FORMAT_INT64,
&playlist_count );

*/
load_cmd[2] = (append && playlist_count > 0)?"append":"replace";

if(!append)
{
celluloid_mpv_set_property_flag(mpv, "pause", FALSE);
//celluloid_mpv_set_property_flag(mpv, "pause", FALSE);
}

g_assert(priv->mpv_ctx);
Expand All @@ -498,15 +498,17 @@ reset(CelluloidMpv *mpv)
CelluloidMpvPrivate *priv = get_private(mpv);
gchar *loop_file_str;
gchar *loop_playlist_str;
gboolean loop_file;
gboolean loop_playlist;
gboolean loop_file = TRUE;
gboolean loop_playlist = TRUE;

/*
loop_file_str = celluloid_mpv_get_property_string
(mpv, "loop-file");
loop_playlist_str = celluloid_mpv_get_property_string
(mpv, "loop-playlist");
loop_file = (g_strcmp0(loop_file_str, "inf") == 0);
loop_playlist = (g_strcmp0(loop_playlist_str, "inf") == 0);
*/

mpv_free(loop_file_str);
mpv_free(loop_playlist_str);
Expand Down Expand Up @@ -716,6 +718,7 @@ celluloid_mpv_init_gl(CelluloidMpv *mpv)
{MPV_RENDER_PARAM_OPENGL_INIT_PARAMS, &init_params},
{MPV_RENDER_PARAM_WL_DISPLAY, get_wl_display()},
{MPV_RENDER_PARAM_X11_DISPLAY, get_x11_display()},
{MPV_RENDER_PARAM_ADVANCED_CONTROL, &(int){1}},
{0, NULL} };
gint rc = mpv_render_context_create( &priv->render_ctx,
priv->mpv_ctx,
Expand Down
44 changes: 24 additions & 20 deletions src/celluloid-player-options.c
Original file line number Diff line number Diff line change
Expand Up @@ -249,12 +249,12 @@ static gboolean
get_video_dimensions(CelluloidMpv *mpv, gint64 dim[2])
{
gint rc = 0;

/*
rc |= celluloid_mpv_get_property
(mpv, "dwidth", MPV_FORMAT_INT64, &dim[0]);
rc |= celluloid_mpv_get_property
(mpv, "dheight", MPV_FORMAT_INT64, &dim[1]);

*/
return (rc >= 0);
}

Expand Down Expand Up @@ -296,13 +296,15 @@ autofit_handler(CelluloidMpv *mpv, gpointer data)
static gboolean
handle_window_scale(CelluloidMpv *mpv, gint64 dim[2])
{
gchar *scale_str;
gboolean scale_set;
gchar *scale_str = NULL;
gboolean scale_set = FALSE;

/*
scale_str = celluloid_mpv_get_property_string
(mpv, "options/window-scale");
scale_set = scale_str && *scale_str;
scale_set = scale_str && *scale_str;*/

mpv_free(scale_str);
if(scale_set)
{
gdouble scale;
Expand All @@ -315,9 +317,9 @@ handle_window_scale(CelluloidMpv *mpv, gint64 dim[2])
scale = g_ascii_strtod(scale_str, NULL);
dim[0] = (gint64)(scale*(gdouble)dim[0]);
dim[1] = (gint64)(scale*(gdouble)dim[1]);
mpv_free(scale_str);
}

mpv_free(scale_str);

return scale_set;
}
Expand All @@ -335,14 +337,14 @@ handle_autofit(CelluloidMpv *mpv, gint64 dim[2], GdkRectangle monitor_geom)
gboolean larger_set = FALSE;
gboolean smaller_set = FALSE;
gboolean updated = FALSE;

/*
autofit_str = celluloid_mpv_get_property_string
(mpv, "options/autofit");
larger_str = celluloid_mpv_get_property_string
(mpv, "options/autofit-larger");
smaller_str = celluloid_mpv_get_property_string
(mpv, "options/autofit-smaller");

*/
autofit_set = autofit_str && *autofit_str;
larger_set = larger_str && *larger_str;
smaller_set = smaller_str && *smaller_str;
Expand Down Expand Up @@ -398,8 +400,11 @@ handle_autofit(CelluloidMpv *mpv, gint64 dim[2], GdkRectangle monitor_geom)
static void
handle_geometry(CelluloidPlayer *player, GdkRectangle monitor_geom)
{
gchar *geometry_str = NULL;
/*
gchar *geometry_str = celluloid_mpv_get_property_string
(CELLULOID_MPV(player), "options/geometry");
*/

if(geometry_str)
{
Expand All @@ -424,9 +429,8 @@ handle_geometry(CelluloidPlayer *player, GdkRectangle monitor_geom)
"window-resize",
dim[0], dim[1] );
}
mpv_free(geometry_str);
}

mpv_free(geometry_str);
}

static void
Expand All @@ -437,23 +441,23 @@ handle_msg_level(CelluloidPlayer *player)
gchar **tokens = NULL;
gint i;

optbuf = celluloid_mpv_get_property_string(mpv, "options/msg-level");
//optbuf = celluloid_mpv_get_property_string(mpv, "options/msg-level");

if(optbuf)
{
tokens = g_strsplit(optbuf, ",", 0);
}

for(i = 0; tokens && tokens[i]; i++)
{
gchar **pair = g_strsplit(tokens[i], "=", 2);
for(i = 0; tokens && tokens[i]; i++)
{
gchar **pair = g_strsplit(tokens[i], "=", 2);

celluloid_player_set_log_level(player, pair[0], pair[1]);
g_strfreev(pair);
}
celluloid_player_set_log_level(player, pair[0], pair[1]);
g_strfreev(pair);
}

mpv_free(optbuf);
g_strfreev(tokens);
mpv_free(optbuf);
g_strfreev(tokens);
}
}

void
Expand Down
Loading