CollectionWatcher: support EBU R 128 analysis
Again, somewhat pretty similar to the existing fingerprint analysis, we must support performing it both for the new files, and re-performing it on (some of) already-existing songs, because it might have been disabled before. Admittedly, i quite don't like some of this code, maybe this can be done in a more concise way. NOTE: this only supports scanning each separate songs. Should we ever want to support per-album loudness normalization, this will need massive changes...
This commit is contained in:
committed by
Jonas Kvinge
parent
bafcb97fa1
commit
1462bfa297
@@ -190,15 +190,19 @@ class CollectionWatcher : public QObject {
|
||||
void PerformScan(const bool incremental, const bool ignore_mtimes);
|
||||
|
||||
// Updates the sections of a cue associated and altered (according to mtime) media file during a scan.
|
||||
void UpdateCueAssociatedSongs(const QString &file, const QString &path, const QString &fingerprint, const QString &matching_cue, const QUrl &art_automatic, const SongList &old_cue_songs, ScanTransaction *t);
|
||||
SongList UpdateCueAssociatedSongs(const QString &file, const QString &path, const QString &fingerprint, const QString &matching_cue, const QUrl &art_automatic, const SongList &old_cue_songs, ScanTransaction *t);
|
||||
// Updates a single non-cue associated and altered (according to mtime) song during a scan.
|
||||
void UpdateNonCueAssociatedSong(const QString &file, const QString &fingerprint, const SongList &matching_songs, const QUrl &art_automatic, const bool cue_deleted, ScanTransaction *t);
|
||||
Song UpdateNonCueAssociatedSong(const QString &file, const QString &fingerprint, const SongList &matching_songs, const QUrl &art_automatic, const bool cue_deleted, ScanTransaction *t);
|
||||
// Scans a single media file that's present on the disk but not yet in the collection.
|
||||
// It may result in a multiple files added to the collection when the media file has many sections (like a CUE related media file).
|
||||
SongList ScanNewFile(const QString &file, const QString &path, const QString &fingerprint, const QString &matching_cue, QSet<QString> *cues_processed);
|
||||
|
||||
static void AddChangedSong(const QString &file, const Song &matching_song, const Song &new_song, ScanTransaction *t);
|
||||
|
||||
#ifdef HAVE_EBUR128
|
||||
void PerformEBUR128Analysis(SongList &songs, ScanTransaction *t);
|
||||
#endif
|
||||
|
||||
quint64 FilesCountForPath(ScanTransaction *t, const QString &path);
|
||||
quint64 FilesCountForSubdirs(ScanTransaction *t, const CollectionSubdirectoryList &subdirs, QMap<QString, quint64> &subdir_files_count);
|
||||
|
||||
@@ -221,6 +225,7 @@ class CollectionWatcher : public QObject {
|
||||
bool scan_on_startup_;
|
||||
bool monitor_;
|
||||
bool song_tracking_;
|
||||
bool song_ebur128_loudness_analysis_;
|
||||
bool mark_songs_unavailable_;
|
||||
int expire_unavailable_songs_days_;
|
||||
bool overwrite_playcount_;
|
||||
|
||||
Reference in New Issue
Block a user