TrackVideoTestSource: Move private data to instance private

Add a getter for the pattern

Document methods
This commit is contained in:
Edward Hervey 2011-01-06 11:29:44 +01:00
parent 58afc44fd7
commit 2d9f03fde0
4 changed files with 28 additions and 8 deletions

View file

@ -524,6 +524,7 @@ GES_TYPE_TIMELINE_TEXT_OVERLAY
GESTrackVideoTestSource
ges_track_video_test_source_new
ges_track_video_test_source_set_pattern
ges_track_video_test_source_get_pattern
<SUBSECTION Standard>
GESTrackVideoTestSourceClass
GESTrackVideoTestSourcePrivate

View file

@ -32,8 +32,7 @@ G_DEFINE_TYPE (GESTrackVideoTestSource, ges_track_video_test_source,
struct _GESTrackVideoTestSourcePrivate
{
/* Dummy variable */
void *nothing;
GESVideoTestPattern pattern;
};
static GstElement *ges_track_video_test_source_create_element (GESTrackObject *
@ -56,7 +55,7 @@ ges_track_video_test_source_init (GESTrackVideoTestSource * self)
self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
GES_TYPE_TRACK_VIDEO_TEST_SOURCE, GESTrackVideoTestSourcePrivate);
self->pattern = GES_VIDEO_TEST_PATTERN_BLACK;
self->priv->pattern = GES_VIDEO_TEST_PATTERN_BLACK;
}
static GstElement *
@ -65,7 +64,7 @@ ges_track_video_test_source_create_element (GESTrackObject * self)
GstElement *ret;
gint pattern;
pattern = ((GESTrackVideoTestSource *) self)->pattern;
pattern = ((GESTrackVideoTestSource *) self)->priv->pattern;
ret = gst_element_factory_make ("videotestsrc", NULL);
g_object_set (ret, "pattern", (gint) pattern, NULL);
@ -73,18 +72,37 @@ ges_track_video_test_source_create_element (GESTrackObject * self)
return ret;
}
/**
* ges_track_video_test_source_set_pattern:
* @self: a #GESTrackVideoTestSource
* @pattern: a #GESVideoTestPattern
*
* Sets the source to use the given @pattern.
*/
void
ges_track_video_test_source_set_pattern (GESTrackVideoTestSource
* self, GESVideoTestPattern pattern)
{
GstElement *element = ges_track_object_get_element (GES_TRACK_OBJECT (self));
self->pattern = pattern;
self->priv->pattern = pattern;
if (element)
g_object_set (element, "pattern", (gint) pattern, NULL);
}
/**
* ges_track_video_test_source_get_pattern:
* @source: a #GESVideoTestPattern
*
* Returns: the video pattern used by the @source.
*/
GESVideoTestPattern
ges_track_video_test_source_get_pattern (GESTrackVideoTestSource * source)
{
return source->priv->pattern;
}
GESTrackVideoTestSource *
ges_track_video_test_source_new (void)
{

View file

@ -54,8 +54,6 @@ struct _GESTrackVideoTestSource {
/*< private >*/
GESTrackSource parent;
GESVideoTestPattern pattern;
GESTrackVideoTestSourcePrivate *priv;
/* Padding for API extension */
@ -76,6 +74,8 @@ GESTrackVideoTestSource* ges_track_video_test_source_new (void);
void
ges_track_video_test_source_set_pattern(GESTrackVideoTestSource *self,
GESVideoTestPattern pattern);
GESVideoTestPattern
ges_track_video_test_source_get_pattern (GESTrackVideoTestSource *source);
G_END_DECLS

View file

@ -151,7 +151,8 @@ GST_START_TEST (test_test_source_in_layer)
ges_timeline_object_find_track_object (GES_TIMELINE_OBJECT (source), v,
GES_TYPE_TRACK_VIDEO_TEST_SOURCE);
ptrn = ((GESTrackVideoTestSource *) trobj)->pattern;
ptrn = (ges_track_video_test_source_get_pattern ((GESTrackVideoTestSource *)
trobj));
assert_equals_int (ptrn, GES_VIDEO_TEST_PATTERN_WHITE);
g_object_unref (trobj);