~ubuntu-branches/ubuntu/utopic/glame/utopic

« back to all changes in this revision

Viewing changes to src/gui/libgtkwaveform/gtkwavebuffer.c

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Kobras
  • Date: 2002-04-09 17:14:12 UTC
  • Revision ID: james.westby@ubuntu.com-20020409171412-jzpnov7mbz2w6zsr
Tags: upstream-0.6.2
ImportĀ upstreamĀ versionĀ 0.6.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* gtkwavebuffer.c: interface class for read-only wave data
 
2
 * Copyright (c) 2000 David A. Bartold
 
3
 *
 
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.
 
8
 *
 
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.
 
13
 *
 
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.
 
18
 */
 
19
 
 
20
#include <glib.h>
 
21
#include "gtkwavebuffer.h"
 
22
#include <gtk/gtksignal.h>
 
23
 
 
24
 
 
25
static void gtk_wave_buffer_class_init      (GtkWaveBufferClass *klass);
 
26
static void gtk_wave_buffer_init            (GtkWaveBuffer      *wavebuffer);
 
27
 
 
28
 
 
29
GtkType
 
30
gtk_wave_buffer_get_type (void)
 
31
{
 
32
  static GtkType wavebuffer_type = 0;
 
33
 
 
34
  if (!wavebuffer_type)
 
35
    {
 
36
      static const GtkTypeInfo wavebuffer_info =
 
37
      {
 
38
        "GtkWaveBuffer",
 
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
 
46
      };
 
47
 
 
48
      wavebuffer_type = gtk_type_unique (GTK_TYPE_OBJECT, &wavebuffer_info);
 
49
    }
 
50
 
 
51
  return wavebuffer_type;
 
52
}
 
53
 
 
54
 
 
55
static void
 
56
gtk_wave_buffer_class_init (GtkWaveBufferClass *klass)
 
57
{
 
58
  GtkObjectClass *object_class;
 
59
  GtkType type;
 
60
 
 
61
  type = gtk_wave_buffer_get_type ();
 
62
 
 
63
  object_class = (GtkObjectClass *) klass;
 
64
 
 
65
  klass->get_datatype = NULL;
 
66
  klass->get_length = NULL;
 
67
  klass->get_num_channels = NULL;
 
68
  klass->get_samples = NULL;
 
69
 
 
70
  modified_signal =
 
71
    gtk_signal_new ("modified",
 
72
                    GTK_RUN_FIRST,
 
73
                    type,
 
74
                    GTK_SIGNAL_OFFSET (GtkWaveBufferClass, modified),
 
75
                    gtk_marshal_NONE__POINTER,
 
76
                    GTK_TYPE_NONE,
 
77
                    1, GTK_TYPE_POINTER);
 
78
 
 
79
  insert_data_signal =
 
80
    gtk_signal_new ("insert_data",
 
81
                    GTK_RUN_FIRST,
 
82
                    type,
 
83
                    GTK_SIGNAL_OFFSET (GtkWaveBufferClass, insert_data),
 
84
                    gtk_marshal_NONE__POINTER,
 
85
                    GTK_TYPE_NONE,
 
86
                    1, GTK_TYPE_POINTER);
 
87
 
 
88
  delete_data_signal =
 
89
    gtk_signal_new ("delete_data",
 
90
                    GTK_RUN_FIRST,
 
91
                    type,
 
92
                    GTK_SIGNAL_OFFSET (GtkWaveBufferClass, delete_data),
 
93
                    gtk_marshal_NONE__POINTER,
 
94
                    GTK_TYPE_NONE,
 
95
                    1, GTK_TYPE_POINTER);
 
96
 
 
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);
 
100
 
 
101
  klass->modified = NULL;
 
102
  klass->insert_data = NULL;
 
103
  klass->delete_data = NULL;
 
104
}
 
105
 
 
106
static void
 
107
gtk_wave_buffer_init (GtkWaveBuffer *wavebuffer)
 
108
{
 
109
}
 
110
 
 
111
 
 
112
guint32
 
113
gtk_wave_buffer_get_num_channels (GtkWaveBuffer *wavebuffer)
 
114
{
 
115
  return GTK_WAVE_BUFFER_CLASS (G_OBJECT_GET_CLASS (wavebuffer))->get_num_channels (wavebuffer);
 
116
}
 
117
 
 
118
guint32
 
119
gtk_wave_buffer_get_rate (GtkWaveBuffer *wavebuffer)
 
120
{
 
121
  return GTK_WAVE_BUFFER_CLASS (G_OBJECT_GET_CLASS (wavebuffer))->get_rate (wavebuffer);
 
122
}
 
123
 
 
124
guint32
 
125
gtk_wave_buffer_get_length (GtkWaveBuffer *wavebuffer)
 
126
{
 
127
  return GTK_WAVE_BUFFER_CLASS (G_OBJECT_GET_CLASS (wavebuffer))->get_length (wavebuffer);
 
128
}
 
129
 
 
130
GWavefileType
 
131
gtk_wave_buffer_get_datatype (GtkWaveBuffer *wavebuffer)
 
132
{
 
133
  return GTK_WAVE_BUFFER_CLASS (G_OBJECT_GET_CLASS (wavebuffer))->get_datatype (wavebuffer);
 
134
}
 
135
 
 
136
void
 
137
gtk_wave_buffer_get_samples (GtkWaveBuffer *wavebuffer,
 
138
                             guint32        start,
 
139
                             guint32        length,
 
140
                             guint32        channel_mask,
 
141
                             gpointer       data)
 
142
{
 
143
  GTK_WAVE_BUFFER_CLASS (G_OBJECT_GET_CLASS (wavebuffer))->get_samples (wavebuffer, start, length, channel_mask, data);
 
144
}