sample_t
template<typename sample_t>
fill_buffer(void* buffer, int32 count, sample_t value)
sample_t* buf = (sample_t*)buffer;
sample_t* bufferEnd = buf + count;
for (sample_t outFrame = 0; outFrame < frames; outFrame++) {
sample_t outTime = outFrame / outFrameRate;
sample_t inTime1 = (sample_t)inFrame / inFrameRate;
sample_t inTime2 = (sample_t)(inFrame + 1) / inFrameRate;
sample_t timeDiff1 = outTime - inTime1;
sample_t timeDiff2 = inTime2 - outTime;
sample_t timeDiff = timeDiff1 + timeDiff2;
inline sample_t ReadSample() const {
return (sample_t)*((short*)fBuffer) / (sample_t)32767;
inline void WriteSample(sample_t value) {
*((short*)fBuffer) = short(value * (sample_t)32767);
template<typename sample_t>
inline sample_t ReadSample() const {
return ((sample_t)*((uchar*)fBuffer) - 128) / (sample_t)127;
inline void WriteSample(sample_t value) {
*((uchar*)fBuffer) = uchar(value * (sample_t)127 + 128);
template<typename sample_t>
inline sample_t ReadSample() const {
return (sample_t)*((char*)fBuffer) / (sample_t)127;
inline void WriteSample(sample_t value) {
*((uchar*)fBuffer) = uchar(value * (sample_t)127);
template<typename sample_t>
inline sample_t ReadSample() const {
inline void WriteSample(sample_t value) {
template<typename sample_t>
inline sample_t ReadSample() const {
return (sample_t)*((int*)fBuffer) / (sample_t)0x7fffffff;
inline void WriteSample(sample_t value) {
*((int*)fBuffer) = int(value * (sample_t)0x7fffffff);
template<typename sample_t>