File indexing completed on 2024-05-05 04:49:21
0001 /**************************************************************************************** 0002 * Copyright (c) 2013 Konrad Zemek <konrad.zemek@gmail.com> * 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 "SimpleTrack.h" 0018 0019 using namespace StatSyncing; 0020 0021 SimpleTrack::SimpleTrack( const Meta::FieldHash &metadata, const QSet<QString> &labels ) 0022 : m_labels( labels ) 0023 , m_metadata( metadata ) 0024 { 0025 } 0026 0027 SimpleTrack::~SimpleTrack() 0028 { 0029 } 0030 0031 QString 0032 SimpleTrack::name() const 0033 { 0034 return m_metadata.value( Meta::valTitle ).toString(); 0035 } 0036 0037 QString 0038 SimpleTrack::album() const 0039 { 0040 return m_metadata.value( Meta::valAlbum ).toString(); 0041 } 0042 0043 QString 0044 SimpleTrack::artist() const 0045 { 0046 return m_metadata.value( Meta::valArtist ).toString(); 0047 } 0048 0049 QString 0050 SimpleTrack::composer() const 0051 { 0052 return m_metadata.value( Meta::valComposer ).toString(); 0053 } 0054 0055 int 0056 SimpleTrack::year() const 0057 { 0058 return m_metadata.value( Meta::valYear ).toInt(); 0059 } 0060 0061 int 0062 SimpleTrack::trackNumber() const 0063 { 0064 return m_metadata.value( Meta::valTrackNr ).toInt(); 0065 } 0066 0067 int 0068 SimpleTrack::discNumber() const 0069 { 0070 return m_metadata.value( Meta::valDiscNr ).toInt(); 0071 } 0072 0073 QDateTime 0074 SimpleTrack::firstPlayed() const 0075 { 0076 return getDateTime( m_metadata.value( Meta::valFirstPlayed ) ); 0077 } 0078 0079 QDateTime 0080 SimpleTrack::lastPlayed() const 0081 { 0082 return getDateTime( m_metadata.value( Meta::valLastPlayed ) ); 0083 } 0084 0085 int 0086 SimpleTrack::rating() const 0087 { 0088 return m_metadata.value( Meta::valRating ).toInt(); 0089 } 0090 0091 int 0092 SimpleTrack::playCount() const 0093 { 0094 return m_metadata.value( Meta::valPlaycount ).toInt(); 0095 } 0096 0097 QSet<QString> 0098 SimpleTrack::labels() const 0099 { 0100 return m_labels; 0101 } 0102 0103 QDateTime 0104 SimpleTrack::getDateTime( const QVariant &v ) const 0105 { 0106 if( v.toDateTime().isValid() ) 0107 return v.toDateTime(); 0108 else if( v.toUInt() != 0 ) 0109 return QDateTime::fromSecsSinceEpoch( v.toUInt() ); 0110 else 0111 return QDateTime(); 0112 }