From 0759421d119d8d3d829978ede81683ca54d65d69 Mon Sep 17 00:00:00 2001
From: Max Kellermann <max@duempel.org>
Date: Sat, 14 Dec 2013 12:43:06 +0100
Subject: DecoderAPI: add function decoder_read_full()

Move code from the "mad" plugin.
---
 src/DecoderAPI.cxx | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

(limited to 'src/DecoderAPI.cxx')

diff --git a/src/DecoderAPI.cxx b/src/DecoderAPI.cxx
index 52b30cfb5..e4122d60e 100644
--- a/src/DecoderAPI.cxx
+++ b/src/DecoderAPI.cxx
@@ -292,6 +292,24 @@ decoder_read(Decoder *decoder,
 	return nbytes;
 }
 
+bool
+decoder_read_full(Decoder *decoder, InputStream &is,
+		  void *_buffer, size_t size)
+{
+	uint8_t *buffer = (uint8_t *)_buffer;
+
+	while (size > 0) {
+		size_t nbytes = decoder_read(decoder, is, buffer, size);
+		if (nbytes == 0)
+			return false;
+
+		buffer += nbytes;
+		size -= nbytes;
+	}
+
+	return true;
+}
+
 bool
 decoder_skip(Decoder *decoder, InputStream &is, size_t size)
 {
-- 
cgit v1.2.3