58#ifndef FFTStatus_DEFINED 
   59#define FFTStatus_DEFINED 
   66#ifdef WHITEBOARD_POSTER_STRING_CONVERSION 
   73#pragma clang diagnostic push 
   74#pragma clang diagnostic ignored "-Winvalid-offsetof" 
   75#pragma clang diagnostic ignored "-Wclass-varargs" 
   76#pragma clang diagnostic ignored "-Wvarargs" 
   90        FFTStatus(int16_t lrms, int16_t 
rrms, uint16_t 
hi, uint16_t 
lo, uint16_t 
fsk, va_list freqs): 
fft_dominant_frequency(lrms, 
rrms, 
hi, 
lo, 
fsk, freqs) {}
 
   93        FFTStatus(int16_t lrms, int16_t 
rrms, uint16_t 
hi = 
FSK_DEFAULT_HI, uint16_t 
lo = 
FSK_DEFAULT_LO, uint16_t 
fsk = 0, ...): 
fft_dominant_frequency(lrms, 
rrms, 
hi, 
lo, 
fsk, 0)
 
   99            int16_t freq = 
static_cast<int16_t
>(va_arg(freqs, 
int));
 
  100            int16_t *freqp = &_frequencies->left();
 
  101            while (freq) { *freqp++ = freq; freq = 
static_cast<int16_t
>(va_arg(freqs, 
int)); }
 
  114#ifdef WHITEBOARD_POSTER_STRING_CONVERSION 
  128            ss << rms().left() << 
"/" << rms().right() << 
", ";
 
  129            ss << 
fsk().hi_freq() << 
":" << 
fsk().lo_freq() << 
"@" << 
fsk().hi_percentage();
 
  131            for (
unsigned i = 0; i < n; i++)
 
  134                if (!f.left() && !f.right())
 
  136                ss << 
", " << f.left() << 
"+" << f.right();
 
  146            vector<string> components = components_of_string_separated(str, 
',',   
true);
 
  147            size_t n = components.size();
 
  153            vector<string> rmsvals = components_of_string_separated(components[0], 
'/',   
true);
 
  154            size_t k = rmsvals.size();
 
  156            rms().set_left(
static_cast<int16_t
>(atoi(rmsvals[0].c_str())));
 
  158            rms().set_right(
static_cast<int16_t
>(atoi(rmsvals[1].c_str())));
 
  164            vector<string> fskvals = components_of_string_separated(components[1], 
':',   
true);
 
  167            fsk().set_hi_freq(
static_cast<int16_t
>(atoi(fskvals[0].c_str())));
 
  169            fsk().set_lo_freq(
static_cast<int16_t
>(atoi(fskvals[1].c_str())));
 
  170            vector<string> percentvals = components_of_string_separated(fskvals[1], 
'@',  
true);
 
  171            k = percentvals.size();
 
  172            if (k > 1) 
fsk().set_hi_percentage(
static_cast<int16_t
>(atoi(percentvals[1].c_str())));
 
  177            for (
unsigned i = 2; i < n; i++)
 
  179                vector<string> freqvals = components_of_string_separated(components[i], 
'+',   
true);
 
  183                frequency.set_left(
static_cast<int16_t
>(atoi(freqvals[0].c_str())));
 
  184                if (k > 1) frequency.set_right(
static_cast<int16_t
>(atoi(freqvals[1].c_str())));
 
  185                if (!frequency.left() && !frequency.right())
 
  193#pragma clang diagnostic pop 
Container for RMS levels and dominant frequencies.
 
FFTStatus & operator=(const FFTStatus &other)
copy assignment operator
 
FFTStatus()
default constructor
 
FFTStatus(const FFTStatus &other)
copy constructor
 
FFTStatus(const char *names)
const char *constructor
 
FFTStatus(const std::string &names)
string constructor
 
std::string description()
convert to a string
 
FFTStatus(int16_t lrms, int16_t rrms, uint16_t hi=320, uint16_t lo=200, uint16_t fsk=0,...)
alternate constructor
 
static int num_frequencies()
number of frequencies that can be put on the wb
 
void from_string(const std::string &str)
convert from a string
 
FFTStatus(int16_t lrms, int16_t rrms, uint16_t hi, uint16_t lo, uint16_t fsk, va_list freqs)
designated constructor
 
#define GU_SIMPLE_WHITEBOARD_BUFSIZE
message len (max)
 
Main FFT Analysis Structure This structure contains all the components of the FFT analysis,...
 
fsk int16_t uint16_t uint16_t uint16_t fsk
 
fsk int16_t uint16_t uint16_t lo
 
Frequency pair for a stereo channel This struct contains a single frequency pair (in Hz) for a stereo...
 
#define FSK_DEFAULT_HI
default hi frequency for fsk
 
#define FSK_DEFAULT_LO
default lo frequency for fsk
 
#define FFT_DOMINANT_NUMFREQ
no wb -> don't register size