00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084 #include "mark.hpp"
00085 #include "uti.h"
00086 #include "spl.h"
00087
00088
00089
00090 Lix Mark1DList::insbefore(Lix p, LONG pos, const String &lbl)
00091 {
00092 Mark1D m(pos);
00093 p=insbefore(p,m);
00094 label(p)=lbl;
00095 return p;
00096 }
00097
00098
00099
00100 Lix Mark1DList::insafter(Lix p, LONG pos, const String &lbl)
00101 {
00102 Mark1D m(pos);
00103 p=insafter(p,m);
00104 label(p)=lbl;
00105 return p;
00106 }
00107
00108
00109
00110 Lix Mark1DList::prepend(LONG pos, const String &lbl)
00111 {
00112 Mark1D m(pos);
00113 Lix p=prepend(m);
00114 label(p)=lbl;
00115 return p;
00116 }
00117
00118
00119
00120 Lix Mark1DList::append(LONG pos, const String &lbl)
00121 {
00122 Mark1D m(pos);
00123 Lix p=append(m);
00124 label(p)=lbl;
00125 return p;
00126 }
00127
00128
00129
00130 Lix Mark1DList::insbefore(Lix p, LONG pos, LONG span, const String &lbl)
00131 {
00132 Mark1D m(pos,span);
00133 p=insbefore(p,m);
00134 label(p)=lbl;
00135 return p;
00136 }
00137
00138
00139
00140 Lix Mark1DList::insafter(Lix p, LONG pos, LONG span, const String &lbl)
00141 {
00142 Mark1D m(pos,span);
00143 p=insafter(p,m);
00144 label(p)=lbl;
00145 return p;
00146 }
00147
00148
00149
00150 Lix Mark1DList::prepend(LONG pos, LONG span, const String &lbl)
00151 {
00152 Mark1D m(pos,span);
00153 Lix p=prepend(m);
00154 label(p)=lbl;
00155 return p;
00156 }
00157
00158
00159
00160 Lix Mark1DList::append(LONG pos, LONG span, const String &lbl)
00161 {
00162 Mark1D m(pos,span);
00163 Lix p=append(m);
00164 label(p)=lbl;
00165 return p;
00166 }
00167
00168
00169
00170 Lix Mark1DList::insbefore_ms(Lix p, const Mark1D &m, DOUBLE sr)
00171 {
00172 DOUBLE f = ((sr && srate) ? srate/sr : 1);
00173 return insbefore(p,(LONG)fround(m.pos*f),(LONG)fround(m.span*f),m.label);
00174 }
00175
00176
00177
00178 Lix Mark1DList::insafter_ms(Lix p, const Mark1D &m, DOUBLE sr)
00179 {
00180 DOUBLE f = ((sr && srate) ? srate/sr : 1);
00181 return insafter(p,(LONG)fround(m.pos*f),(LONG)fround(m.span*f),m.label);
00182 }
00183
00184
00185
00186 Lix Mark1DList::prepend_ms(const Mark1D &m, DOUBLE sr)
00187 {
00188 DOUBLE f = ((sr && srate) ? srate/sr : 1);
00189 return prepend((LONG)fround(m.pos*f),(LONG)fround(m.span*f),m.label);
00190 }
00191
00192
00193
00194 Lix Mark1DList::append_ms(const Mark1D &m, DOUBLE sr)
00195 {
00196 DOUBLE f = ((sr && srate) ? srate/sr : 1);
00197 return append((LONG)fround(m.pos*f),(LONG)fround(m.span*f),m.label);
00198 }
00199
00200
00201
00202 Lix Mark1DList::insbefore_ms(Lix p, const Mark1DList &a)
00203 {
00204 for (Lix q=a.last(); q!=0; q=a.prev(q)) p=insbefore_ms(p,a(q),a.srate);
00205 return p;
00206 }
00207
00208
00209
00210 Lix Mark1DList::insafter_ms(Lix p, const Mark1DList &a)
00211 {
00212 for (Lix q=a.first(); q!=0; q=a.next(q)) p=insafter_ms(p,a(q),a.srate);
00213 return p;
00214 }
00215
00216
00217
00218 Lix Mark1DList::prepend_ms(const Mark1DList &a)
00219 {
00220 Lix p=0;
00221 for (Lix q=a.last(); q!=0; q=a.prev(q)) p=prepend_ms(a(q),a.srate);
00222 return p;
00223 }
00224
00225
00226
00227 Lix Mark1DList::append_ms(const Mark1DList &a)
00228 {
00229 Lix p=0;
00230 for (Lix q=a.first(); q!=0; q=a.next(q)) p=append_ms(a(q),a.srate);
00231 return p;
00232 }
00233
00234
00235
00236 Lix Mark1DList::insbefore_mv_ms(Lix p, Mark1DList &a)
00237 {
00238 a.adjustSRate(srate);
00239 return insbefore_mv(p,a);
00240 }
00241
00242
00243
00244 Lix Mark1DList::insafter_mv_ms(Lix p, Mark1DList &a)
00245 {
00246 a.adjustSRate(srate);
00247 return insafter_mv(p,a);
00248 }
00249
00250
00251
00252 Lix Mark1DList::prepend_mv_ms(Mark1DList &a)
00253 {
00254 a.adjustSRate(srate);
00255 return prepend_mv(a);
00256 }
00257
00258
00259
00260 Lix Mark1DList::append_mv_ms(Mark1DList &a)
00261 {
00262 a.adjustSRate(srate);
00263 return append_mv(a);
00264 }
00265
00266
00267
00268 Lix Mark1DList::insbefore_ms(Lix p, DOUBLE posms, const String &lbl)
00269 {
00270 return insbefore(p,(LONG)fround( srate ? ms2samples(posms,srate): posms),lbl);
00271 }
00272
00273
00274
00275 Lix Mark1DList::insafter_ms(Lix p, DOUBLE posms, const String &lbl)
00276 {
00277 return insafter(p,(LONG)fround( srate ? ms2samples(posms,srate): posms),lbl);
00278 }
00279
00280
00281
00282 Lix Mark1DList::prepend_ms(DOUBLE posms, const String &lbl)
00283 {
00284 return prepend((LONG)fround( srate ? ms2samples(posms,srate): posms),lbl);
00285 }
00286
00287
00288
00289 Lix Mark1DList::append_ms(DOUBLE posms, const String &lbl)
00290 {
00291 return append((LONG)fround( srate ? ms2samples(posms,srate): posms),lbl);
00292 }
00293
00294
00295
00296 Lix Mark1DList::insbefore_ms(Lix p, DOUBLE posms, DOUBLE spanms, const String &lbl)
00297 {
00298 return insbefore(p,(LONG)fround(srate?ms2samples(posms,srate):posms),
00299 (LONG)fround(srate?ms2samples(spanms,srate):posms),lbl);
00300 }
00301
00302
00303
00304 Lix Mark1DList::insafter_ms(Lix p, DOUBLE posms, DOUBLE spanms, const String &lbl)
00305 {
00306 return insafter(p,(LONG)fround(srate?ms2samples(posms,srate):posms),
00307 (LONG)fround(srate?ms2samples(spanms,srate):posms),lbl);
00308 }
00309
00310
00311
00312 Lix Mark1DList::prepend_ms(DOUBLE posms, DOUBLE spanms, const String &lbl)
00313 {
00314 return prepend((LONG)fround(srate?ms2samples(posms,srate):posms),
00315 (LONG)fround(srate?ms2samples(spanms,srate):posms),lbl);
00316 }
00317
00318
00319
00320 Lix Mark1DList::append_ms(DOUBLE posms, DOUBLE spanms, const String &lbl)
00321 {
00322 return append((LONG)fround(srate?ms2samples(posms,srate):posms),
00323 (LONG)fround(srate?ms2samples(spanms,srate):posms),lbl);
00324 }
00325
00326
00327
00328 DOUBLE Mark1DList::getpos_ms( Lix p) const
00329 {
00330 return srate ? samples2ms(pos(p),srate) : pos(p);
00331 }
00332
00333
00334
00335 VOID Mark1DList::setpos_ms(Lix p, DOUBLE pos_ms)
00336 {
00337 pos(p) = (LONG)fround(srate ? ms2samples(pos_ms,srate) : pos_ms);
00338 }
00339
00340
00341
00342 DOUBLE Mark1DList::getspan_ms(Lix p) const
00343 {
00344 return srate ? samples2ms(span(p),srate) : span(p);
00345 }
00346
00347
00348
00349 VOID Mark1DList::setspan_ms(Lix p, DOUBLE span_ms)
00350 {
00351 span(p) = (LONG)fround(srate ? ms2samples(span_ms,srate) : span_ms);
00352 }
00353
00354
00355
00356 DOUBLE Mark1DList::getpos_ms( LIINT i) const
00357 {
00358 return srate ? samples2ms(pos(i),srate) : pos(i);
00359 }
00360
00361
00362
00363 VOID Mark1DList::setpos_ms(LIINT i, DOUBLE pos_ms)
00364 {
00365 pos(i) = (LONG)fround(srate ? ms2samples(pos_ms,srate) : pos_ms);
00366 }
00367
00368
00369
00370 DOUBLE Mark1DList::getspan_ms(LIINT i) const
00371 {
00372 return srate ? samples2ms(span(i),srate) : span(i);
00373 }
00374
00375
00376
00377 VOID Mark1DList::setspan_ms(LIINT i, DOUBLE span_ms)
00378 {
00379 span(i) = (LONG)fround(srate ? ms2samples(span_ms,srate) : span_ms);
00380 }
00381
00382