Initial commit
[fillmore] / src / marina / marina / AudioMeter.c
1 /* AudioMeter.c generated by valac, the Vala compiler
2  * generated from AudioMeter.vala, do not modify */
3
4 /* Copyright 2009-2010 Yorba Foundation
5  *
6  * This software is licensed under the GNU Lesser General Public License
7  * (version 2.1 or later).  See the COPYING file in this distribution. 
8  */
9
10 #include <glib.h>
11 #include <glib-object.h>
12 #include <gtk/gtk.h>
13 #include <cairo.h>
14 #include <float.h>
15 #include <math.h>
16 #include <gdk/gdk.h>
17 #include <stdlib.h>
18 #include <string.h>
19
20
21 #define VIEW_TYPE_AUDIO_METER (view_audio_meter_get_type ())
22 #define VIEW_AUDIO_METER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VIEW_TYPE_AUDIO_METER, ViewAudioMeter))
23 #define VIEW_AUDIO_METER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VIEW_TYPE_AUDIO_METER, ViewAudioMeterClass))
24 #define VIEW_IS_AUDIO_METER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VIEW_TYPE_AUDIO_METER))
25 #define VIEW_IS_AUDIO_METER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VIEW_TYPE_AUDIO_METER))
26 #define VIEW_AUDIO_METER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VIEW_TYPE_AUDIO_METER, ViewAudioMeterClass))
27
28 typedef struct _ViewAudioMeter ViewAudioMeter;
29 typedef struct _ViewAudioMeterClass ViewAudioMeterClass;
30 typedef struct _ViewAudioMeterPrivate ViewAudioMeterPrivate;
31 #define _cairo_surface_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_surface_destroy (var), NULL)))
32
33 #define MODEL_TYPE_TRACK (model_track_get_type ())
34 #define MODEL_TRACK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_TRACK, ModelTrack))
35 #define MODEL_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_TRACK, ModelTrackClass))
36 #define MODEL_IS_TRACK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_TRACK))
37 #define MODEL_IS_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_TRACK))
38 #define MODEL_TRACK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_TRACK, ModelTrackClass))
39
40 typedef struct _ModelTrack ModelTrack;
41 typedef struct _ModelTrackClass ModelTrackClass;
42
43 #define MODEL_TYPE_AUDIO_TRACK (model_audio_track_get_type ())
44 #define MODEL_AUDIO_TRACK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MODEL_TYPE_AUDIO_TRACK, ModelAudioTrack))
45 #define MODEL_AUDIO_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MODEL_TYPE_AUDIO_TRACK, ModelAudioTrackClass))
46 #define MODEL_IS_AUDIO_TRACK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MODEL_TYPE_AUDIO_TRACK))
47 #define MODEL_IS_AUDIO_TRACK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MODEL_TYPE_AUDIO_TRACK))
48 #define MODEL_AUDIO_TRACK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MODEL_TYPE_AUDIO_TRACK, ModelAudioTrackClass))
49
50 typedef struct _ModelAudioTrack ModelAudioTrack;
51 typedef struct _ModelAudioTrackClass ModelAudioTrackClass;
52 #define _cairo_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_destroy (var), NULL)))
53 #define _cairo_pattern_destroy0(var) ((var == NULL) ? NULL : (var = (cairo_pattern_destroy (var), NULL)))
54
55 #define LOGGING_TYPE_FACILITY (logging_facility_get_type ())
56
57 #define LOGGING_TYPE_LEVEL (logging_level_get_type ())
58 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
59
60 struct _ViewAudioMeter {
61         GtkDrawingArea parent_instance;
62         ViewAudioMeterPrivate * priv;
63 };
64
65 struct _ViewAudioMeterClass {
66         GtkDrawingAreaClass parent_class;
67 };
68
69 struct _ViewAudioMeterPrivate {
70         cairo_surface_t* meter;
71         cairo_surface_t* silkscreen;
72         gboolean stereo;
73         double current_level_left;
74         double current_level_right;
75 };
76
77 typedef enum  {
78         LOGGING_FACILITY_SIGNAL_HANDLERS,
79         LOGGING_FACILITY_DEVELOPER_WARNINGS,
80         LOGGING_FACILITY_GRAPH,
81         LOGGING_FACILITY_LOADING,
82         LOGGING_FACILITY_IMPORT,
83         LOGGING_FACILITY_SINGLEDECODEBIN
84 } LoggingFacility;
85
86 typedef enum  {
87         LOGGING_LEVEL_CRITICAL,
88         LOGGING_LEVEL_HIGH,
89         LOGGING_LEVEL_MEDIUM,
90         LOGGING_LEVEL_LOW,
91         LOGGING_LEVEL_INFO,
92         LOGGING_LEVEL_VERBOSE
93 } LoggingLevel;
94
95
96 static gpointer view_audio_meter_parent_class = NULL;
97
98 GType view_audio_meter_get_type (void);
99 #define VIEW_AUDIO_METER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), VIEW_TYPE_AUDIO_METER, ViewAudioMeterPrivate))
100 enum  {
101         VIEW_AUDIO_METER_DUMMY_PROPERTY
102 };
103 #define VIEW_AUDIO_METER_minDB ((double) (-70))
104 GType model_track_get_type (void);
105 GType model_audio_track_get_type (void);
106 gboolean model_audio_track_get_num_channels (ModelAudioTrack* self, gint* num);
107 gboolean view_audio_meter_on_expose_event (ViewAudioMeter* self, GdkEventExpose* event);
108 static gboolean _view_audio_meter_on_expose_event_gtk_widget_expose_event (GtkWidget* _sender, GdkEventExpose* event, gpointer self);
109 void view_audio_meter_on_level_changed (ViewAudioMeter* self, double level_left, double level_right);
110 static void _view_audio_meter_on_level_changed_model_audio_track_level_changed (ModelAudioTrack* _sender, double level_left, double level_right, gpointer self);
111 void view_audio_meter_on_channel_count_changed (ViewAudioMeter* self, gint number_of_channels);
112 static void _view_audio_meter_on_channel_count_changed_model_audio_track_channel_count_changed (ModelAudioTrack* _sender, gint channel_count, gpointer self);
113 ViewAudioMeter* view_audio_meter_new (ModelAudioTrack* track);
114 ViewAudioMeter* view_audio_meter_construct (GType object_type, ModelAudioTrack* track);
115 static void view_audio_meter_initialize_meter (ViewAudioMeter* self);
116 GType logging_facility_get_type (void);
117 GType logging_level_get_type (void);
118 void logging_emit (GObject* object, LoggingFacility facility, LoggingLevel level, const char* message);
119 static void view_audio_meter_finalize (GObject* obj);
120
121
122
123 #line 64 "AudioMeter.vala"
124 static gboolean _view_audio_meter_on_expose_event_gtk_widget_expose_event (GtkWidget* _sender, GdkEventExpose* event, gpointer self) {
125 #line 126 "AudioMeter.c"
126         gboolean result;
127         result = view_audio_meter_on_expose_event (self, event);
128         return result;
129 }
130
131
132 #line 102 "AudioMeter.vala"
133 static void _view_audio_meter_on_level_changed_model_audio_track_level_changed (ModelAudioTrack* _sender, double level_left, double level_right, gpointer self) {
134 #line 135 "AudioMeter.c"
135         view_audio_meter_on_level_changed (self, level_left, level_right);
136 }
137
138
139 #line 110 "AudioMeter.vala"
140 static void _view_audio_meter_on_channel_count_changed_model_audio_track_channel_count_changed (ModelAudioTrack* _sender, gint channel_count, gpointer self) {
141 #line 142 "AudioMeter.c"
142         view_audio_meter_on_channel_count_changed (self, channel_count);
143 }
144
145
146 #line 19 "AudioMeter.vala"
147 ViewAudioMeter* view_audio_meter_construct (GType object_type, ModelAudioTrack* track) {
148 #line 149 "AudioMeter.c"
149         ViewAudioMeter * self;
150         gint number_of_channels = 0;
151 #line 19 "AudioMeter.vala"
152         g_return_val_if_fail (MODEL_IS_AUDIO_TRACK (track), NULL);
153 #line 154 "AudioMeter.c"
154         self = g_object_newv (object_type, 0, NULL);
155 #line 21 "AudioMeter.vala"
156         if (model_audio_track_get_num_channels (track, &number_of_channels)) {
157 #line 22 "AudioMeter.vala"
158                 self->priv->stereo = number_of_channels < 1;
159 #line 160 "AudioMeter.c"
160         }
161 #line 25 "AudioMeter.vala"
162         GTK_WIDGET (self)->requisition.height = 10;
163 #line 26 "AudioMeter.vala"
164         g_signal_connect_object (GTK_WIDGET (self), "expose-event", (GCallback) _view_audio_meter_on_expose_event_gtk_widget_expose_event, self, 0);
165 #line 27 "AudioMeter.vala"
166         g_signal_connect_object (track, "level-changed", (GCallback) _view_audio_meter_on_level_changed_model_audio_track_level_changed, self, 0);
167 #line 28 "AudioMeter.vala"
168         g_signal_connect_object (track, "channel-count-changed", (GCallback) _view_audio_meter_on_channel_count_changed_model_audio_track_channel_count_changed, self, 0);
169 #line 170 "AudioMeter.c"
170         return self;
171 }
172
173
174 #line 19 "AudioMeter.vala"
175 ViewAudioMeter* view_audio_meter_new (ModelAudioTrack* track) {
176 #line 19 "AudioMeter.vala"
177         return view_audio_meter_construct (VIEW_TYPE_AUDIO_METER, track);
178 #line 179 "AudioMeter.c"
179 }
180
181
182 #line 31 "AudioMeter.vala"
183 static void view_audio_meter_initialize_meter (ViewAudioMeter* self) {
184 #line 185 "AudioMeter.c"
185         cairo_surface_t* _tmp0_;
186         cairo_t* context2;
187         cairo_pattern_t* pat;
188         cairo_surface_t* _tmp1_;
189         cairo_t* _tmp2_;
190 #line 31 "AudioMeter.vala"
191         g_return_if_fail (VIEW_IS_AUDIO_METER (self));
192 #line 32 "AudioMeter.vala"
193         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_);
194 #line 34 "AudioMeter.vala"
195         context2 = cairo_create (self->priv->meter);
196 #line 35 "AudioMeter.vala"
197         pat = cairo_pattern_create_linear ((double) 0, (double) 0, (double) GTK_WIDGET (self)->allocation.width, (double) 0);
198 #line 36 "AudioMeter.vala"
199         cairo_pattern_add_color_stop_rgb (pat, (double) 0, 0.1, (double) 1, 0.4);
200 #line 37 "AudioMeter.vala"
201         cairo_pattern_add_color_stop_rgb (pat, 0.8, (double) 1, (double) 1, (double) 0);
202 #line 38 "AudioMeter.vala"
203         cairo_pattern_add_color_stop_rgb (pat, (double) 1, (double) 1, (double) 0, (double) 0);
204 #line 39 "AudioMeter.vala"
205         cairo_set_source (context2, pat);
206 #line 40 "AudioMeter.vala"
207         cairo_rectangle (context2, (double) 0, (double) 0, (double) GTK_WIDGET (self)->allocation.width, (double) GTK_WIDGET (self)->allocation.height);
208 #line 41 "AudioMeter.vala"
209         cairo_fill (context2);
210 #line 43 "AudioMeter.vala"
211         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_);
212 #line 45 "AudioMeter.vala"
213         context2 = (_tmp2_ = cairo_create (self->priv->silkscreen), _cairo_destroy0 (context2), _tmp2_);
214 #line 46 "AudioMeter.vala"
215         cairo_set_source_rgba (context2, (double) 0, (double) 0, (double) 0, (double) 0);
216 #line 47 "AudioMeter.vala"
217         cairo_rectangle (context2, (double) 0, (double) 0, (double) GTK_WIDGET (self)->allocation.width, (double) GTK_WIDGET (self)->allocation.height);
218 #line 48 "AudioMeter.vala"
219         cairo_fill (context2);
220 #line 221 "AudioMeter.c"
221         {
222                 gint i;
223 #line 51 "AudioMeter.vala"
224                 i = 0;
225 #line 226 "AudioMeter.c"
226                 {
227                         gboolean _tmp3_;
228 #line 51 "AudioMeter.vala"
229                         _tmp3_ = TRUE;
230 #line 51 "AudioMeter.vala"
231                         while (TRUE) {
232 #line 51 "AudioMeter.vala"
233                                 if (!_tmp3_) {
234 #line 51 "AudioMeter.vala"
235                                         i = i + 1;
236 #line 237 "AudioMeter.c"
237                                 }
238 #line 51 "AudioMeter.vala"
239                                 _tmp3_ = FALSE;
240 #line 51 "AudioMeter.vala"
241                                 if (!(i < 20)) {
242 #line 51 "AudioMeter.vala"
243                                         break;
244 #line 245 "AudioMeter.c"
245                                 }
246 #line 52 "AudioMeter.vala"
247                                 cairo_set_source_rgba (context2, (double) 0, (double) 0, (double) 0, (double) 1);
248 #line 53 "AudioMeter.vala"
249                                 cairo_rectangle (context2, (double) ((i * GTK_WIDGET (self)->allocation.width) / 20), (double) 0, (double) 3, (double) GTK_WIDGET (self)->allocation.height);
250 #line 54 "AudioMeter.vala"
251                                 cairo_fill (context2);
252 #line 253 "AudioMeter.c"
253                         }
254                 }
255         }
256 #line 58 "AudioMeter.vala"
257         cairo_set_line_width (context2, 1.1);
258 #line 59 "AudioMeter.vala"
259         cairo_set_source_rgba (context2, 0.9, 0.9, 0.9, 0.5);
260 #line 60 "AudioMeter.vala"
261         cairo_rectangle (context2, (double) 0, (double) 0, (double) GTK_WIDGET (self)->allocation.width, (double) GTK_WIDGET (self)->allocation.height);
262 #line 61 "AudioMeter.vala"
263         cairo_stroke (context2);
264 #line 265 "AudioMeter.c"
265         _cairo_destroy0 (context2);
266         _cairo_pattern_destroy0 (pat);
267 }
268
269
270 static gpointer _g_object_ref0 (gpointer self) {
271         return self ? g_object_ref (self) : NULL;
272 }
273
274
275 #line 64 "AudioMeter.vala"
276 gboolean view_audio_meter_on_expose_event (ViewAudioMeter* self, GdkEventExpose* event) {
277 #line 278 "AudioMeter.c"
278         gboolean result = FALSE;
279         GdkWindow* window;
280         cairo_t* context;
281         gint _tmp0_ = 0;
282         gint bar_height;
283         gint width;
284 #line 64 "AudioMeter.vala"
285         g_return_val_if_fail (VIEW_IS_AUDIO_METER (self), FALSE);
286 #line 65 "AudioMeter.vala"
287         logging_emit (G_OBJECT (self), LOGGING_FACILITY_SIGNAL_HANDLERS, LOGGING_LEVEL_INFO, "on_expose_event");
288 #line 66 "AudioMeter.vala"
289         window = _g_object_ref0 (gtk_widget_get_window (GTK_WIDGET (self)));
290 #line 67 "AudioMeter.vala"
291         context = gdk_cairo_create (GDK_DRAWABLE (window));
292 #line 68 "AudioMeter.vala"
293         if (self->priv->meter == NULL) {
294 #line 69 "AudioMeter.vala"
295                 view_audio_meter_initialize_meter (self);
296 #line 297 "AudioMeter.c"
297         }
298 #line 72 "AudioMeter.vala"
299         cairo_set_source_rgb (context, (double) 0, (double) 0, (double) 0);
300 #line 73 "AudioMeter.vala"
301         cairo_rectangle (context, (double) 0, (double) 0, (double) GTK_WIDGET (self)->allocation.width, (double) GTK_WIDGET (self)->allocation.height);
302 #line 74 "AudioMeter.vala"
303         cairo_fill (context);
304 #line 76 "AudioMeter.vala"
305         if (self->priv->stereo) {
306 #line 76 "AudioMeter.vala"
307                 _tmp0_ = (GTK_WIDGET (self)->allocation.height / 2) - 1;
308 #line 309 "AudioMeter.c"
309         } else {
310 #line 76 "AudioMeter.vala"
311                 _tmp0_ = GTK_WIDGET (self)->allocation.height - 2;
312 #line 313 "AudioMeter.c"
313         }
314 #line 76 "AudioMeter.vala"
315         bar_height = _tmp0_;
316 #line 78 "AudioMeter.vala"
317         if (self->priv->stereo) {
318 #line 79 "AudioMeter.vala"
319                 cairo_set_source_rgb (context, (double) 1, (double) 1, (double) 1);
320 #line 80 "AudioMeter.vala"
321                 cairo_rectangle (context, (double) 0, (double) (bar_height + 1), (double) GTK_WIDGET (self)->allocation.width, 0.3);
322 #line 81 "AudioMeter.vala"
323                 cairo_fill (context);
324 #line 325 "AudioMeter.c"
325         }
326 #line 84 "AudioMeter.vala"
327         cairo_set_source_surface (context, self->priv->meter, (double) 0, (double) 0);
328 #line 85 "AudioMeter.vala"
329         width = (gint) (pow10 (self->priv->current_level_left / 40) * GTK_WIDGET (self)->allocation.width);
330 #line 86 "AudioMeter.vala"
331         cairo_rectangle (context, (double) 0, (double) 1, (double) width, (double) bar_height);
332 #line 88 "AudioMeter.vala"
333         if (self->priv->stereo) {
334 #line 89 "AudioMeter.vala"
335                 width = (gint) (pow10 (self->priv->current_level_right / 40) * GTK_WIDGET (self)->allocation.width);
336 #line 90 "AudioMeter.vala"
337                 cairo_rectangle (context, (double) 0, (double) (bar_height + 2), (double) width, (double) bar_height);
338 #line 339 "AudioMeter.c"
339         }
340 #line 93 "AudioMeter.vala"
341         cairo_clip (context);
342 #line 94 "AudioMeter.vala"
343         cairo_paint_with_alpha (context, (double) 1);
344 #line 96 "AudioMeter.vala"
345         cairo_set_source_surface (context, self->priv->silkscreen, (double) 0, (double) 0);
346 #line 97 "AudioMeter.vala"
347         cairo_paint_with_alpha (context, (double) 1);
348 #line 349 "AudioMeter.c"
349         result = TRUE;
350         _g_object_unref0 (window);
351         _cairo_destroy0 (context);
352 #line 99 "AudioMeter.vala"
353         return result;
354 #line 355 "AudioMeter.c"
355 }
356
357
358 #line 102 "AudioMeter.vala"
359 void view_audio_meter_on_level_changed (ViewAudioMeter* self, double level_left, double level_right) {
360 #line 361 "AudioMeter.c"
361         double _tmp0_ = 0.0;
362         double _tmp1_ = 0.0;
363         GdkWindow* window;
364 #line 102 "AudioMeter.vala"
365         g_return_if_fail (VIEW_IS_AUDIO_METER (self));
366 #line 103 "AudioMeter.vala"
367         logging_emit (G_OBJECT (self), LOGGING_FACILITY_SIGNAL_HANDLERS, LOGGING_LEVEL_INFO, "on_level_changed");
368 #line 104 "AudioMeter.vala"
369         if (level_left < VIEW_AUDIO_METER_minDB) {
370 #line 104 "AudioMeter.vala"
371                 _tmp0_ = VIEW_AUDIO_METER_minDB;
372 #line 373 "AudioMeter.c"
373         } else {
374 #line 104 "AudioMeter.vala"
375                 _tmp0_ = level_left;
376 #line 377 "AudioMeter.c"
377         }
378 #line 104 "AudioMeter.vala"
379         self->priv->current_level_left = _tmp0_;
380 #line 105 "AudioMeter.vala"
381         if (level_right < VIEW_AUDIO_METER_minDB) {
382 #line 105 "AudioMeter.vala"
383                 _tmp1_ = VIEW_AUDIO_METER_minDB;
384 #line 385 "AudioMeter.c"
385         } else {
386 #line 105 "AudioMeter.vala"
387                 _tmp1_ = level_right;
388 #line 389 "AudioMeter.c"
389         }
390 #line 105 "AudioMeter.vala"
391         self->priv->current_level_right = _tmp1_;
392 #line 106 "AudioMeter.vala"
393         window = _g_object_ref0 (gtk_widget_get_window (GTK_WIDGET (self)));
394 #line 107 "AudioMeter.vala"
395         gdk_window_invalidate_rect (window, NULL, FALSE);
396 #line 397 "AudioMeter.c"
397         _g_object_unref0 (window);
398 }
399
400
401 #line 110 "AudioMeter.vala"
402 void view_audio_meter_on_channel_count_changed (ViewAudioMeter* self, gint number_of_channels) {
403 #line 110 "AudioMeter.vala"
404         g_return_if_fail (VIEW_IS_AUDIO_METER (self));
405 #line 111 "AudioMeter.vala"
406         logging_emit (G_OBJECT (self), LOGGING_FACILITY_SIGNAL_HANDLERS, LOGGING_LEVEL_INFO, "on_channel_count_changed");
407 #line 112 "AudioMeter.vala"
408         self->priv->stereo = number_of_channels > 1;
409 #line 113 "AudioMeter.vala"
410         gdk_window_invalidate_rect (GTK_WIDGET (self)->window, NULL, FALSE);
411 #line 412 "AudioMeter.c"
412 }
413
414
415 static void view_audio_meter_class_init (ViewAudioMeterClass * klass) {
416         view_audio_meter_parent_class = g_type_class_peek_parent (klass);
417         g_type_class_add_private (klass, sizeof (ViewAudioMeterPrivate));
418         G_OBJECT_CLASS (klass)->finalize = view_audio_meter_finalize;
419 }
420
421
422 static void view_audio_meter_instance_init (ViewAudioMeter * self) {
423         self->priv = VIEW_AUDIO_METER_GET_PRIVATE (self);
424         self->priv->meter = NULL;
425         self->priv->stereo = FALSE;
426         self->priv->current_level_left = (double) (-100);
427         self->priv->current_level_right = (double) (-100);
428 }
429
430
431 static void view_audio_meter_finalize (GObject* obj) {
432         ViewAudioMeter * self;
433         self = VIEW_AUDIO_METER (obj);
434         _cairo_surface_destroy0 (self->priv->meter);
435         _cairo_surface_destroy0 (self->priv->silkscreen);
436         G_OBJECT_CLASS (view_audio_meter_parent_class)->finalize (obj);
437 }
438
439
440 GType view_audio_meter_get_type (void) {
441         static volatile gsize view_audio_meter_type_id__volatile = 0;
442         if (g_once_init_enter (&view_audio_meter_type_id__volatile)) {
443                 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 };
444                 GType view_audio_meter_type_id;
445                 view_audio_meter_type_id = g_type_register_static (GTK_TYPE_DRAWING_AREA, "ViewAudioMeter", &g_define_type_info, 0);
446                 g_once_init_leave (&view_audio_meter_type_id__volatile, view_audio_meter_type_id);
447         }
448         return view_audio_meter_type_id__volatile;
449 }
450
451
452
453