TagArchive: add overload with ArchiveFile&
This commit is contained in:
parent
c4537fe6f6
commit
ae37e25452
@ -23,6 +23,7 @@
|
||||
#include "tag/Generic.hxx"
|
||||
#include "tag/TagHandler.hxx"
|
||||
#include "tag/TagBuilder.hxx"
|
||||
#include "archive/ArchiveFile.hxx"
|
||||
#include "fs/Path.hxx"
|
||||
#include "util/Error.hxx"
|
||||
#include "input/InputStream.hxx"
|
||||
@ -57,3 +58,15 @@ tag_archive_scan(Path path, TagBuilder &builder)
|
||||
IgnoreError()));
|
||||
return is && tag_stream_scan(*is, builder);
|
||||
}
|
||||
|
||||
bool
|
||||
tag_archive_scan(ArchiveFile &archive, const char *path_utf8,
|
||||
TagBuilder &builder)
|
||||
{
|
||||
Mutex mutex;
|
||||
Cond cond;
|
||||
|
||||
InputStreamPtr is(archive.OpenStream(path_utf8, mutex, cond,
|
||||
IgnoreError()));
|
||||
return is && tag_stream_scan(*is, builder);
|
||||
}
|
||||
|
@ -22,6 +22,7 @@
|
||||
|
||||
#include "check.h"
|
||||
|
||||
class ArchiveFile;
|
||||
class Path;
|
||||
struct TagHandler;
|
||||
class TagBuilder;
|
||||
@ -48,4 +49,16 @@ tag_archive_scan(Path path, const TagHandler &handler, void *handler_ctx);
|
||||
bool
|
||||
tag_archive_scan(Path path, TagBuilder &builder);
|
||||
|
||||
/**
|
||||
* Scan the tags of a song file inside an archive. Invokes matching
|
||||
* decoder plugins, and falls back to generic scanners (APE and ID3)
|
||||
* if no tags were found (but the file was recognized).
|
||||
*
|
||||
* @return true if the file was recognized (even if no metadata was
|
||||
* found)
|
||||
*/
|
||||
bool
|
||||
tag_archive_scan(ArchiveFile &archive, const char *path_utf8,
|
||||
TagBuilder &builder);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user