1 /*
2 MPEG Maaate: An Australian MPEG audio analysis toolkit
3 Copyright (C) 2000 Commonwealth Scientific and Industrial Research Organisation
4 (CSIRO), Australia.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19 */
20
21 #include <cmath>
22 #include "segmentData.H"
23
24 CSAPI_TIER2 SegmentData *
maaateA_sd_new(double t1,double t2,int col,int row,int i,char f,double conf)25 maaateA_sd_new(double t1, double t2, int col, int row,
26 int i, char f, double conf)
27 {
28 return new SegmentData(t1, t2, col, row, i, f, conf);
29 }
30
31 CSAPI_TIER2 SegmentData *
maaateA_sd_new_default(void)32 maaateA_sd_new_default(void)
33 {
34 return new SegmentData();
35 }
36
37 CSAPI_TIER2 void
maaateA_sd_delete(SegmentData * sd)38 maaateA_sd_delete(SegmentData *sd)
39 {
40 delete sd;
41 }
42
43 CSAPI_TIER2 int
maaateA_sd_starts_before(SegmentData * sd1,SegmentData * sd2)44 maaateA_sd_starts_before(SegmentData *sd1, SegmentData *sd2)
45 {
46 return ((*sd1) < (*sd2));
47 }
48
49 CSAPI_TIER2 int
maaateA_sd_ends_after(SegmentData * sd1,SegmentData * sd2)50 maaateA_sd_ends_after(SegmentData *sd1, SegmentData *sd2)
51 {
52 return ((*sd1) > (*sd2));
53 }
54
55 CSAPI_TIER2 void
maaateA_sd_print(SegmentData * sd)56 maaateA_sd_print(SegmentData * sd)
57 {
58 cout << *sd;
59 }
60
61 CSAPI_TIER2 SegmentData *
maaateA_sd_copy(SegmentData * sd)62 maaateA_sd_copy(SegmentData *sd)
63 {
64 return new SegmentData(*sd);
65 }
66
67 CSAPI_TIER2 SegmentData *
maaateA_sd_partial_copy(SegmentData * sd,int st_row,int end_row)68 maaateA_sd_partial_copy (SegmentData *sd, int st_row, int end_row)
69 {
70 return new SegmentData(*sd, st_row, end_row);
71 }
72
73 CSAPI_TIER2 double
maaateA_sd_element(SegmentData * sd,int c,int r)74 maaateA_sd_element(SegmentData *sd, int c, int r)
75 {
76 return (*sd)(c,r);
77 }
78
79 CSAPI_TIER2 double
maaateA_sd_get_start(SegmentData * sd)80 maaateA_sd_get_start(SegmentData * sd)
81 {
82 return sd->start();
83 }
84
85 CSAPI_TIER2 double
maaateA_sd_get_end(SegmentData * sd)86 maaateA_sd_get_end(SegmentData * sd)
87 {
88 return sd->end();
89 }
90
91 CSAPI_TIER2 double
maaateA_sd_get_duration(SegmentData * sd)92 maaateA_sd_get_duration(SegmentData * sd)
93 {
94 return sd->duration();
95 }
96
97 CSAPI_TIER2 double
maaateA_sd_get_resolution(SegmentData * sd)98 maaateA_sd_get_resolution(SegmentData * sd)
99 {
100 return sd->resolution();
101 }
102
103 CSAPI_TIER2 double
maaateA_sd_get_filled(SegmentData * sd)104 maaateA_sd_get_filled(SegmentData * sd)
105 {
106 return sd->filled();
107 }
108
109 CSAPI_TIER2 double
maaateA_sd_get_filledUntil(SegmentData * sd)110 maaateA_sd_get_filledUntil(SegmentData * sd)
111 {
112 return sd->filledUntil();
113 }
114
115 CSAPI_TIER2 int
maaateA_sd_col_filled(SegmentData * sd)116 maaateA_sd_col_filled(SegmentData * sd)
117 {
118 return sd->col_filled();
119 }
120
121 CSAPI_TIER2 int
maaateA_sd_no_columns(SegmentData * sd)122 maaateA_sd_no_columns(SegmentData *sd)
123 {
124 return sd->no_columns();
125 }
126
127 CSAPI_TIER2 int
maaateA_sd_no_rows(SegmentData * sd)128 maaateA_sd_no_rows(SegmentData *sd)
129 {
130 return sd->no_rows();
131 }
132
133 CSAPI_TIER2 int
maaateA_sd_get_ident(SegmentData * sd)134 maaateA_sd_get_ident(SegmentData * sd)
135 {
136 return sd->ident();
137 }
138
139 CSAPI_TIER2 char
maaateA_sd_get_uflag(SegmentData * sd)140 maaateA_sd_get_uflag(SegmentData * sd)
141 {
142 return sd->uflag();
143 }
144
145 CSAPI_TIER2 double
maaateA_sd_get_confidence(SegmentData * sd)146 maaateA_sd_get_confidence(SegmentData *sd)
147 {
148 return sd->confidence();
149 }
150
151 CSAPI_TIER2 int
maaateA_sd_time2col(SegmentData * sd,double time)152 maaateA_sd_time2col (SegmentData *sd, double time)
153 {
154 return sd->time2col(time);
155 }
156
157 CSAPI_TIER2 double
maaateA_sd_sum_part(SegmentData * sd,int start,int end,int startrow,int endrow)158 maaateA_sd_sum_part (SegmentData * sd, int start, int end,
159 int startrow, int endrow)
160 {
161 return sd->sum(start, end, startrow, endrow);
162 }
163
164 CSAPI_TIER2 double
maaateA_sd_min_part(SegmentData * sd,double start,double end,int startrow,int endrow)165 maaateA_sd_min_part (SegmentData * sd, double start, double end,
166 int startrow, int endrow)
167 {
168 return sd->smin(start, end, startrow, endrow);
169 }
170
171 CSAPI_TIER2 double
maaateA_sd_max_part(SegmentData * sd,double start,double end,int startrow,int endrow)172 maaateA_sd_max_part (SegmentData * sd, double start, double end,
173 int startrow, int endrow)
174 {
175 return sd->smax(start, end, startrow, endrow);
176 }
177
178 CSAPI_TIER2 double
maaateA_sd_avg_part(SegmentData * sd,int start,int end,int startrow,int endrow)179 maaateA_sd_avg_part (SegmentData * sd, int start, int end,
180 int startrow, int endrow)
181 {
182 return sd->avg(start, end, startrow, endrow);
183 }
184
185 CSAPI_TIER2 double
maaateA_sd_sum(SegmentData * sd)186 maaateA_sd_sum(SegmentData * sd)
187 {
188 return sd->sum();
189 }
190
191 CSAPI_TIER2 double
maaateA_sd_min(SegmentData * sd,double downto)192 maaateA_sd_min(SegmentData * sd, double downto )
193 {
194 return sd->smin(downto);
195 }
196
197 CSAPI_TIER2 double
maaateA_sd_max(SegmentData * sd,double upto)198 maaateA_sd_max(SegmentData * sd, double upto)
199 {
200 return sd->smax(upto);
201 }
202
203 CSAPI_TIER2 double
maaateA_sd_avg(SegmentData * sd)204 maaateA_sd_avg(SegmentData * sd)
205 {
206 return sd->avg();
207 }
208
209 CSAPI_TIER2 int
maaateA_sd_normalise(SegmentData * sd,double downto,double upto)210 maaateA_sd_normalise(SegmentData * sd, double downto, double upto)
211 {
212 return sd->normalise(downto, upto);
213 }
214
215 CSAPI_TIER2 void
maaateA_sd_clear_sum(SegmentData * sd)216 maaateA_sd_clear_sum(SegmentData * sd)
217 {
218 sd->clear_sum();
219 }
220
221 CSAPI_TIER2 void
maaateA_sd_clear_min(SegmentData * sd)222 maaateA_sd_clear_min(SegmentData * sd)
223 {
224 sd->clear_min();
225 }
226
227 CSAPI_TIER2 void
maaateA_sd_clear_max(SegmentData * sd)228 maaateA_sd_clear_max(SegmentData * sd)
229 {
230 sd->clear_max();
231 }
232
233 CSAPI_TIER2 void
maaateA_sd_clear_all(SegmentData * sd)234 maaateA_sd_clear_all(SegmentData * sd)
235 {
236 sd->clear_all();
237 }
238
239 CSAPI_TIER2 void
maaateA_sd_initData(SegmentData * sd,double val)240 maaateA_sd_initData (SegmentData * sd, double val)
241 {
242 sd->initData(val);
243 }
244