struct _GnomeCanvasWaveViewCache
{
GnomeCanvasWaveViewCacheEntry* data;
- gint32 allocated;
- gint32 data_size;
- gulong start;
- gulong end;
-};
+ guint32 allocated;
+ 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, 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. */
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.
*
uint32_t wave_color;
uint32_t clip_color;
uint32_t zero_color;
+ uint32_t fill_color;
+ char filled;
char rectified;
- char logscaled;
-
+ 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().
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;