Don't expose test source enum value table
authorBrandon Lewis <brandon@collabora.co.uk>
Thu, 8 Jul 2010 14:35:43 +0000 (16:35 +0200)
committerEdward Hervey <edward.hervey@collabora.co.uk>
Fri, 9 Jul 2010 11:27:01 +0000 (13:27 +0200)
ges/ges-enums.c
ges/ges-enums.h
ges/ges-timeline-test-source.c

index f19b9f6..3439feb 100644 (file)
@@ -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"}
index 5505e6e..e307fa4 100644 (file)
@@ -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
index fe24fd7..d23fd9b 100644 (file)
@@ -309,16 +309,19 @@ GESTimelineTestSource *
 ges_timeline_test_source_new_for_nick (gchar * nick)
 {
   GEnumValue *value;
-  int i;
-
-  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++;
+  GEnumClass *klass;
+  GESTimelineTestSource *ret = NULL;
+
+  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;
 }