Change track DB add method to give more details on failure when it happens.

This commit is contained in:
Kevin Whitaker
2017-02-08 19:47:35 -05:00
parent 71a2cd6321
commit 1a545af49f
2 changed files with 12 additions and 6 deletions

View File

@@ -405,7 +405,7 @@ AudioTrack GroovePlayerMgr::getCurrentTrack(Wt::Dbo::Session* session)
}
bool GroovePlayerMgr::addFileToTrackDBIfTagged(Wt::Dbo::Session* session, std::filesystem::path file)
GroovePlayerMgr::ScanResults GroovePlayerMgr::addFileToTrackDBIfTagged(Wt::Dbo::Session* session, std::filesystem::path file)
{
//Now check if tags exist and put into DB.
struct GrooveFile* gfile = groove_file_open(file.c_str());
@@ -418,7 +418,11 @@ bool GroovePlayerMgr::addFileToTrackDBIfTagged(Wt::Dbo::Session* session, std::f
//Only accept song with all metadata for DB.
Wt::log("info") << "Audio track " << file << " did not have all required tags.";
groove_file_close(gfile);
return false;
if(artist_tag == nullptr && album_tag != nullptr && name_tag != nullptr && genre_tag != nullptr) return ScanResults::MISSING_ARTIST_TAG;
if(artist_tag != nullptr && album_tag == nullptr && name_tag == nullptr && genre_tag == nullptr) return ScanResults::MISSING_ALBUM_TAG;
if(artist_tag != nullptr && album_tag != nullptr && name_tag == nullptr && genre_tag != nullptr) return ScanResults::MISSING_TITLE_TAG;
if(artist_tag != nullptr && album_tag != nullptr && name_tag != nullptr && genre_tag == nullptr) return ScanResults::MISSING_GENRE_TAG;
return ScanResults::MISSING_MULTIPLE_TAGS;
}
//Take fingerprint and compare to DB.
@@ -444,7 +448,7 @@ bool GroovePlayerMgr::addFileToTrackDBIfTagged(Wt::Dbo::Session* session, std::f
{
//This track has a duplicate already.
groove_file_close(gfile);
return false;
return ScanResults::DUPLICATE_TRACK;
}
//Add to DB.
@@ -463,13 +467,13 @@ bool GroovePlayerMgr::addFileToTrackDBIfTagged(Wt::Dbo::Session* session, std::f
{
Wt::log("info") << "Audio track " << newTrack->trackPath << " did not have cover art in the file.";
groove_file_close(gfile);
return false;
return ScanResults::MISSING_COVERART_TAG;
}
session->add(newTrack);
transaction.commit();
groove_file_close(gfile);
return true;
return ScanResults::ACCEPTED;
}
void GroovePlayerMgr::removeOrphanedTracks(Wt::Dbo::Session* session)