diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2005-11-28 22:36:26 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2005-11-28 22:36:26 +0000 |
commit | 2b49b2433b6dc06a52b0848af62373c747f18ac9 (patch) | |
tree | 10456e452edb340f68a1229afa5af9aadd3ba11b /gtk2_ardour/canvas-waveview.c | |
parent | d6a27c9537926e4ec7bd3371da97a2d1f85b6e86 (diff) |
mega commit to remove gtk_object cruft, and much other stuff
git-svn-id: svn://localhost/trunk/ardour2@139 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/canvas-waveview.c')
-rw-r--r-- | gtk2_ardour/canvas-waveview.c | 517 |
1 files changed, 255 insertions, 262 deletions
diff --git a/gtk2_ardour/canvas-waveview.c b/gtk2_ardour/canvas-waveview.c index 370c324d9d..f47529973e 100644 --- a/gtk2_ardour/canvas-waveview.c +++ b/gtk2_ardour/canvas-waveview.c @@ -1,279 +1,272 @@ -/* - Copyright (C) 2000-2002 Paul Davis - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - $Id$ -*/ - -#include <stdio.h> -#include <math.h> -#include <libgnomecanvas/libgnomecanvas.h> -#include <string.h> -#include <limits.h> - -#include <ardour/dB.h> - -#include "canvas-waveview.h" -#include "rgb_macros.h" - -enum { - PROP_0, - PROP_DATA_SRC, - PROP_CHANNEL, - PROP_LENGTH_FUNCTION, - PROP_SOURCEFILE_LENGTH_FUNCTION, - PROP_PEAK_FUNCTION, - PROP_GAIN_FUNCTION, - PROP_GAIN_SRC, - PROP_CACHE, - PROP_CACHE_UPDATER, - PROP_SAMPLES_PER_UNIT, - PROP_AMPLITUDE_ABOVE_AXIS, - PROP_X, - PROP_Y, - PROP_HEIGHT, - PROP_WAVE_COLOR, - PROP_RECTIFIED, - PROP_REGION_START -}; - -static void gnome_canvas_waveview_class_init (GnomeCanvasWaveViewClass *class); - -static void gnome_canvas_waveview_init (GnomeCanvasWaveView *waveview); - -static void gnome_canvas_waveview_destroy (GtkObject *object); - -static void gnome_canvas_waveview_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gnome_canvas_waveview_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); - -static void gnome_canvas_waveview_update (GnomeCanvasItem *item, - double *affine, - ArtSVP *clip_path, - int flags); - -static void gnome_canvas_waveview_bounds (GnomeCanvasItem *item, - double *x1, - double *y1, - double *x2, - double *y2); - -static double gnome_canvas_waveview_point (GnomeCanvasItem *item, - double x, - double y, - int cx, - int cy, - GnomeCanvasItem **actual_item); - -static void gnome_canvas_waveview_render (GnomeCanvasItem *item, - GnomeCanvasBuf *buf); - -static void gnome_canvas_waveview_draw (GnomeCanvasItem *item, - GdkDrawable *drawable, - int x, - int y, - int w, - int h); - -static void gnome_canvas_waveview_set_data_src (GnomeCanvasWaveView *, - void *); - -static void gnome_canvas_waveview_set_channel (GnomeCanvasWaveView *, - guint32); - -static gint32 gnome_canvas_waveview_ensure_cache (GnomeCanvasWaveView *waveview, - gulong start_sample, - gulong end_sample); - -static GnomeCanvasItemClass *parent_class; - -GType -gnome_canvas_waveview_get_type (void) -{ - static GType waveview_type; - - if (!waveview_type) { - static const GTypeInfo object_info = { - sizeof (GnomeCanvasWaveViewClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) gnome_canvas_waveview_class_init, - (GClassFinalizeFunc) NULL, - NULL, /* class_data */ - sizeof (GnomeCanvasWaveView), - 0, /* n_preallocs */ - (GInstanceInitFunc) gnome_canvas_waveview_init, - NULL /* value_table */ - }; - - waveview_type = g_type_register_static (GNOME_TYPE_CANVAS_ITEM, "GnomeCanvasWaveView", - &object_info, 0); - } + /* + Copyright (C) 2000-2002 Paul Davis - return waveview_type; -} + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -static void -gnome_canvas_waveview_class_init (GnomeCanvasWaveViewClass *class) -{ - GObjectClass *gobject_class; - GtkObjectClass *object_class; - GnomeCanvasItemClass *item_class; + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. - gobject_class = (GObjectClass *) class; - object_class = (GtkObjectClass *) class; - item_class = (GnomeCanvasItemClass *) class; + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - parent_class = g_type_class_peek_parent (class); + $Id$ + */ - gobject_class->set_property = gnome_canvas_waveview_set_property; - gobject_class->get_property = gnome_canvas_waveview_get_property; - - g_object_class_install_property - (gobject_class, - PROP_DATA_SRC, - g_param_spec_boxed ("data_src", NULL, NULL, - GTK_TYPE_POINTER, + #include <stdio.h> + #include <math.h> + #include <libgnomecanvas/libgnomecanvas.h> + #include <string.h> + #include <limits.h> + + #include <ardour/dB.h> + + #include "canvas-waveview.h" + #include "rgb_macros.h" + + enum { + PROP_0, + PROP_DATA_SRC, + PROP_CHANNEL, + PROP_LENGTH_FUNCTION, + PROP_SOURCEFILE_LENGTH_FUNCTION, + PROP_PEAK_FUNCTION, + PROP_GAIN_FUNCTION, + PROP_GAIN_SRC, + PROP_CACHE, + PROP_CACHE_UPDATER, + PROP_SAMPLES_PER_UNIT, + PROP_AMPLITUDE_ABOVE_AXIS, + PROP_X, + PROP_Y, + PROP_HEIGHT, + PROP_WAVE_COLOR, + PROP_RECTIFIED, + PROP_REGION_START + }; + + static void gnome_canvas_waveview_class_init (GnomeCanvasWaveViewClass *class); + + static void gnome_canvas_waveview_init (GnomeCanvasWaveView *waveview); + + static void gnome_canvas_waveview_destroy (GtkObject *object); + + static void gnome_canvas_waveview_set_property (GObject *object, + guint prop_id, + const GValue *value, + GParamSpec *pspec); + static void gnome_canvas_waveview_get_property (GObject *object, + guint prop_id, + GValue *value, + GParamSpec *pspec); + + static void gnome_canvas_waveview_update (GnomeCanvasItem *item, + double *affine, + ArtSVP *clip_path, + int flags); + + static void gnome_canvas_waveview_bounds (GnomeCanvasItem *item, + double *x1, + double *y1, + double *x2, + double *y2); + + static double gnome_canvas_waveview_point (GnomeCanvasItem *item, + double x, + double y, + int cx, + int cy, + GnomeCanvasItem **actual_item); + + static void gnome_canvas_waveview_render (GnomeCanvasItem *item, + GnomeCanvasBuf *buf); + + static void gnome_canvas_waveview_draw (GnomeCanvasItem *item, + GdkDrawable *drawable, + int x, + int y, + int w, + int h); + + static void gnome_canvas_waveview_set_data_src (GnomeCanvasWaveView *, + void *); + + static void gnome_canvas_waveview_set_channel (GnomeCanvasWaveView *, + guint32); + + static gint32 gnome_canvas_waveview_ensure_cache (GnomeCanvasWaveView *waveview, + gulong start_sample, + gulong end_sample); + + static GnomeCanvasItemClass *parent_class; + + GType + gnome_canvas_waveview_get_type (void) + { + static GType waveview_type; + + if (!waveview_type) { + static const GTypeInfo object_info = { + sizeof (GnomeCanvasWaveViewClass), + (GBaseInitFunc) NULL, + (GBaseFinalizeFunc) NULL, + (GClassInitFunc) gnome_canvas_waveview_class_init, + (GClassFinalizeFunc) NULL, + NULL, /* class_data */ + sizeof (GnomeCanvasWaveView), + 0, /* n_preallocs */ + (GInstanceInitFunc) gnome_canvas_waveview_init, + NULL /* value_table */ + }; + + waveview_type = g_type_register_static (GNOME_TYPE_CANVAS_ITEM, "GnomeCanvasWaveView", + &object_info, 0); + } + + return waveview_type; + } + + static void + gnome_canvas_waveview_class_init (GnomeCanvasWaveViewClass *class) + { + GObjectClass *gobject_class; + GtkObjectClass *object_class; + GnomeCanvasItemClass *item_class; + + gobject_class = (GObjectClass *) class; + object_class = (GtkObjectClass *) class; + item_class = (GnomeCanvasItemClass *) class; + + parent_class = g_type_class_peek_parent (class); + + gobject_class->set_property = gnome_canvas_waveview_set_property; + gobject_class->get_property = gnome_canvas_waveview_get_property; + + g_object_class_install_property + (gobject_class, + PROP_DATA_SRC, + g_param_spec_pointer ("data_src", NULL, NULL, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); + + g_object_class_install_property + (gobject_class, + PROP_CHANNEL, + g_param_spec_uint ("channel", NULL, NULL, + 0, G_MAXUINT, 0, (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - g_object_class_install_property - (gobject_class, - PROP_CHANNEL, - g_param_spec_uint ("channel", NULL, NULL, - 0, G_MAXUINT, 0, - (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - g_object_class_install_property - (gobject_class, - PROP_LENGTH_FUNCTION, - g_param_spec_boxed ("length_function", NULL, NULL, - GTK_TYPE_POINTER, - (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - g_object_class_install_property + + g_object_class_install_property + (gobject_class, + PROP_LENGTH_FUNCTION, + g_param_spec_pointer ("length_function", NULL, NULL, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); + + g_object_class_install_property (gobject_class, PROP_SOURCEFILE_LENGTH_FUNCTION, - g_param_spec_boxed ("sourcefile_length_function", NULL, NULL, - GTK_TYPE_POINTER, - (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - g_object_class_install_property - (gobject_class, - PROP_PEAK_FUNCTION, - g_param_spec_boxed ("peak_function", NULL, NULL, - GTK_TYPE_POINTER, - (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - g_object_class_install_property - (gobject_class, - PROP_GAIN_FUNCTION, - g_param_spec_boxed ("gain_function", NULL, NULL, - GTK_TYPE_POINTER, - (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - g_object_class_install_property - (gobject_class, + g_param_spec_pointer ("sourcefile_length_function", NULL, NULL, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); + + g_object_class_install_property + (gobject_class, + PROP_PEAK_FUNCTION, + g_param_spec_pointer ("peak_function", NULL, NULL, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); + + g_object_class_install_property + (gobject_class, + PROP_GAIN_FUNCTION, + g_param_spec_pointer ("gain_function", NULL, NULL, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); + + g_object_class_install_property + (gobject_class, PROP_GAIN_SRC, - g_param_spec_boxed ("gain_src", NULL, NULL, - GTK_TYPE_POINTER, - (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - g_object_class_install_property - (gobject_class, - PROP_CACHE, - g_param_spec_boxed ("cache", NULL, NULL, - GTK_TYPE_POINTER, - (G_PARAM_READABLE | G_PARAM_WRITABLE))); + g_param_spec_pointer ("gain_src", NULL, NULL, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); - g_object_class_install_property - (gobject_class, - PROP_CACHE_UPDATER, + g_object_class_install_property + (gobject_class, + PROP_CACHE, + g_param_spec_pointer ("cache", NULL, NULL, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); + + g_object_class_install_property + (gobject_class, + PROP_CACHE_UPDATER, g_param_spec_boolean ("cache_updater", NULL, NULL, FALSE, (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - g_object_class_install_property - (gobject_class, - PROP_SAMPLES_PER_UNIT, - g_param_spec_double ("sample_per_unit", NULL, NULL, - 0.0, G_MAXDOUBLE, 0.0, - (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - g_object_class_install_property - (gobject_class, - PROP_AMPLITUDE_ABOVE_AXIS, - g_param_spec_double ("amplitude_above_axis", NULL, NULL, - 0.0, G_MAXDOUBLE, 0.0, - (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - g_object_class_install_property - (gobject_class, - PROP_X, - g_param_spec_double ("x", NULL, NULL, - 0.0, G_MAXDOUBLE, 0.0, - (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - g_object_class_install_property - (gobject_class, - PROP_Y, - g_param_spec_double ("y", NULL, NULL, - 0.0, G_MAXDOUBLE, 0.0, - (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - g_object_class_install_property - (gobject_class, - PROP_HEIGHT, - g_param_spec_double ("height", NULL, NULL, - 0.0, G_MAXDOUBLE, 0.0, - (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - g_object_class_install_property - (gobject_class, - PROP_WAVE_COLOR, - g_param_spec_uint ("wave_color", NULL, NULL, - 0, G_MAXUINT, 0, - (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - g_object_class_install_property - (gobject_class, - PROP_RECTIFIED, - g_param_spec_boolean ("rectified", NULL, NULL, - FALSE, + + g_object_class_install_property + (gobject_class, + PROP_SAMPLES_PER_UNIT, + g_param_spec_double ("samples_per_unit", NULL, NULL, + 0.0, G_MAXDOUBLE, 0.0, (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - g_object_class_install_property - (gobject_class, - PROP_REGION_START, - g_param_spec_uint ("region_start", NULL, NULL, - 0, G_MAXUINT, 0, - (G_PARAM_READABLE | G_PARAM_WRITABLE))); - - object_class->destroy = gnome_canvas_waveview_destroy; - - item_class->update = gnome_canvas_waveview_update; - item_class->bounds = gnome_canvas_waveview_bounds; - item_class->point = gnome_canvas_waveview_point; - item_class->render = gnome_canvas_waveview_render; - item_class->draw = gnome_canvas_waveview_draw; -} + + g_object_class_install_property + (gobject_class, + PROP_AMPLITUDE_ABOVE_AXIS, + g_param_spec_double ("amplitude_above_axis", NULL, NULL, + 0.0, G_MAXDOUBLE, 0.0, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); + + g_object_class_install_property + (gobject_class, + PROP_X, + g_param_spec_double ("x", NULL, NULL, + 0.0, G_MAXDOUBLE, 0.0, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); + + g_object_class_install_property + (gobject_class, + PROP_Y, + g_param_spec_double ("y", NULL, NULL, + 0.0, G_MAXDOUBLE, 0.0, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); + + g_object_class_install_property + (gobject_class, + PROP_HEIGHT, + g_param_spec_double ("height", NULL, NULL, + 0.0, G_MAXDOUBLE, 0.0, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); + + g_object_class_install_property + (gobject_class, + PROP_WAVE_COLOR, + g_param_spec_uint ("wave_color", NULL, NULL, + 0, G_MAXUINT, 0, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); + + g_object_class_install_property + (gobject_class, + PROP_RECTIFIED, + g_param_spec_boolean ("rectified", NULL, NULL, + FALSE, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); + + g_object_class_install_property + (gobject_class, + PROP_REGION_START, + g_param_spec_uint ("region_start", NULL, NULL, + 0, G_MAXUINT, 0, + (G_PARAM_READABLE | G_PARAM_WRITABLE))); + + object_class->destroy = gnome_canvas_waveview_destroy; + + item_class->update = gnome_canvas_waveview_update; + item_class->bounds = gnome_canvas_waveview_bounds; + item_class->point = gnome_canvas_waveview_point; + item_class->render = gnome_canvas_waveview_render; + item_class->draw = gnome_canvas_waveview_draw; + } GnomeCanvasWaveViewCache* gnome_canvas_waveview_cache_new () |