| decode_acquirefile_samples.cpp.html | mathcode2html |
| Source file: decode_acquirefile_samples.cpp | |
| Converted: Sun Aug 7 2016 at 13:45:52 | |
| This documentation file will not reflect any later changes in the source file. |
$$\phantom{******** If you see this on the webpage then the
browser could not locate *********}$$
$$\phantom{******** jsMath/easy/load.js or the variable root
is set wrong in this file *********}$$
$$\newcommand{\vector}[1]{\left[\begin{array}{c} #1 \end{array}\right]}$$
$$\newenvironment{matrix}{\left[\begin{array}{cccccccccc}} {\end{array}\right]}$$
$$\newcommand{\A}{{\cal A}}$$
$$\newcommand{\W}{{\cal W}}$$
/* Copyright 2008-2014 Research Foundation State University of New York */ /* This file is part of QUB Express. */ /* QUB Express is free software; you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ /* the Free Software Foundation, either version 3 of the License, or */ /* (at your option) any later version. */ /* QUB Express is distributed in the hope that it will be useful, */ /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* GNU General Public License for more details. */ /* You should have received a copy of the GNU General Public License, */ /* named LICENSE.txt, in the QUB Express program directory. If not, see */ /* <http://www.gnu.org/licenses/>. */ #include "decode_acquirefile_samples.h"
|
|
// *.acquire files store sampled data in a special compressed format.
// This decodes it into 16-bit shorts. Assumes little-endian architecture (flips big-endian literals).
// decode_acquirefile_samples.h // Up: Index |
extern "C" QUBFAST_API void decode_acquirefile_samples(char *src, short *dest, int size, int count)
{
short val = 0;
char *val_bytes = (char *) &val;
char *src_end = src + size;
short *dest_end = dest + count;
while ( (src != src_end) && (dest != dest_end) ) {
char c = *src;
if ( c == -128 ) {
++src;
val_bytes[1] = *src;
++src;
val_bytes[0] = *src;
++src;
} else {
val = (short) (val + c);
++src;
}
*dest = val;
++dest;
}
}