public:
explicit PictureFrame(const char *path) : stream(path, true) {}
~PictureFrame() = default;
- TagLib::ByteVector data() {
+ ByteVector data() {
return stream.readBlock(stream.length());
}
- TagLib::String mime() const {
+ String mime() const {
return __get_picture_type(stream.name());
}
bool opened() {
return MP4::CoverArt::Unknown;
}
private:
- TagLib::FileStream stream;
+ FileStream stream;
};
template <class T>
return METADATA_EDITOR_ERROR_NONE;
}
-static int __get_ogg_picture(Ogg::XiphComment *xtag, int index, void **picture, int *size, char **mime_type)
+static int __get_flac_picture(List<FLAC::Picture *> lst, int index, void **picture, int *size, char **mime_type)
{
- ME_RETVM_IF(!xtag, METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Invalid XiphComment");
-
- auto lst = xtag->pictureList();
ME_RETV_IF(!__is_valid_index(lst, index), METADATA_EDITOR_ERROR_INVALID_PARAMETER);
auto pictureFrame = static_cast<FLAC::Picture*>(lst[index]);
-
int pictureSize = pictureFrame->data().size();
ME_RETVM_IF(pictureSize == 0, METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Size of picture is 0");
auto lst = xtag->pictureList();
ME_RETV_IF(!__is_valid_index(lst, index), METADATA_EDITOR_ERROR_INVALID_PARAMETER);
- TagLib::List<TagLib::FLAC::Picture*>::Iterator it = lst.begin();
+ List<FLAC::Picture*>::Iterator it = lst.begin();
std::advance(it, index);
xtag->removePicture(*it, true);
return METADATA_EDITOR_ERROR_NONE;
}
int read(int index, void **picture, int *size, char **mime_type) override {
- auto lst = file->pictureList();
- ME_RETV_IF(!__is_valid_index(lst, index), METADATA_EDITOR_ERROR_INVALID_PARAMETER);
-
- auto pictureFrame = static_cast<FLAC::Picture*>(lst[index]);
- int pictureSize = pictureFrame->data().size();
- ME_RETVM_IF(pictureSize == 0, METADATA_EDITOR_ERROR_OPERATION_FAILED, "Size of picture is 0");
-
- *picture = g_memdup2(pictureFrame->data().data(), pictureSize);
- *size = pictureSize;
- *mime_type = g_strdup(pictureFrame->mimeType().toCString());
-
- return METADATA_EDITOR_ERROR_NONE;
+ return __get_flac_picture(file->pictureList(), index, picture, size, mime_type);
}
uint count() override {
return file->pictureList().size();
return __remove_ogg_picture(file->tag(), index);
}
int read(int index, void **picture, int *size, char **mime_type) override {
- return __get_ogg_picture(file->tag(), index, picture, size, mime_type);
+ ME_RETVM_IF(!file->tag(), METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Invalid XiphComment");
+ return __get_flac_picture(file->tag()->pictureList(), index, picture, size, mime_type);
}
uint count() override {
return file->tag() ? file->tag()->pictureList().size() : 0;
return __remove_ogg_picture(file->tag(), index);
}
int read(int index, void **picture, int *size, char **mime_type) override {
- return __get_ogg_picture(file->tag(), index, picture, size, mime_type);
+ ME_RETVM_IF(!file->tag(), METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Invalid XiphComment");
+ return __get_flac_picture(file->tag()->pictureList(), index, picture, size, mime_type);
}
uint count() override {
return file->tag() ? file->tag()->pictureList().size() : 0;
ME_RETVM_IF(key.isEmpty(), METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Invalid field_name");
ME_RETVM_IF(!value, METADATA_EDITOR_ERROR_INVALID_PARAMETER, "Invalid value");
- if (tags.isEmpty())
- return METADATA_EDITOR_ERROR_NONE;
+ ME_RETV_IF(tags.isEmpty(), METADATA_EDITOR_ERROR_NONE);
PropertyMap::ConstIterator found = tags.find(key);
return METADATA_EDITOR_ERROR_NONE;
}
-class OggFileTypeResolver : public TagLib::FileRef::FileTypeResolver {
- TagLib::File *createFile(TagLib::FileName fileName, bool, AudioProperties::ReadStyle) const {
+class OggFileTypeResolver : public FileRef::FileTypeResolver {
+ File *createFile(FileName fileName, bool, AudioProperties::ReadStyle) const {
String ext = __get_file_ext(fileName);
if (ext == "OGG") {
File *file = new Ogg::FLAC::File(fileName);