diff --git a/ges/ges-enums.c b/ges/ges-enums.c index f19b9f6306..3439feb7ee 100644 --- a/ges/ges-enums.c +++ b/ges/ges-enums.c @@ -468,7 +468,7 @@ ges_text_halign_get_type (void) } /* table more-or-less copied from gstvideotestsrc.c */ -GEnumValue vpattern_enum_values[] = { +static GEnumValue vpattern_enum_values[] = { {GES_VIDEO_TEST_PATTERN_SMPTE, "SMPTE 100% color bars", "smpte"} , {GES_VIDEO_TEST_PATTERN_SNOW, "Random (television snow)", "snow"} diff --git a/ges/ges-enums.h b/ges/ges-enums.h index 5505e6e7fb..e307fa42ea 100644 --- a/ges/ges-enums.h +++ b/ges/ges-enums.h @@ -292,8 +292,6 @@ typedef enum { #define GES_VIDEO_TEST_PATTERN_TYPE\ ges_video_test_pattern_get_type() -extern GEnumValue vpattern_enum_values[]; - GType ges_video_test_pattern_get_type (void); G_END_DECLS diff --git a/ges/ges-timeline-test-source.c b/ges/ges-timeline-test-source.c index fe24fd76dc..d23fd9b0db 100644 --- a/ges/ges-timeline-test-source.c +++ b/ges/ges-timeline-test-source.c @@ -309,16 +309,19 @@ GESTimelineTestSource * ges_timeline_test_source_new_for_nick (gchar * nick) { GEnumValue *value; - int i; + GEnumClass *klass; + GESTimelineTestSource *ret = NULL; - for (i = 0, value = &vpattern_enum_values[i]; value->value_nick; - value = &vpattern_enum_values[i++]) { - if (!strcmp (nick, value->value_nick)) { - return g_object_new (GES_TYPE_TIMELINE_TEST_SOURCE, "vpattern", - (gint) value->value, NULL); - } - value++; + klass = G_ENUM_CLASS (g_type_class_ref (GES_VIDEO_TEST_PATTERN_TYPE)); + if (!klass) + return NULL; + + value = g_enum_get_value_by_nick (klass, nick); + if (value) { + ret = g_object_new (GES_TYPE_TIMELINE_TEST_SOURCE, "vpattern", + (gint) value->value, NULL); } - return NULL; + g_type_class_unref (klass); + return ret; }