1
/* gtkwavebuffer.c: interface class for read-only wave data
2
* Copyright (c) 2000 David A. Bartold
4
* This library is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Library General Public
6
* License as published by the Free Software Foundation; either
7
* version 2 of the License, or (at your option) any later version.
9
* This library is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Library General Public License for more details.
14
* You should have received a copy of the GNU Library General Public
15
* License along with this library; if not, write to the
16
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17
* Boston, MA 02111-1307, USA.
21
#include "gtkwavebuffer.h"
22
#include <gtk/gtksignal.h>
25
static void gtk_wave_buffer_class_init (GtkWaveBufferClass *klass);
26
static void gtk_wave_buffer_init (GtkWaveBuffer *wavebuffer);
30
gtk_wave_buffer_get_type (void)
32
static GtkType wavebuffer_type = 0;
36
static const GtkTypeInfo wavebuffer_info =
39
sizeof (GtkWaveBuffer),
40
sizeof (GtkWaveBufferClass),
41
(GtkClassInitFunc) gtk_wave_buffer_class_init,
42
(GtkObjectInitFunc) gtk_wave_buffer_init,
43
/* reserved_1 */ NULL,
44
/* reserved_2 */ NULL,
45
(GtkClassInitFunc) NULL
48
wavebuffer_type = gtk_type_unique (GTK_TYPE_OBJECT, &wavebuffer_info);
51
return wavebuffer_type;
56
gtk_wave_buffer_class_init (GtkWaveBufferClass *klass)
58
GtkObjectClass *object_class;
61
type = gtk_wave_buffer_get_type ();
63
object_class = (GtkObjectClass *) klass;
65
klass->get_datatype = NULL;
66
klass->get_length = NULL;
67
klass->get_num_channels = NULL;
68
klass->get_samples = NULL;
71
gtk_signal_new ("modified",
74
GTK_SIGNAL_OFFSET (GtkWaveBufferClass, modified),
75
gtk_marshal_NONE__POINTER,
80
gtk_signal_new ("insert_data",
83
GTK_SIGNAL_OFFSET (GtkWaveBufferClass, insert_data),
84
gtk_marshal_NONE__POINTER,
89
gtk_signal_new ("delete_data",
92
GTK_SIGNAL_OFFSET (GtkWaveBufferClass, delete_data),
93
gtk_marshal_NONE__POINTER,
97
gtk_object_class_add_signals (object_class, &modified_signal, 1);
98
gtk_object_class_add_signals (object_class, &insert_data_signal, 1);
99
gtk_object_class_add_signals (object_class, &delete_data_signal, 1);
101
klass->modified = NULL;
102
klass->insert_data = NULL;
103
klass->delete_data = NULL;
107
gtk_wave_buffer_init (GtkWaveBuffer *wavebuffer)
113
gtk_wave_buffer_get_num_channels (GtkWaveBuffer *wavebuffer)
115
return GTK_WAVE_BUFFER_CLASS (G_OBJECT_GET_CLASS (wavebuffer))->get_num_channels (wavebuffer);
119
gtk_wave_buffer_get_rate (GtkWaveBuffer *wavebuffer)
121
return GTK_WAVE_BUFFER_CLASS (G_OBJECT_GET_CLASS (wavebuffer))->get_rate (wavebuffer);
125
gtk_wave_buffer_get_length (GtkWaveBuffer *wavebuffer)
127
return GTK_WAVE_BUFFER_CLASS (G_OBJECT_GET_CLASS (wavebuffer))->get_length (wavebuffer);
131
gtk_wave_buffer_get_datatype (GtkWaveBuffer *wavebuffer)
133
return GTK_WAVE_BUFFER_CLASS (G_OBJECT_GET_CLASS (wavebuffer))->get_datatype (wavebuffer);
137
gtk_wave_buffer_get_samples (GtkWaveBuffer *wavebuffer,
140
guint32 channel_mask,
143
GTK_WAVE_BUFFER_CLASS (G_OBJECT_GET_CLASS (wavebuffer))->get_samples (wavebuffer, start, length, channel_mask, data);