No-Op: rename Normalizer to Intermediate
[ardour.git] / gtk2_ardour / canvas-waveview.h
index b868abfa6113ec5e0a2295489d229c7d9d2c914d..daa907e11047519a7e3f2dc31c12b4addd146d54 100644 (file)
@@ -1,4 +1,4 @@
-/* gtk-canvas-waveview.h: GtkCanvas item for displaying wave data
+/* libgnomecanvas/gnome-canvas-waveview.h: GnomeCanvas item for displaying wave data
  *
  * Copyright (C) 2001 Paul Davis <pbd@op.net>
  *
  *
  */
 
-#ifndef __GTK_CANVAS_WAVEVIEW_H__
-#define __GTK_CANVAS_WAVEVIEW_H__
+#ifndef __GNOME_CANVAS_WAVEVIEW_H__
+#define __GNOME_CANVAS_WAVEVIEW_H__
 
 #include <stdint.h>
 
-#include <gtk-canvas/gtk-canvas-defs.h>
-#include "gtk-canvas/gtk-canvas.h"
+#include <libgnomecanvas/libgnomecanvas.h>
 
-BEGIN_GTK_CANVAS_DECLS
+G_BEGIN_DECLS
 
 /* Wave viewer item for canvas.
  */
 
-#define GTK_CANVAS_TYPE_CANVAS_WAVEVIEW            (gtk_canvas_waveview_get_type ())
-#define GTK_CANVAS_WAVEVIEW(obj)                   (GTK_CHECK_CAST ((obj), GTK_CANVAS_TYPE_CANVAS_WAVEVIEW, GtkCanvasWaveView))
-#define GTK_CANVAS_WAVEVIEW_CLASS(klass)           (GTK_CHECK_CLASS_CAST ((klass), GTK_CANVAS_TYPE_CANVAS_WAVEVIEW, GtkCanvasWaveViewClass))
-#define GTK_CANVAS_IS_CANVAS_WAVEVIEW(obj)         (GTK_CHECK_TYPE ((obj), GTK_CANVAS_TYPE_CANVAS_WAVEVIEW))
-#define GTK_CANVAS_IS_CANVAS_WAVEVIEW_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_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 _GtkCanvasWaveView            GtkCanvasWaveView;
-typedef struct _GtkCanvasWaveViewClass       GtkCanvasWaveViewClass;
-typedef struct _GtkCanvasWaveViewChannelInfo GtkCanvasWaveViewChannelInfo;
-typedef struct _GtkCanvasWaveViewCacheEntry  GtkCanvasWaveViewCacheEntry;
-typedef struct _GtkCanvasWaveViewCache       GtkCanvasWaveViewCache;
+typedef struct _GnomeCanvasWaveView            GnomeCanvasWaveView;
+typedef struct _GnomeCanvasWaveViewClass       GnomeCanvasWaveViewClass;
+typedef struct _GnomeCanvasWaveViewChannelInfo GnomeCanvasWaveViewChannelInfo;
+typedef struct _GnomeCanvasWaveViewCacheEntry  GnomeCanvasWaveViewCacheEntry;
+typedef struct _GnomeCanvasWaveViewCache       GnomeCanvasWaveViewCache;
 
 /* XXX this needs to be synced with ardour/source.h PeakData */
 
-struct _GtkCanvasWaveViewCacheEntry
+struct _GnomeCanvasWaveViewCacheEntry
 {
     float  min;
     float  max;
 };
 
-struct _GtkCanvasWaveViewCache
+struct _GnomeCanvasWaveViewCache
 {
-    GtkCanvasWaveViewCacheEntry* data;
-    gint32                       allocated;
-    gint32                       data_size;
-    gulong                       start;
-    gulong                       end;
-};    
+    GnomeCanvasWaveViewCacheEntry* data;
+    guint32                       allocated;
+    guint64                       data_size;
+    gulong                        start;
+    gulong                        end;
+};
+
+GnomeCanvasWaveViewCache* gnome_canvas_waveview_cache_new (void);
+void                    gnome_canvas_waveview_cache_destroy (GnomeCanvasWaveViewCache*);
 
-GtkCanvasWaveViewCache* gtk_canvas_waveview_cache_new ();
-void                    gtk_canvas_waveview_cache_destroy (GtkCanvasWaveViewCache*);
+void gnome_canvas_waveview_set_gradient_waveforms (int);
 
-struct _GtkCanvasWaveView
+typedef  gulong (*waveview_length_function_t)(void*);
+typedef  gulong (*waveview_sourcefile_length_function_t)(void*, double);
+typedef  void (*waveview_gain_curve_function_t)(void *arg, double start, double end, float* vector, gint64 veclen);
+typedef  void (*waveview_peak_function_t)(void*,gulong,gulong,gulong,gpointer,guint32,double);
+
+struct _GnomeCanvasWaveView
 {
-    GtkCanvasItem item;
-    
-    GtkCanvasWaveViewCache *cache;
+    GnomeCanvasItem item;
+
+    GnomeCanvasWaveViewCache *cache;
     gboolean                cache_updater;
     gint                    screen_width;
 
     void *data_src;
     guint32 channel;
-       void (*peak_function)(void*,gulong,gulong,gulong,gpointer,guint32,double);
-    gulong (*length_function)(void *);
-    gulong (*sourcefile_length_function)(void*);
-    void (*gain_curve_function)(void *arg, double start, double end, float* vector, guint32 veclen);
+    waveview_peak_function_t peak_function;
+    waveview_length_function_t length_function;
+    waveview_sourcefile_length_function_t sourcefile_length_function;
+    waveview_gain_curve_function_t gain_curve_function;
     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,15 +99,21 @@ struct _GtkCanvasWaveView
      * 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;
+    uint32_t fill_color;
 
+    char filled;
     char rectified;
+    char zero_line;
+    char logscaled;
 
     /* These are updated by the update() routine
        to optimize the render() routine, which may
@@ -112,17 +125,19 @@ struct _GtkCanvasWaveView
     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;
+    unsigned char fill_r, fill_g, fill_b, fill_a;
     uint32_t samples;
     uint32_t region_start;
     int32_t reload_cache_in_render;
 };
 
-struct _GtkCanvasWaveViewClass {
-       GtkCanvasItemClass parent_class;
+struct _GnomeCanvasWaveViewClass {
+       GnomeCanvasItemClass parent_class;
 };
 
-GtkType gtk_canvas_waveview_get_type (void);
+GType gnome_canvas_waveview_get_type (void) G_GNUC_CONST;
 
-END_GTK_CANVAS_DECLS
+G_END_DECLS
 
-#endif /* __GTK_CANVAS_WAVEVIEW_H__ */
+#endif /* __GNOME_CANVAS_WAVEVIEW_H__ */