1 /**************************************************************************************** 2 * Copyright (c) 2007 Nikolaj Hald Nielsen <nhn@kde.org> * 3 * * 4 * This program is free software; you can redistribute it and/or modify it under * 5 * the terms of the GNU General Public License as published by the Free Software * 6 * Foundation; either version 2 of the License, or (at your option) version 3 or * 7 * any later version accepted by the membership of KDE e.V. (or its successor approved * 8 * by the membership of KDE e.V.), which shall act as a proxy defined in Section 14 of * 9 * version 3 of the license. * 10 * * 11 * This program is distributed in the hope that it will be useful, but WITHOUT ANY * 12 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * 13 * PARTICULAR PURPOSE. See the GNU General Public License for more details. * 14 * * 15 * You should have received a copy of the GNU General Public License along with * 16 * this program. If not, see <http://www.gnu.org/licenses/>. * 17 ****************************************************************************************/ 18 19 #ifndef DEFAULTMETATYPES_H 20 #define DEFAULTMETATYPES_H 21 22 #include "amarok_export.h" 23 #include "core/support/Debug.h" 24 #include "core/meta/Meta.h" 25 26 #include <KLocalizedString> 27 28 29 namespace Meta 30 { 31 32 class AMAROK_EXPORT DefaultArtist : public Meta::Artist 33 { 34 public: 35 DefaultArtist()36 DefaultArtist() {} ~DefaultArtist()37 ~DefaultArtist() override {} 38 name()39 QString name() const override { return i18nc( "The value is not known", "Unknown" ); } 40 tracks()41 TrackList tracks() override { return TrackList(); } 42 }; 43 44 class AMAROK_EXPORT DefaultAlbum : public Meta::Album 45 { 46 public: 47 DefaultAlbum()48 DefaultAlbum() 49 : Meta::Album() 50 , m_albumArtist( new DefaultArtist() ) {} ~DefaultAlbum()51 ~DefaultAlbum() override {} 52 hasAlbumArtist()53 bool hasAlbumArtist() const override { return true; } albumArtist()54 ArtistPtr albumArtist() const override { return m_albumArtist; } 55 isCompilation()56 bool isCompilation() const override { return false; } 57 name()58 QString name() const override { return i18nc( "The Value is not known", "Unknown" ); } 59 tracks()60 TrackList tracks() override { return TrackList(); } 61 62 private: 63 Meta::ArtistPtr m_albumArtist; 64 65 }; 66 67 68 class AMAROK_EXPORT DefaultComposer : public Meta::Composer 69 { 70 public: 71 DefaultComposer()72 DefaultComposer() {} ~DefaultComposer()73 ~DefaultComposer() override {} 74 name()75 QString name() const override { return i18nc( "The value is not known", "Unknown" ); } 76 tracks()77 TrackList tracks() override { return TrackList(); } 78 79 private: 80 81 static ComposerPtr s_instance; 82 83 }; 84 85 class AMAROK_EXPORT DefaultGenre : public Meta::Genre 86 { 87 public: 88 DefaultGenre()89 DefaultGenre() {} ~DefaultGenre()90 ~DefaultGenre() override {} 91 name()92 QString name() const override { return i18nc( "The value is not known", "Unknown" ); } 93 tracks()94 TrackList tracks() override { return TrackList(); } 95 96 }; 97 class AMAROK_EXPORT DefaultYear : public Meta::Year 98 { 99 public: 100 DefaultYear()101 DefaultYear() {} ~DefaultYear()102 ~DefaultYear() override {} 103 name()104 QString name() const override { return QStringLiteral("0"); } 105 tracks()106 TrackList tracks() override { return TrackList(); } 107 108 }; 109 110 } 111 112 #endif 113 114 115