summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@gnome.org>2008-01-30 15:34:39 +0100
committerBenjamin Otte <otte@gnome.org>2008-01-30 15:34:39 +0100
commitb4c537e44dd3673d09c89af456ecf161443aceb8 (patch)
tree1dc1f70db8955618d516fd09d03ed4570a163c91
parent86bf5e4d826dce8857d63cad44e341cf5757523d (diff)
make the DirectFB used a property
-rw-r--r--swfdec-directfb/swfdec_directfb_player.c21
-rw-r--r--swfdec-directfb/swfdec_directfb_player.h6
2 files changed, 23 insertions, 4 deletions
diff --git a/swfdec-directfb/swfdec_directfb_player.c b/swfdec-directfb/swfdec_directfb_player.c
index 9e32c01..9a76133 100644
--- a/swfdec-directfb/swfdec_directfb_player.c
+++ b/swfdec-directfb/swfdec_directfb_player.c
@@ -28,7 +28,9 @@ enum {
PROP_0,
PROP_PLAYING,
PROP_AUDIO,
- PROP_SPEED
+ PROP_SPEED,
+ PROP_DFB,
+ PROP_HANDLE_EVENTS
};
/*** dfb-doc ***/
@@ -72,6 +74,9 @@ swfdec_dfb_player_get_property (GObject *object, guint param_id, GValue *value,
case PROP_SPEED:
g_value_set_double (value, player->speed);
break;
+ case PROP_DFB:
+ g_value_set_pointer (value, player->dfb);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
break;
@@ -94,6 +99,11 @@ swfdec_dfb_player_set_property (GObject *object, guint param_id, const GValue *v
case PROP_SPEED:
swfdec_dfb_player_set_speed (player, g_value_get_double (value));
break;
+ case PROP_DFB:
+ player->dfb = g_value_get_pointer (value);
+ g_return_if_fail (player->dfb);
+ player->dfb->AddRef (player->dfb);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
break;
@@ -132,6 +142,9 @@ swfdec_dfb_player_class_init (SwfdecDfbPlayerClass * g_class)
g_object_class_install_property (object_class, PROP_SPEED,
g_param_spec_double ("speed", "speed", "desired playback speed",
G_MINDOUBLE, G_MAXDOUBLE, 1.0, G_PARAM_READWRITE));
+ g_object_class_install_property (object_class, PROP_DFB,
+ g_param_spec_pointer ("directfb", "directfb", "The directfb object this player operates on",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
}
static void
@@ -158,13 +171,12 @@ swfdec_dfb_player_new (IDirectFB *dfb, SwfdecAsDebugger *debugger)
SwfdecPlayer *player;
g_return_val_if_fail (dfb != NULL, NULL);
+
swfdec_init ();
- player = g_object_new (SWFDEC_TYPE_DFB_PLAYER,
+ player = g_object_new (SWFDEC_TYPE_DFB_PLAYER, "directfb", dfb,
"loader-type", SWFDEC_TYPE_FILE_LOADER, "socket-type", SWFDEC_TYPE_SOCKET,
"debugger", debugger,
NULL);
- SWFDEC_DFB_PLAYER (player)->dfb = dfb;
- dfb->AddRef (dfb);
return player;
}
@@ -282,3 +294,4 @@ swfdec_dfb_player_get_speed (SwfdecDfbPlayer *player)
return player->speed;
}
+
diff --git a/swfdec-directfb/swfdec_directfb_player.h b/swfdec-directfb/swfdec_directfb_player.h
index c29cd51..247544b 100644
--- a/swfdec-directfb/swfdec_directfb_player.h
+++ b/swfdec-directfb/swfdec_directfb_player.h
@@ -67,6 +67,12 @@ void swfdec_dfb_player_set_speed (SwfdecDfbPlayer * player,
double speed);
double swfdec_dfb_player_get_speed (SwfdecDfbPlayer * player);
+gboolean swfdec_dfb_player_handle_event (SwfdecDfbPlayer * player,
+ const DFBInputEvent * event);
+void swfdec_dfb_player_set_handle_events (SwfdecDfbPlayer * player,
+ gboolean handle_events);
+gboolean swfdec_dfb_player_get_handle_events (SwfdecDfbPlayer * player);
+
G_END_DECLS