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