Initial commit
[fillmore] / src / marina / marina / AudioMeter.c
diff --git a/src/marina/marina/AudioMeter.c b/src/marina/marina/AudioMeter.c
new file mode 100644 (file)
index 0000000..da03c23
--- /dev/null
@@ -0,0 +1,453 @@
+/* AudioMeter.c generated by valac, the Vala compiler
+ * generated from AudioMeter.vala, do not modify */
+
+/* Copyright 2009-2010 Yorba Foundation
+ *
+ * This software is licensed under the GNU Lesser General Public License
+ * (version 2.1 or later).  See the COPYING file in this distribution. 
+ */
+
+#include <glib.h>
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include <cairo.h>
+#include <float.h>
+#include <math.h>
+#include <gdk/gdk.h>
+#include <stdlib.h>
+#include <string.h>
+
+
+#define VIEW_TYPE_AUDIO_METER (view_audio_meter_get_type ())
+#define VIEW_AUDIO_METER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_TYPE_AUDIO_METER, ViewAudioMeter))
+#define VIEW_AUDIO_METER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_TYPE_AUDIO_METER, ViewAudioMeterClass))
+#define VIEW_IS_AUDIO_METER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_TYPE_AUDIO_METER))
+#define VIEW_IS_AUDIO_METER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_TYPE_AUDIO_METER))
+#define VIEW_AUDIO_METER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_TYPE_AUDIO_METER, ViewAudioMeterClass))
+
+typedef struct _ViewAudioMeter ViewAudioMeter;
+typedef struct _ViewAudioMeterClass ViewAudioMeterClass;
+typedef struct _ViewAudioMeterPrivate ViewAudioMeterPrivate;
+#define _cairo_surface_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_surface_destroy (var), NULL)))
+
+#define MODEL_TYPE_TRACK (model_track_get_type ())
+#define MODEL_TRACK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_TRACK, ModelTrack))
+#define MODEL_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_TRACK, ModelTrackClass))
+#define MODEL_IS_TRACK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_TRACK))
+#define MODEL_IS_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_TRACK))
+#define MODEL_TRACK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_TRACK, ModelTrackClass))
+
+typedef struct _ModelTrack ModelTrack;
+typedef struct _ModelTrackClass ModelTrackClass;
+
+#define MODEL_TYPE_AUDIO_TRACK (model_audio_track_get_type ())
+#define MODEL_AUDIO_TRACK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_AUDIO_TRACK, ModelAudioTrack))
+#define MODEL_AUDIO_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_AUDIO_TRACK, ModelAudioTrackClass))
+#define MODEL_IS_AUDIO_TRACK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_AUDIO_TRACK))
+#define MODEL_IS_AUDIO_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_AUDIO_TRACK))
+#define MODEL_AUDIO_TRACK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_AUDIO_TRACK, ModelAudioTrackClass))
+
+typedef struct _ModelAudioTrack ModelAudioTrack;
+typedef struct _ModelAudioTrackClass ModelAudioTrackClass;
+#define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL)))
+#define _cairo_pattern_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_pattern_destroy (var), NULL)))
+
+#define LOGGING_TYPE_FACILITY (logging_facility_get_type ())
+
+#define LOGGING_TYPE_LEVEL (logging_level_get_type ())
+#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
+
+struct _ViewAudioMeter {
+       GtkDrawingArea parent_instance;
+       ViewAudioMeterPrivate * priv;
+};
+
+struct _ViewAudioMeterClass {
+       GtkDrawingAreaClass parent_class;
+};
+
+struct _ViewAudioMeterPrivate {
+       cairo_surface_t* meter;
+       cairo_surface_t* silkscreen;
+       gboolean stereo;
+       double current_level_left;
+       double current_level_right;
+};
+
+typedef enum  {
+       LOGGING_FACILITY_SIGNAL_HANDLERS,
+       LOGGING_FACILITY_DEVELOPER_WARNINGS,
+       LOGGING_FACILITY_GRAPH,
+       LOGGING_FACILITY_LOADING,
+       LOGGING_FACILITY_IMPORT,
+       LOGGING_FACILITY_SINGLEDECODEBIN
+} LoggingFacility;
+
+typedef enum  {
+       LOGGING_LEVEL_CRITICAL,
+       LOGGING_LEVEL_HIGH,
+       LOGGING_LEVEL_MEDIUM,
+       LOGGING_LEVEL_LOW,
+       LOGGING_LEVEL_INFO,
+       LOGGING_LEVEL_VERBOSE
+} LoggingLevel;
+
+
+static gpointer view_audio_meter_parent_class = NULL;
+
+GType view_audio_meter_get_type (void);
+#define VIEW_AUDIO_METER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIEW_TYPE_AUDIO_METER, ViewAudioMeterPrivate))
+enum  {
+       VIEW_AUDIO_METER_DUMMY_PROPERTY
+};
+#define VIEW_AUDIO_METER_minDB ((double) (-70))
+GType model_track_get_type (void);
+GType model_audio_track_get_type (void);
+gboolean model_audio_track_get_num_channels (ModelAudioTrack* self, gint* num);
+gboolean view_audio_meter_on_expose_event (ViewAudioMeter* self, GdkEventExpose* event);
+static gboolean _view_audio_meter_on_expose_event_gtk_widget_expose_event (GtkWidget* _sender, GdkEventExpose* event, gpointer self);
+void view_audio_meter_on_level_changed (ViewAudioMeter* self, double level_left, double level_right);
+static void _view_audio_meter_on_level_changed_model_audio_track_level_changed (ModelAudioTrack* _sender, double level_left, double level_right, gpointer self);
+void view_audio_meter_on_channel_count_changed (ViewAudioMeter* self, gint number_of_channels);
+static void _view_audio_meter_on_channel_count_changed_model_audio_track_channel_count_changed (ModelAudioTrack* _sender, gint channel_count, gpointer self);
+ViewAudioMeter* view_audio_meter_new (ModelAudioTrack* track);
+ViewAudioMeter* view_audio_meter_construct (GType object_type, ModelAudioTrack* track);
+static void view_audio_meter_initialize_meter (ViewAudioMeter* self);
+GType logging_facility_get_type (void);
+GType logging_level_get_type (void);
+void logging_emit (GObject* object, LoggingFacility facility, LoggingLevel level, const char* message);
+static void view_audio_meter_finalize (GObject* obj);
+
+
+
+#line 64 "AudioMeter.vala"
+static gboolean _view_audio_meter_on_expose_event_gtk_widget_expose_event (GtkWidget* _sender, GdkEventExpose* event, gpointer self) {
+#line 126 "AudioMeter.c"
+       gboolean result;
+       result = view_audio_meter_on_expose_event (self, event);
+       return result;
+}
+
+
+#line 102 "AudioMeter.vala"
+static void _view_audio_meter_on_level_changed_model_audio_track_level_changed (ModelAudioTrack* _sender, double level_left, double level_right, gpointer self) {
+#line 135 "AudioMeter.c"
+       view_audio_meter_on_level_changed (self, level_left, level_right);
+}
+
+
+#line 110 "AudioMeter.vala"
+static void _view_audio_meter_on_channel_count_changed_model_audio_track_channel_count_changed (ModelAudioTrack* _sender, gint channel_count, gpointer self) {
+#line 142 "AudioMeter.c"
+       view_audio_meter_on_channel_count_changed (self, channel_count);
+}
+
+
+#line 19 "AudioMeter.vala"
+ViewAudioMeter* view_audio_meter_construct (GType object_type, ModelAudioTrack* track) {
+#line 149 "AudioMeter.c"
+       ViewAudioMeter * self;
+       gint number_of_channels = 0;
+#line 19 "AudioMeter.vala"
+       g_return_val_if_fail (MODEL_IS_AUDIO_TRACK (track), NULL);
+#line 154 "AudioMeter.c"
+       self = g_object_newv (object_type, 0, NULL);
+#line 21 "AudioMeter.vala"
+       if (model_audio_track_get_num_channels (track, &number_of_channels)) {
+#line 22 "AudioMeter.vala"
+               self->priv->stereo = number_of_channels < 1;
+#line 160 "AudioMeter.c"
+       }
+#line 25 "AudioMeter.vala"
+       GTK_WIDGET (self)->requisition.height = 10;
+#line 26 "AudioMeter.vala"
+       g_signal_connect_object (GTK_WIDGET (self), "expose-event", (GCallback) _view_audio_meter_on_expose_event_gtk_widget_expose_event, self, 0);
+#line 27 "AudioMeter.vala"
+       g_signal_connect_object (track, "level-changed", (GCallback) _view_audio_meter_on_level_changed_model_audio_track_level_changed, self, 0);
+#line 28 "AudioMeter.vala"
+       g_signal_connect_object (track, "channel-count-changed", (GCallback) _view_audio_meter_on_channel_count_changed_model_audio_track_channel_count_changed, self, 0);
+#line 170 "AudioMeter.c"
+       return self;
+}
+
+
+#line 19 "AudioMeter.vala"
+ViewAudioMeter* view_audio_meter_new (ModelAudioTrack* track) {
+#line 19 "AudioMeter.vala"
+       return view_audio_meter_construct (VIEW_TYPE_AUDIO_METER, track);
+#line 179 "AudioMeter.c"
+}
+
+
+#line 31 "AudioMeter.vala"
+static void view_audio_meter_initialize_meter (ViewAudioMeter* self) {
+#line 185 "AudioMeter.c"
+       cairo_surface_t* _tmp0_;
+       cairo_t* context2;
+       cairo_pattern_t* pat;
+       cairo_surface_t* _tmp1_;
+       cairo_t* _tmp2_;
+#line 31 "AudioMeter.vala"
+       g_return_if_fail (VIEW_IS_AUDIO_METER (self));
+#line 32 "AudioMeter.vala"
+       self->priv->meter = (_tmp0_ = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, GTK_WIDGET (self)->allocation.width, GTK_WIDGET (self)->allocation.height), _cairo_surface_destroy0 (self->priv->meter), _tmp0_);
+#line 34 "AudioMeter.vala"
+       context2 = cairo_create (self->priv->meter);
+#line 35 "AudioMeter.vala"
+       pat = cairo_pattern_create_linear ((double) 0, (double) 0, (double) GTK_WIDGET (self)->allocation.width, (double) 0);
+#line 36 "AudioMeter.vala"
+       cairo_pattern_add_color_stop_rgb (pat, (double) 0, 0.1, (double) 1, 0.4);
+#line 37 "AudioMeter.vala"
+       cairo_pattern_add_color_stop_rgb (pat, 0.8, (double) 1, (double) 1, (double) 0);
+#line 38 "AudioMeter.vala"
+       cairo_pattern_add_color_stop_rgb (pat, (double) 1, (double) 1, (double) 0, (double) 0);
+#line 39 "AudioMeter.vala"
+       cairo_set_source (context2, pat);
+#line 40 "AudioMeter.vala"
+       cairo_rectangle (context2, (double) 0, (double) 0, (double) GTK_WIDGET (self)->allocation.width, (double) GTK_WIDGET (self)->allocation.height);
+#line 41 "AudioMeter.vala"
+       cairo_fill (context2);
+#line 43 "AudioMeter.vala"
+       self->priv->silkscreen = (_tmp1_ = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, GTK_WIDGET (self)->allocation.width, GTK_WIDGET (self)->allocation.height), _cairo_surface_destroy0 (self->priv->silkscreen), _tmp1_);
+#line 45 "AudioMeter.vala"
+       context2 = (_tmp2_ = cairo_create (self->priv->silkscreen), _cairo_destroy0 (context2), _tmp2_);
+#line 46 "AudioMeter.vala"
+       cairo_set_source_rgba (context2, (double) 0, (double) 0, (double) 0, (double) 0);
+#line 47 "AudioMeter.vala"
+       cairo_rectangle (context2, (double) 0, (double) 0, (double) GTK_WIDGET (self)->allocation.width, (double) GTK_WIDGET (self)->allocation.height);
+#line 48 "AudioMeter.vala"
+       cairo_fill (context2);
+#line 221 "AudioMeter.c"
+       {
+               gint i;
+#line 51 "AudioMeter.vala"
+               i = 0;
+#line 226 "AudioMeter.c"
+               {
+                       gboolean _tmp3_;
+#line 51 "AudioMeter.vala"
+                       _tmp3_ = TRUE;
+#line 51 "AudioMeter.vala"
+                       while (TRUE) {
+#line 51 "AudioMeter.vala"
+                               if (!_tmp3_) {
+#line 51 "AudioMeter.vala"
+                                       i = i + 1;
+#line 237 "AudioMeter.c"
+                               }
+#line 51 "AudioMeter.vala"
+                               _tmp3_ = FALSE;
+#line 51 "AudioMeter.vala"
+                               if (!(i < 20)) {
+#line 51 "AudioMeter.vala"
+                                       break;
+#line 245 "AudioMeter.c"
+                               }
+#line 52 "AudioMeter.vala"
+                               cairo_set_source_rgba (context2, (double) 0, (double) 0, (double) 0, (double) 1);
+#line 53 "AudioMeter.vala"
+                               cairo_rectangle (context2, (double) ((i * GTK_WIDGET (self)->allocation.width) / 20), (double) 0, (double) 3, (double) GTK_WIDGET (self)->allocation.height);
+#line 54 "AudioMeter.vala"
+                               cairo_fill (context2);
+#line 253 "AudioMeter.c"
+                       }
+               }
+       }
+#line 58 "AudioMeter.vala"
+       cairo_set_line_width (context2, 1.1);
+#line 59 "AudioMeter.vala"
+       cairo_set_source_rgba (context2, 0.9, 0.9, 0.9, 0.5);
+#line 60 "AudioMeter.vala"
+       cairo_rectangle (context2, (double) 0, (double) 0, (double) GTK_WIDGET (self)->allocation.width, (double) GTK_WIDGET (self)->allocation.height);
+#line 61 "AudioMeter.vala"
+       cairo_stroke (context2);
+#line 265 "AudioMeter.c"
+       _cairo_destroy0 (context2);
+       _cairo_pattern_destroy0 (pat);
+}
+
+
+static gpointer _g_object_ref0 (gpointer self) {
+       return self ? g_object_ref (self) : NULL;
+}
+
+
+#line 64 "AudioMeter.vala"
+gboolean view_audio_meter_on_expose_event (ViewAudioMeter* self, GdkEventExpose* event) {
+#line 278 "AudioMeter.c"
+       gboolean result = FALSE;
+       GdkWindow* window;
+       cairo_t* context;
+       gint _tmp0_ = 0;
+       gint bar_height;
+       gint width;
+#line 64 "AudioMeter.vala"
+       g_return_val_if_fail (VIEW_IS_AUDIO_METER (self), FALSE);
+#line 65 "AudioMeter.vala"
+       logging_emit (G_OBJECT (self), LOGGING_FACILITY_SIGNAL_HANDLERS, LOGGING_LEVEL_INFO, "on_expose_event");
+#line 66 "AudioMeter.vala"
+       window = _g_object_ref0 (gtk_widget_get_window (GTK_WIDGET (self)));
+#line 67 "AudioMeter.vala"
+       context = gdk_cairo_create (GDK_DRAWABLE (window));
+#line 68 "AudioMeter.vala"
+       if (self->priv->meter == NULL) {
+#line 69 "AudioMeter.vala"
+               view_audio_meter_initialize_meter (self);
+#line 297 "AudioMeter.c"
+       }
+#line 72 "AudioMeter.vala"
+       cairo_set_source_rgb (context, (double) 0, (double) 0, (double) 0);
+#line 73 "AudioMeter.vala"
+       cairo_rectangle (context, (double) 0, (double) 0, (double) GTK_WIDGET (self)->allocation.width, (double) GTK_WIDGET (self)->allocation.height);
+#line 74 "AudioMeter.vala"
+       cairo_fill (context);
+#line 76 "AudioMeter.vala"
+       if (self->priv->stereo) {
+#line 76 "AudioMeter.vala"
+               _tmp0_ = (GTK_WIDGET (self)->allocation.height / 2) - 1;
+#line 309 "AudioMeter.c"
+       } else {
+#line 76 "AudioMeter.vala"
+               _tmp0_ = GTK_WIDGET (self)->allocation.height - 2;
+#line 313 "AudioMeter.c"
+       }
+#line 76 "AudioMeter.vala"
+       bar_height = _tmp0_;
+#line 78 "AudioMeter.vala"
+       if (self->priv->stereo) {
+#line 79 "AudioMeter.vala"
+               cairo_set_source_rgb (context, (double) 1, (double) 1, (double) 1);
+#line 80 "AudioMeter.vala"
+               cairo_rectangle (context, (double) 0, (double) (bar_height + 1), (double) GTK_WIDGET (self)->allocation.width, 0.3);
+#line 81 "AudioMeter.vala"
+               cairo_fill (context);
+#line 325 "AudioMeter.c"
+       }
+#line 84 "AudioMeter.vala"
+       cairo_set_source_surface (context, self->priv->meter, (double) 0, (double) 0);
+#line 85 "AudioMeter.vala"
+       width = (gint) (pow10 (self->priv->current_level_left / 40) * GTK_WIDGET (self)->allocation.width);
+#line 86 "AudioMeter.vala"
+       cairo_rectangle (context, (double) 0, (double) 1, (double) width, (double) bar_height);
+#line 88 "AudioMeter.vala"
+       if (self->priv->stereo) {
+#line 89 "AudioMeter.vala"
+               width = (gint) (pow10 (self->priv->current_level_right / 40) * GTK_WIDGET (self)->allocation.width);
+#line 90 "AudioMeter.vala"
+               cairo_rectangle (context, (double) 0, (double) (bar_height + 2), (double) width, (double) bar_height);
+#line 339 "AudioMeter.c"
+       }
+#line 93 "AudioMeter.vala"
+       cairo_clip (context);
+#line 94 "AudioMeter.vala"
+       cairo_paint_with_alpha (context, (double) 1);
+#line 96 "AudioMeter.vala"
+       cairo_set_source_surface (context, self->priv->silkscreen, (double) 0, (double) 0);
+#line 97 "AudioMeter.vala"
+       cairo_paint_with_alpha (context, (double) 1);
+#line 349 "AudioMeter.c"
+       result = TRUE;
+       _g_object_unref0 (window);
+       _cairo_destroy0 (context);
+#line 99 "AudioMeter.vala"
+       return result;
+#line 355 "AudioMeter.c"
+}
+
+
+#line 102 "AudioMeter.vala"
+void view_audio_meter_on_level_changed (ViewAudioMeter* self, double level_left, double level_right) {
+#line 361 "AudioMeter.c"
+       double _tmp0_ = 0.0;
+       double _tmp1_ = 0.0;
+       GdkWindow* window;
+#line 102 "AudioMeter.vala"
+       g_return_if_fail (VIEW_IS_AUDIO_METER (self));
+#line 103 "AudioMeter.vala"
+       logging_emit (G_OBJECT (self), LOGGING_FACILITY_SIGNAL_HANDLERS, LOGGING_LEVEL_INFO, "on_level_changed");
+#line 104 "AudioMeter.vala"
+       if (level_left < VIEW_AUDIO_METER_minDB) {
+#line 104 "AudioMeter.vala"
+               _tmp0_ = VIEW_AUDIO_METER_minDB;
+#line 373 "AudioMeter.c"
+       } else {
+#line 104 "AudioMeter.vala"
+               _tmp0_ = level_left;
+#line 377 "AudioMeter.c"
+       }
+#line 104 "AudioMeter.vala"
+       self->priv->current_level_left = _tmp0_;
+#line 105 "AudioMeter.vala"
+       if (level_right < VIEW_AUDIO_METER_minDB) {
+#line 105 "AudioMeter.vala"
+               _tmp1_ = VIEW_AUDIO_METER_minDB;
+#line 385 "AudioMeter.c"
+       } else {
+#line 105 "AudioMeter.vala"
+               _tmp1_ = level_right;
+#line 389 "AudioMeter.c"
+       }
+#line 105 "AudioMeter.vala"
+       self->priv->current_level_right = _tmp1_;
+#line 106 "AudioMeter.vala"
+       window = _g_object_ref0 (gtk_widget_get_window (GTK_WIDGET (self)));
+#line 107 "AudioMeter.vala"
+       gdk_window_invalidate_rect (window, NULL, FALSE);
+#line 397 "AudioMeter.c"
+       _g_object_unref0 (window);
+}
+
+
+#line 110 "AudioMeter.vala"
+void view_audio_meter_on_channel_count_changed (ViewAudioMeter* self, gint number_of_channels) {
+#line 110 "AudioMeter.vala"
+       g_return_if_fail (VIEW_IS_AUDIO_METER (self));
+#line 111 "AudioMeter.vala"
+       logging_emit (G_OBJECT (self), LOGGING_FACILITY_SIGNAL_HANDLERS, LOGGING_LEVEL_INFO, "on_channel_count_changed");
+#line 112 "AudioMeter.vala"
+       self->priv->stereo = number_of_channels > 1;
+#line 113 "AudioMeter.vala"
+       gdk_window_invalidate_rect (GTK_WIDGET (self)->window, NULL, FALSE);
+#line 412 "AudioMeter.c"
+}
+
+
+static void view_audio_meter_class_init (ViewAudioMeterClass * klass) {
+       view_audio_meter_parent_class = g_type_class_peek_parent (klass);
+       g_type_class_add_private (klass, sizeof (ViewAudioMeterPrivate));
+       G_OBJECT_CLASS (klass)->finalize = view_audio_meter_finalize;
+}
+
+
+static void view_audio_meter_instance_init (ViewAudioMeter * self) {
+       self->priv = VIEW_AUDIO_METER_GET_PRIVATE (self);
+       self->priv->meter = NULL;
+       self->priv->stereo = FALSE;
+       self->priv->current_level_left = (double) (-100);
+       self->priv->current_level_right = (double) (-100);
+}
+
+
+static void view_audio_meter_finalize (GObject* obj) {
+       ViewAudioMeter * self;
+       self = VIEW_AUDIO_METER (obj);
+       _cairo_surface_destroy0 (self->priv->meter);
+       _cairo_surface_destroy0 (self->priv->silkscreen);
+       G_OBJECT_CLASS (view_audio_meter_parent_class)->finalize (obj);
+}
+
+
+GType view_audio_meter_get_type (void) {
+       static volatile gsize view_audio_meter_type_id__volatile = 0;
+       if (g_once_init_enter (&view_audio_meter_type_id__volatile)) {
+               static const GTypeInfo g_define_type_info = { sizeof (ViewAudioMeterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) view_audio_meter_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ViewAudioMeter), 0, (GInstanceInitFunc) view_audio_meter_instance_init, NULL };
+               GType view_audio_meter_type_id;
+               view_audio_meter_type_id = g_type_register_static (GTK_TYPE_DRAWING_AREA, "ViewAudioMeter", &g_define_type_info, 0);
+               g_once_init_leave (&view_audio_meter_type_id__volatile, view_audio_meter_type_id);
+       }
+       return view_audio_meter_type_id__volatile;
+}
+
+
+
+