File indexing completed on 2024-04-28 16:08:19

0001 /*
0002     SPDX-FileCopyrightText: 2005 Shaheed Haque <srhaque@iee.org>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "categories.h"
0008 
0009 #include "kcddbi18n.h"
0010 
0011 class KCDDB::Categories::Private
0012 {
0013 public:
0014   QStringList cddb;
0015   QStringList i18n;
0016 };
0017 
0018 KCDDB::Categories::Categories()
0019   : d(new Private)
0020 {
0021     // These are only 11 Category values defined by CDDB. See
0022     //
0023     // http://www.freedb.org/en/faq.3.html#26
0024     //
0025     d->cddb << QLatin1String( "blues" ) << QLatin1String( "classical" ) << QLatin1String( "country" ) <<
0026         QLatin1String( "data" ) << QLatin1String( "folk" ) << QLatin1String( "jazz" ) << QLatin1String( "misc" ) <<
0027         QLatin1String( "newage" ) << QLatin1String( "reggae" ) << QLatin1String( "rock" ) << QLatin1String( "soundtrack" );
0028     d->i18n << i18n("Blues") << i18n("Classical") << i18nc("music genre", "Country") <<
0029             i18n("Data") << i18n("Folk") << i18n("Jazz") << i18n("Miscellaneous") <<
0030             i18n("New Age") << i18n("Reggae") << i18n("Rock") << i18n("Soundtrack");
0031 }
0032 
0033 KCDDB::Categories::~Categories()
0034 {
0035     delete d;
0036 }
0037 
0038 KCDDB::Categories::Categories(const Categories& other)
0039     :d(new Private)
0040 {
0041     *d = *other.d;
0042 }
0043 
0044 KCDDB::Categories& KCDDB::Categories::operator=(const Categories& other)
0045 {
0046     *d = *other.d;
0047     return *this;
0048 }
0049 
0050 const QStringList &KCDDB::Categories::cddbList() const
0051 {
0052     return d->cddb;
0053 }
0054 
0055 const QStringList &KCDDB::Categories::i18nList() const
0056 {
0057     return d->i18n;
0058 }
0059 
0060 const QString KCDDB::Categories::cddb2i18n(const QString &category) const
0061 {
0062     int index = d->cddb.indexOf(category.trimmed());
0063     if (index != -1)
0064     {
0065         return d->i18n[index];
0066     }
0067     else
0068     {
0069         return cddb2i18n(QLatin1String( "misc" ));
0070     }
0071 }
0072 
0073 const QString KCDDB::Categories::i18n2cddb(const QString &category) const
0074 {
0075     int index = d->i18n.indexOf(category.trimmed());
0076     if (index != -1)
0077     {
0078         return d->cddb[index];
0079     }
0080     else
0081     {
0082         return QLatin1String( "misc" );
0083     }
0084 }