aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/decoder/FLACDecoderPlugin.cxx10
-rw-r--r--src/decoder/FLACMetaData.cxx12
-rw-r--r--src/decoder/FLACMetaData.hxx2
3 files changed, 12 insertions, 12 deletions
diff --git a/src/decoder/FLACDecoderPlugin.cxx b/src/decoder/FLACDecoderPlugin.cxx
index 5de0ccef3..6bcc26c17 100644
--- a/src/decoder/FLACDecoderPlugin.cxx
+++ b/src/decoder/FLACDecoderPlugin.cxx
@@ -373,15 +373,7 @@ oggflac_scan_file(const char *file,
return false;
}
- FLACMetadataIterator iterator(chain);
- do {
- FLAC__StreamMetadata *block = iterator.GetBlock();
- if (block == nullptr)
- break;
-
- flac_scan_metadata(block, handler, handler_ctx);
- } while (iterator.Next());
-
+ chain.Scan(handler, handler_ctx);
return true;
}
diff --git a/src/decoder/FLACMetaData.cxx b/src/decoder/FLACMetaData.cxx
index 56c8a2764..8d70f149e 100644
--- a/src/decoder/FLACMetaData.cxx
+++ b/src/decoder/FLACMetaData.cxx
@@ -250,7 +250,15 @@ flac_scan_file2(const char *file,
return false;
}
- FLACMetadataIterator iterator(chain);
+ chain.Scan(handler, handler_ctx);
+ return true;
+}
+
+void
+FLACMetadataChain::Scan(const struct tag_handler *handler, void *handler_ctx)
+{
+ FLACMetadataIterator iterator(*this);
+
do {
FLAC__StreamMetadata *block = iterator.GetBlock();
if (block == nullptr)
@@ -258,6 +266,4 @@ flac_scan_file2(const char *file,
flac_scan_metadata(block, handler, handler_ctx);
} while (iterator.Next());
-
- return true;
}
diff --git a/src/decoder/FLACMetaData.hxx b/src/decoder/FLACMetaData.hxx
index d474def62..67dc9fcd7 100644
--- a/src/decoder/FLACMetaData.hxx
+++ b/src/decoder/FLACMetaData.hxx
@@ -58,6 +58,8 @@ public:
const char *GetStatusString() const {
return FLAC__Metadata_ChainStatusString[GetStatus()];
}
+
+ void Scan(const struct tag_handler *handler, void *handler_ctx);
};
class FLACMetadataIterator {