| 120 | } |
| 121 | |
| 122 | void AudioFileWAV::writeHeaderToFileStream(const AudioThreadInputPtr& input) { |
| 123 | |
| 124 | // Based on simple wav file output code from |
| 125 | // http://www.cplusplus.com/forum/beginner/166954/ |
| 126 | |
| 127 | // Write the wav file headers |
| 128 | outputFileStream << "RIFF----WAVEfmt "; // (chunk size to be filled in later) |
| 129 | write_word(outputFileStream, 16, 4); // no extension data |
| 130 | write_word(outputFileStream, 1, 2); // PCM - integer samples |
| 131 | write_word(outputFileStream, input->channels, 2); // channels |
| 132 | write_word(outputFileStream, input->sampleRate, 4); // samples per second (Hz) |
| 133 | write_word(outputFileStream, (input->sampleRate * 16 * input->channels) / 8, 4); // (Sample Rate * BitsPerSample * Channels) / 8 |
| 134 | write_word(outputFileStream, input->channels * 2, 2); // data block size (size of integer samples, one for each channel, in bytes) |
| 135 | write_word(outputFileStream, 16, 2); // number of bits per sample (use a multiple of 8) |
| 136 | |
| 137 | // Write the data chunk header |
| 138 | dataChunkPos = outputFileStream.tellp(); |
| 139 | currentFileSize = dataChunkPos; |
| 140 | outputFileStream << "data----"; // (chunk size to be filled in later) |
| 141 | } |
| 142 | |
| 143 | void AudioFileWAV::writePayloadToFileStream(const AudioThreadInputPtr& input, size_t startInputPosition, size_t endInputPosition) { |
| 144 |
nothing calls this directly
no outgoing calls
no test coverage detected