Rewrote MidiRingBuffer to more efficiently pack data (flat pack stamps, sizes, and...
[ardour.git] / gtk2_ardour / canvas-waveview.h
index 46d5b6c13862fd2d8484d7e3350437a570b27a9d..6a7410546e80957f1ee014787f8dd07b2c58c230 100644 (file)
@@ -76,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.
@@ -92,16 +92,19 @@ 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;
     double half_height;
     uint32_t wave_color;
+    uint32_t clip_color;
+    uint32_t zero_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().
@@ -112,6 +115,7 @@ struct _GnomeCanvasWaveView
     int32_t bbox_lrx;
     int32_t bbox_lry;
     unsigned char wave_r, wave_g, wave_b, wave_a;
+    unsigned char clip_r, clip_g, clip_b, clip_a;
     uint32_t samples;
     uint32_t region_start;
     int32_t reload_cache_in_render;