kill glib-induced abort caused by asymmetric lock/unlock of diskstream state lock
[ardour.git] / gtk2_ardour / canvas-waveview.h
index b3ec5bbe2234f4b410c1b51639cc15ea1d348ad3..81cf35910ee72ed6b04bdfbb6e85dab2eb03187d 100644 (file)
@@ -31,11 +31,12 @@ G_BEGIN_DECLS
 /* Wave viewer item for canvas.
  */
 
-#define GNOME_CANVAS_TYPE_CANVAS_WAVEVIEW            (gnome_canvas_waveview_get_type ())
-#define GNOME_CANVAS_WAVEVIEW(obj)                   (GTK_CHECK_CAST ((obj), GNOME_CANVAS_TYPE_CANVAS_WAVEVIEW, GnomeCanvasWaveView))
-#define GNOME_CANVAS_WAVEVIEW_CLASS(klass)           (GTK_CHECK_CLASS_CAST ((klass), GNOME_CANVAS_TYPE_CANVAS_WAVEVIEW, GnomeCanvasWaveViewClass))
-#define GNOME_CANVAS_IS_CANVAS_WAVEVIEW(obj)         (GTK_CHECK_TYPE ((obj), GNOME_CANVAS_TYPE_CANVAS_WAVEVIEW))
-#define GNOME_CANVAS_IS_CANVAS_WAVEVIEW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GNOME_CANVAS_TYPE_CANVAS_WAVEVIEW))
+#define GNOME_TYPE_CANVAS_WAVEVIEW            (gnome_canvas_waveview_get_type ())
+#define GNOME_CANVAS_WAVEVIEW(obj)            (GTK_CHECK_CAST ((obj), GNOME_TYPE_CANVAS_WAVEVIEW, GnomeCanvasWaveView))
+#define GNOME_CANVAS_WAVEVIEW_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GNOME_TYPE_CANVAS_WAVEVIEW, GnomeCanvasWaveViewClass))
+#define GNOME_IS_CANVAS_WAVEVIEW(obj)         (GTK_CHECK_TYPE ((obj), GNOME_TYPE_CANVAS_WAVEVIEW))
+#define GNOME_IS_CANVAS_WAVEVIEW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GNOME_TYPE_CANVAS_WAVEVIEW))
+#define GNOME_CANVAS_WAVEVIEW_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), GNOME_TYPE_CANVAS_WAVEVIEW, GnomeCanvasWaveViewClass))
 
 typedef struct _GnomeCanvasWaveView            GnomeCanvasWaveView;
 typedef struct _GnomeCanvasWaveViewClass       GnomeCanvasWaveViewClass;
@@ -75,14 +76,14 @@ struct _GnomeCanvasWaveView
     guint32 channel;
        void (*peak_function)(void*,gulong,gulong,gulong,gpointer,guint32,double);
     gulong (*length_function)(void *);
-    gulong (*sourcefile_length_function)(void*);
+    gulong (*sourcefile_length_function)(void*,double);
     void (*gain_curve_function)(void *arg, double start, double end, float* vector, guint32 veclen);
     void *gain_src;
 
-    /* x-axis: samples per canvas unit. */
+    /** x-axis: samples per canvas unit. */
     double samples_per_unit;
     
-    /* y-axis: amplitude_above_axis.
+    /** y-axis: amplitude_above_axis.
      * 
      * the default is that an (scaled, normalized -1.0 ... +1.0) amplitude of 1.0
      * corresponds to the top of the area assigned to the waveview.
@@ -91,8 +92,8 @@ struct _GnomeCanvasWaveView
      * smaller values will decrease the vertical scale, moving peaks/troughs toward
      * the middle of the area assigned to the waveview.
      */
-
     double amplitude_above_axis;
+
     double x;
     double y;
     double height;
@@ -100,7 +101,8 @@ struct _GnomeCanvasWaveView
     uint32_t wave_color;
 
     char rectified;
-
+    char logscaled; 
+       
     /* These are updated by the update() routine
        to optimize the render() routine, which may
        be called several times after a single update().
@@ -120,7 +122,7 @@ struct _GnomeCanvasWaveViewClass {
        GnomeCanvasItemClass parent_class;
 };
 
-GtkType gnome_canvas_waveview_get_type (void);
+GType gnome_canvas_waveview_get_type (void) G_GNUC_CONST;
 
 G_END_DECLS