MCPcopy Create free account
hub / github.com/cjcliffe/CubicSDR / writePayloadToFileStream

Method writePayloadToFileStream

src/audio/AudioFileWAV.cpp:143–165  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

141}
142
143void AudioFileWAV::writePayloadToFileStream(const AudioThreadInputPtr& input, size_t startInputPosition, size_t endInputPosition) {
144
145 // Prevent clipping
146 float intScale = (input->peak < 1.0) ? 32767.0f : (32767.0f / input->peak);
147
148 if (input->channels == 1) {
149 for (size_t i = startInputPosition, iMax = endInputPosition; i < iMax; i++) {
150
151 write_word(outputFileStream, int(input->data[i] * intScale), 2);
152
153 currentFileSize += 2;
154 }
155 }
156 else if (input->channels == 2) {
157 for (size_t i = startInputPosition, iMax = endInputPosition / 2; i < iMax; i++) {
158
159 write_word(outputFileStream, int(input->data[i * 2] * intScale), 2);
160 write_word(outputFileStream, int(input->data[i * 2 + 1] * intScale), 2);
161
162 currentFileSize += 4;
163 }
164 }
165}
166
167size_t AudioFileWAV::getMaxWritableNumberOfSamples(const AudioThreadInputPtr& input) const {
168

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected