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