#include "ardour/session_metadata.h"
-#include "pbd/convert.h"
+#include "pbd/string_convert.h"
-#include "taglib/fileref.h"
-#include "taglib/flac/flacfile.h"
-#include "taglib/ogg/oggfile.h"
-#include "taglib/tag.h"
-#include "taglib/toolkit/taglib.h"
-#include "taglib/ogg/xiphcomment.h"
+#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 string to TagLib::String */
#define TL_STR(string) TagLib::String ((string).c_str(), TagLib::String::UTF8)
AudiofileTagger::tag_file (std::string const & filename, SessionMetadata const & metadata)
{
TagLib::FileRef file (filename.c_str());
+ if (file.isNull()) {
+ std::cerr << "TagLib::FileRef is null for file" << filename << std::endl;
+ return true; // continue anyway?!
+ }
+
+ if (!file.tag()) {
+ std::cerr << "TagLib::Tag is null for file" << filename << std::endl;
+ return true; // continue anyway?!
+ }
+
TagLib::Tag & tag (*file.tag());
tag_generic (tag, metadata);
tag.addField ("MIXER", TL_STR(metadata.mixer()));
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));
+ tag.addField ("DISCNUMBER", to_string (metadata.disc_number()));
// No field for total discs or tracks