13 inline unsigned int roundUpPow2(
unsigned int n,
unsigned int multiple)
15 return (n + multiple - 1) & ~(multiple - 1);
24 unsigned int ChannelMask()
const
26 const static uint8_t mask = 0x60;
27 return (mask & head) >> 5;
30 unsigned int Amplitude()
const
32 const static uint8_t mask = 0x18;
33 return (mask & head) >> 3;
38 const static uint8_t mask = 0x80;
42 unsigned int amplitude()
const
52 unsigned int timeInfo()
const
54 return ntohl(TimeInfo);
57 double samplingRate()
const
59 const static double conv_factor = 1e6 / 128;
60 return SamplingRate * conv_factor;
63 unsigned int audioWordSize()
const
65 unsigned int sample_size_bit = amplitude();
68 sample_size_bit <<= 1;
70 const unsigned int size_bit = sample_size_bit + 8;
80 std::ostream&
operator <<(std::ostream& stream,
const InfoWord& iw)
83 <<
"Is an InfoWord: " << iw.Mark() <<
'\n'
84 <<
"ChannelMask: " << iw.ChannelMask() <<
'\n'
85 <<
"Amplitude: " << iw.Amplitude() <<
'\n'
86 <<
"Amplitude (human): " << iw.amplitude() <<
" bit" <<
'\n'
87 <<
"Sampling rate: " << (uint32_t) iw.SamplingRate <<
'\n'
88 <<
"Sampling rate (human): " << iw.samplingRate() <<
" Hz" <<
'\n'
89 <<
"TimeInfo: " << iw.timeInfo();
95 const static unsigned char mask = 0x80;
96 const unsigned char*
const p =
static_cast<const unsigned char* const
>(
struct __attribute__((__packed__)) InfoWord
bool is_infoword(const void *const data)
alias put_queue eval echo n
static unsigned int roundUpPow2(unsigned int n, unsigned int multiple)