diff options
-rw-r--r-- | test/run_filter.cxx | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/test/run_filter.cxx b/test/run_filter.cxx index 6d8a270f0..d51461511 100644 --- a/test/run_filter.cxx +++ b/test/run_filter.cxx @@ -96,20 +96,23 @@ FullRead(FileDescriptor fd, void *_buffer, size_t size) } static void -FullWrite(FileDescriptor fd, const void *_buffer, size_t size) +FullWrite(FileDescriptor fd, ConstBuffer<uint8_t> src) { - auto buffer = (const uint8_t *)_buffer; - - while (size > 0) { - size_t nbytes = WriteOrThrow(fd, buffer, size); + while (!src.empty()) { + size_t nbytes = WriteOrThrow(fd, src.data, src.size); if (nbytes == 0) throw std::runtime_error("Write failed"); - buffer += nbytes; - size -= nbytes; + src.skip_front(nbytes); } } +static void +FullWrite(FileDescriptor fd, ConstBuffer<void> src) +{ + FullWrite(fd, ConstBuffer<uint8_t>::FromVoid(src)); +} + static size_t ReadFrames(FileDescriptor fd, void *_buffer, size_t size, size_t frame_size) { @@ -178,7 +181,7 @@ try { break; auto dest = filter->FilterPCM({(const void *)buffer, (size_t)nbytes}); - FullWrite(output_fd, dest.data, dest.size); + FullWrite(output_fd, dest); } /* cleanup and exit */ |