MCPcopy Create free account
hub / github.com/MusicPlayerDaemon/MPD / Write

Method Write

src/encoder/plugins/WaveEncoderPlugin.cxx:169–212  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

167}
168
169void
170WaveEncoder::Write(std::span<const std::byte> src)
171{
172 std::size_t length = src.size();
173 std::byte *dst = buffer.Write(length);
174
175 if (IsLittleEndian()) {
176 switch (bits) {
177 case 8:
178 case 16:
179 case 32:// optimized cases
180 memcpy(dst, src.data(), length);
181 break;
182 case 24:
183 length = pcm24_to_wave((uint8_t *)dst,
184 (const uint32_t *)(const void *)src.data(),
185 length);
186 break;
187 }
188 } else {
189 switch (bits) {
190 case 8:
191 memcpy(dst, src.data(), length);
192 break;
193 case 16:
194 length = pcm16_to_wave((uint16_t *)dst,
195 (const uint16_t *)(const void *)src.data(),
196 length);
197 break;
198 case 24:
199 length = pcm24_to_wave((uint8_t *)dst,
200 (const uint32_t *)(const void *)src.data(),
201 length);
202 break;
203 case 32:
204 length = pcm32_to_wave((uint32_t *)dst,
205 (const uint32_t *)(const void *)src.data(),
206 length);
207 break;
208 }
209 }
210
211 buffer.Append(length);
212}
213
214const EncoderPlugin wave_encoder_plugin = {
215 "wave",

Callers 1

WaveEncoderMethod · 0.45

Calls 4

pcm24_to_waveFunction · 0.85
pcm16_to_waveFunction · 0.85
pcm32_to_waveFunction · 0.85
AppendMethod · 0.45

Tested by

no test coverage detected