File indexing completed on 2024-05-05 04:49:21
0001 /**************************************************************************************** 0002 * Copyright (c) 2012 Matěj Laitl <matej@laitl.cz> * 0003 * * 0004 * This program is free software; you can redistribute it and/or modify it under * 0005 * the terms of the GNU General Public License as published by the Free Software * 0006 * Foundation; either version 2 of the License, or (at your option) any later * 0007 * version. * 0008 * * 0009 * This program is distributed in the hope that it will be useful, but WITHOUT ANY * 0010 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * 0011 * PARTICULAR PURPOSE. See the GNU General Public License for more details. * 0012 * * 0013 * You should have received a copy of the GNU General Public License along with * 0014 * this program. If not, see <http://www.gnu.org/licenses/>. * 0015 ****************************************************************************************/ 0016 0017 #include "Track.h" 0018 0019 #include "MetaValues.h" 0020 #include "core/meta/Meta.h" 0021 0022 using namespace StatSyncing; 0023 0024 Track::Track() 0025 : QSharedData() 0026 { 0027 } 0028 0029 Track::~Track() 0030 { 0031 } 0032 0033 QString 0034 Track::composer() const 0035 { 0036 return QString(); 0037 } 0038 0039 int 0040 Track::year() const 0041 { 0042 return 0; 0043 } 0044 0045 int 0046 Track::trackNumber() const 0047 { 0048 return 0; 0049 } 0050 0051 int 0052 Track::discNumber() const 0053 { 0054 return 0; 0055 } 0056 0057 bool Track::equals( const Track &other, qint64 fieldMask ) const 0058 { 0059 if( fieldMask & Meta::valTitle && name().toLower() != other.name().toLower() ) 0060 return false; 0061 if( fieldMask & Meta::valAlbum && album().toLower() != other.album().toLower() ) 0062 return false; 0063 if( fieldMask & Meta::valArtist && artist().toLower() != other.artist().toLower() ) 0064 return false; 0065 if( fieldMask & Meta::valComposer && composer().toLower() != other.composer().toLower() ) 0066 return false; 0067 if( fieldMask & Meta::valYear && year() != other.year() ) 0068 return false; 0069 if( fieldMask & Meta::valTrackNr && trackNumber() != other.trackNumber() ) 0070 return false; 0071 if( fieldMask & Meta::valDiscNr && discNumber() != other.discNumber() ) 0072 return false; 0073 return true; 0074 } 0075 0076 bool 0077 Track::lessThan( const Track &other, qint64 fieldMask ) const 0078 { 0079 // artist > year > album > discNumber > trackNumber > composer > title 0080 if( fieldMask & Meta::valArtist && artist().toLower() != other.artist().toLower() ) 0081 return artist().toLower() < other.artist().toLower(); 0082 if( fieldMask & Meta::valYear && year() != other.year() ) 0083 return year() < other.year(); 0084 if( fieldMask & Meta::valAlbum && album().toLower() != other.album().toLower() ) 0085 return album().toLower() < other.album().toLower(); 0086 if( fieldMask & Meta::valDiscNr && discNumber() != other.discNumber() ) 0087 return discNumber() < other.discNumber(); 0088 if( fieldMask & Meta::valTrackNr && trackNumber() != other.trackNumber() ) 0089 return trackNumber() < other.trackNumber(); 0090 if( fieldMask & Meta::valComposer && composer().toLower() != other.composer().toLower() ) 0091 return composer().toLower() < other.composer().toLower(); 0092 if( fieldMask & Meta::valTitle && name().toLower() != other.name().toLower() ) 0093 return name().toLower() < other.name().toLower(); 0094 return false; 0095 } 0096 0097 void 0098 Track::setRating( int rating ) 0099 { 0100 Q_UNUSED( rating ) 0101 } 0102 0103 void 0104 Track::setFirstPlayed( const QDateTime &firstPlayed ) 0105 { 0106 Q_UNUSED( firstPlayed ) 0107 } 0108 0109 void 0110 Track::setLastPlayed( const QDateTime &lastPlayed ) 0111 { 0112 Q_UNUSED( lastPlayed ) 0113 } 0114 0115 int 0116 Track::recentPlayCount() const 0117 { 0118 return 0; 0119 } 0120 0121 void 0122 Track::setPlayCount( int playCount ) 0123 { 0124 Q_UNUSED( playCount ) 0125 } 0126 0127 void 0128 Track::setLabels( const QSet<QString> &labels ) 0129 { 0130 Q_UNUSED( labels ) 0131 } 0132 0133 Meta::TrackPtr 0134 Track::metaTrack() const 0135 { 0136 return Meta::TrackPtr(); 0137 } 0138 0139 void 0140 Track::commit() 0141 { 0142 }