guint64 data_size;
gulong start;
gulong end;
-};
+};
GnomeCanvasWaveViewCache* gnome_canvas_waveview_cache_new ();
void gnome_canvas_waveview_cache_destroy (GnomeCanvasWaveViewCache*);
+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
{
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*,double);
- void (*gain_curve_function)(void *arg, double start, double end, float* vector, gint64 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. */
double samples_per_unit;
-
+
/** 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.
*
char rectified;
char zero_line;
char logscaled;
-
+
/* These are updated by the update() routine
to optimize the render() routine, which may
be called several times after a single update().