From b384921bfa4400685d729d10db46c2a59ce3752a Mon Sep 17 00:00:00 2001 From: Uwe Klotz Date: Sat, 21 Mar 2020 12:02:52 +0100 Subject: Use new PCM audio property types --- src/library/autodj/autodjprocessor.cpp | 2 +- src/library/dao/trackdao.cpp | 83 ++++++++++++++++------------------ src/library/dlgtrackinfo.cpp | 2 +- 3 files changed, 42 insertions(+), 45 deletions(-) (limited to 'src/library') diff --git a/src/library/autodj/autodjprocessor.cpp b/src/library/autodj/autodjprocessor.cpp index 9f96a1b1d1..73aa03acee 100644 --- a/src/library/autodj/autodjprocessor.cpp +++ b/src/library/autodj/autodjprocessor.cpp @@ -15,7 +15,7 @@ const char* kTransitionModePreferenceName = "TransitionMode"; const double kTransitionPreferenceDefault = 10.0; const double kKeepPosition = -1.0; -const mixxx::AudioSignal::ChannelCount kChannelCount = mixxx::kEngineChannelCount; +const mixxx::audio::ChannelCount kChannelCount = mixxx::kEngineChannelCount; static const bool sDebug = false; } // anonymous namespace diff --git a/src/library/dao/trackdao.cpp b/src/library/dao/trackdao.cpp index 32d0beba39..9ff89c781f 100644 --- a/src/library/dao/trackdao.cpp +++ b/src/library/dao/trackdao.cpp @@ -355,18 +355,20 @@ void TrackDAO::addTracksPrepare() { m_pQueryLibraryInsert->prepare("INSERT INTO library " "(" "artist,title,album,album_artist,year,genre,tracknumber,tracktotal,composer," - "grouping,filetype,location,color,comment,url,duration,rating,key,key_id," - "bitrate,samplerate,cuepoint,bpm,replaygain,replaygain_peak,wavesummaryhex," - "timesplayed,played,channels,mixxx_deleted,header_parsed," + "grouping,filetype,location,color,comment,url,rating,key,key_id," + "cuepoint,bpm,replaygain,replaygain_peak,wavesummaryhex," + "timesplayed,played,mixxx_deleted,header_parsed," + "channels,samplerate,bitrate,duration," "beats_version,beats_sub_version,beats,bpm_lock," "keys_version,keys_sub_version,keys," "coverart_source,coverart_type,coverart_location,coverart_hash," "datetime_added" ") VALUES (" ":artist,:title,:album,:album_artist,:year,:genre,:tracknumber,:tracktotal,:composer," - ":grouping,:filetype,:location,:color,:comment,:url,:duration,:rating,:key,:key_id," - ":bitrate,:samplerate,:cuepoint,:bpm,:replaygain,:replaygain_peak,:wavesummaryhex," - ":timesplayed,:played,:channels,:mixxx_deleted,:header_parsed," + ":grouping,:filetype,:location,:color,:comment,:url,:rating,:key,:key_id," + ":cuepoint,:bpm,:replaygain,:replaygain_peak,:wavesummaryhex," + ":timesplayed,:played,:mixxx_deleted,:header_parsed," + ":channels,:samplerate,:bitrate,:duration," ":beats_version,:beats_sub_version,:beats,:bpm_lock," ":keys_version,:keys_sub_version,:keys," ":coverart_source,:coverart_type,:coverart_location,:coverart_hash," @@ -434,15 +436,15 @@ namespace { pTrackLibraryQuery->bindValue(":color", mixxx::RgbColor::toQVariant(track.getColor())); pTrackLibraryQuery->bindValue(":comment", track.getComment()); pTrackLibraryQuery->bindValue(":url", track.getURL()); - pTrackLibraryQuery->bindValue(":duration", track.getDuration()); pTrackLibraryQuery->bindValue(":rating", track.getRating()); - pTrackLibraryQuery->bindValue(":bitrate", track.getBitrate()); - pTrackLibraryQuery->bindValue(":samplerate", track.getSampleRate()); pTrackLibraryQuery->bindValue(":cuepoint", track.getCuePoint().getPosition()); pTrackLibraryQuery->bindValue(":bpm_lock", track.isBpmLocked()? 1 : 0); pTrackLibraryQuery->bindValue(":replaygain", track.getReplayGain().getRatio()); - pTrackLibraryQuery->bindValue(":replaygain_peak", track.getReplayGain().getPeak()); + pTrackLibraryQuery->bindValue(":channels", track.getChannels()); + pTrackLibraryQuery->bindValue(":samplerate", track.getSampleRate()); + pTrackLibraryQuery->bindValue(":bitrate", track.getBitrate()); + pTrackLibraryQuery->bindValue(":duration", track.getDuration()); pTrackLibraryQuery->bindValue(":header_parsed", track.isMetadataSynchronized() ? 1 : 0); @@ -973,30 +975,12 @@ bool setTrackUrl(const QSqlRecord& record, const int column, return false; } -bool setTrackDuration(const QSqlRecord& record, const int column, - TrackPointer pTrack) { - pTrack->setDuration(record.value(column).toDouble()); - return false; -} - -bool setTrackBitrate(const QSqlRecord& record, const int column, - TrackPointer pTrack) { - pTrack->setBitrate(record.value(column).toInt()); - return false; -} - bool setTrackRating(const QSqlRecord& record, const int column, TrackPointer pTrack) { pTrack->setRating(record.value(column).toInt()); return false; } -bool setTrackSampleRate(const QSqlRecord& record, const int column, - TrackPointer pTrack) { - pTrack->setSampleRate(record.value(column).toInt()); - return false; -} - bool setTrackCuePoint(const QSqlRecord& record, const int column, TrackPointer pTrack) { pTrack->setCuePoint(CuePosition(record.value(column).toDouble())); @@ -1035,12 +1019,6 @@ bool setTrackPlayed(const QSqlRecord& record, const int column, return false; } -bool setTrackChannels(const QSqlRecord& record, const int column, - TrackPointer pTrack) { - pTrack->setChannels(record.value(column).toInt()); - return false; -} - bool setTrackDateAdded(const QSqlRecord& record, const int column, TrackPointer pTrack) { pTrack->setDateAdded(record.value(column).toDateTime()); @@ -1059,6 +1037,22 @@ bool setTrackMetadataSynchronized(const QSqlRecord& record, const int column, return false; } +bool setTrackAudioProperties( + const QSqlRecord& record, + const int firstColumn, + TrackPointer pTrack) { + const auto channels = record.value(firstColumn).toInt(); + const auto samplerate = record.value(firstColumn + 1).toInt(); + const auto bitrate = record.value(firstColumn + 2).toInt(); + const auto duration = record.value(firstColumn + 3).toDouble(); + pTrack->setAudioProperties( + mixxx::audio::ChannelCount(channels), + mixxx::audio::SampleRate(samplerate), + mixxx::audio::Bitrate(bitrate), + mixxx::Duration::fromSeconds(duration)); + return false; +} + bool setTrackBeats(const QSqlRecord& record, const int column, TrackPointer pTrack) { double bpm = record.value(column).toDouble(); @@ -1161,18 +1155,21 @@ TrackPointer TrackDAO::getTrackById(TrackId trackId) const { { "color", setTrackColor }, { "comment", setTrackComment }, { "url", setTrackUrl }, - { "duration", setTrackDuration }, - { "bitrate", setTrackBitrate }, - { "samplerate", setTrackSampleRate }, { "cuepoint", setTrackCuePoint }, { "replaygain", setTrackReplayGainRatio }, { "replaygain_peak", setTrackReplayGainPeak }, - { "channels", setTrackChannels }, { "timesplayed", setTrackTimesPlayed }, { "played", setTrackPlayed }, { "datetime_added", setTrackDateAdded }, { "header_parsed", setTrackMetadataSynchronized }, + // Audio properties are set together at once. Do not change the + // ordering of these columns or put other columns in between them! + { "channels", setTrackAudioProperties }, + { "samplerate", nullptr }, + { "bitrate", nullptr }, + { "duration", nullptr }, + // Beat detection columns are handled by setTrackBeats. Do not change // the ordering of these columns or put other columns in between them! { "bpm", setTrackBeats }, @@ -1397,21 +1394,21 @@ bool TrackDAO::updateTrack(Track* pTrack) { "color=:color," "comment=:comment," "url=:url," - "duration=:duration," "rating=:rating," "key=:key," "key_id=:key_id," - "bitrate=:bitrate," - "samplerate=:samplerate," "cuepoint=:cuepoint," "bpm=:bpm," "replaygain=:replaygain," "replaygain_peak=:replaygain_peak," "timesplayed=:timesplayed," "played=:played," - "channels=:channels," "header_parsed=:header_parsed," - "beats_version=:beats_version," + "channels=:channels," + "bitrate=:bitrate," + "samplerate=:samplerate," + "bitrate=:bitrate," + "duration=:duration," "beats_sub_version=:beats_sub_version," "beats=:beats," "bpm_lock=:bpm_lock," diff --git a/src/library/dlgtrackinfo.cpp b/src/library/dlgtrackinfo.cpp index 4f0398b288..4de6b7905e 100644 --- a/src/library/dlgtrackinfo.cpp +++ b/src/library/dlgtrackinfo.cpp @@ -176,7 +176,7 @@ void DlgTrackInfo::populateFields(const Track& track) { txtDuration->setText(track.getDurationText(mixxx::Duration::Precision::SECONDS)); txtLocation->setText(QDir::toNativeSeparators(track.getLocation())); txtType->setText(track.getType()); - txtBitrate->setText(QString(track.getBitrateText()) + (" ") + tr(mixxx::AudioSource::Bitrate::unit())); + txtBitrate->setText(QString(track.getBitrateText()) + (" ") + tr(mixxx::audio::Bitrate::unit())); txtBpm->setText(track.getBpmText()); m_keysClone = track.getKeys(); txtKey->setText(KeyUtils::getGlobalKeyText(m_keysClone)); -- cgit v1.2.3