X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Faudiofile_tagger.cc;h=81ccf7a35ed92cc09130efd67df8b809a9e305ac;hb=a107b95307658af9f881e453362c1388ffac2463;hp=7391bf9ae3171fc9bce77445552dc8513131ca74;hpb=f2b007195cd75b195e38a4cd7757debac73e7792;p=ardour.git diff --git a/libs/ardour/audiofile_tagger.cc b/libs/ardour/audiofile_tagger.cc index 7391bf9ae3..81ccf7a35e 100644 --- a/libs/ardour/audiofile_tagger.cc +++ b/libs/ardour/audiofile_tagger.cc @@ -18,18 +18,21 @@ */ -#include +#include "ardour/audiofile_tagger.h" -#include +#include "ardour/session_metadata.h" -#include +#include "pbd/convert.h" -#include -#include -#include +#include "taglib/fileref.h" +#include "taglib/flacfile.h" +#include "taglib/oggfile.h" +#include "taglib/tag.h" +#include "taglib/taglib.h" +#include "taglib/xiphcomment.h" -/* Convert Glib::ustring to TagLib::String */ -#define TL_STR(ustring) TagLib::String ((ustring).c_str(), TagLib::String::UTF8) +/* Convert string to TagLib::String */ +#define TL_STR(string) TagLib::String ((string).c_str(), TagLib::String::UTF8) using namespace PBD; @@ -41,11 +44,11 @@ AudiofileTagger::tag_file (string const & filename, SessionMetadata const & meta { TagLib::FileRef file (filename.c_str()); TagLib::Tag & tag (*file.tag()); - + tag_generic (tag, metadata); - + /* FLAC */ - + TagLib::FLAC::File * flac_file; if ((flac_file = dynamic_cast (file.file()))) { TagLib::Ogg::XiphComment * vorbis_tag; @@ -55,9 +58,9 @@ AudiofileTagger::tag_file (string const & filename, SessionMetadata const & meta std::cerr << "Could not get Xiph comment for FLAC file!" << std::endl; } } - + /* Ogg */ - + TagLib::Ogg::File * ogg_file; if ((ogg_file = dynamic_cast (file.file()))) { TagLib::Ogg::XiphComment * vorbis_tag; @@ -67,7 +70,7 @@ AudiofileTagger::tag_file (string const & filename, SessionMetadata const & meta std::cerr << "Could not get Xiph comment for Ogg file!" << std::endl; } } - + file.save(); return true; } @@ -82,7 +85,7 @@ AudiofileTagger::tag_generic (TagLib::Tag & tag, SessionMetadata const & metadat tag.setGenre (TL_STR(metadata.genre())); tag.setYear (metadata.year()); tag.setTrack (metadata.track_number()); - + return true; } @@ -106,7 +109,7 @@ AudiofileTagger::tag_vorbis_comment (TagLib::Ogg::XiphComment & tag, SessionMeta tag.addField ("COMPILATION", TL_STR(metadata.compilation())); tag.addField ("DISCSUBTITLE", TL_STR(metadata.disc_subtitle())); tag.addField ("DISCNUMBER", to_string (metadata.disc_number(), std::dec)); - + // No field for total discs or tracks return true;