1 /*************************************************************************** 2 Copyright (C) 2006-2009 Robby Stephenson <robby@periapsis.org> 3 4 ***************************************************************************/ 5 6 /*************************************************************************** 7 * * 8 * This program is free software; you can redistribute it and/or * 9 * modify it under the terms of the GNU General Public License as * 10 * published by the Free Software Foundation; either version 2 of * 11 * the License or (at your option) version 3 or any later version * 12 * accepted by the membership of KDE e.V. (or its successor approved * 13 * by the membership of KDE e.V.), which shall act as a proxy * 14 * defined in Section 14 of version 3 of the license. * 15 * * 16 * This program is distributed in the hope that it will be useful, * 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 19 * GNU General Public License for more details. * 20 * * 21 * You should have received a copy of the GNU General Public License * 22 * along with this program. If not, see <http://www.gnu.org/licenses/>. * 23 * * 24 ***************************************************************************/ 25 26 #ifndef GAMECOLLECTION_H 27 #define GAMECOLLECTION_H 28 29 #include "../collection.h" 30 31 namespace Tellico { 32 namespace Data { 33 34 /** 35 * A collection for games. 36 */ 37 class GameCollection : public Collection { 38 Q_OBJECT 39 40 public: 41 /** 42 * The constructor 43 * 44 * @param title The title of the collection 45 */ 46 explicit GameCollection(bool addDefaultFields, const QString& title = QString()); 47 type()48 virtual Type type() const Q_DECL_OVERRIDE { return Game; } 49 50 static FieldList defaultFields(); 51 52 enum GamePlatform { 53 UnknownPlatform = 0, 54 Linux, 55 MacOS, 56 Windows, 57 iOS, 58 Android, 59 Xbox, 60 Xbox360, 61 XboxOne, 62 XboxSeriesX, 63 PlayStation, 64 PlayStation2, 65 PlayStation3, 66 PlayStation4, 67 PlayStation5, 68 PlayStationPortable, 69 PlayStationVita, 70 GameBoy, 71 GameBoyColor, 72 GameBoyAdvance, 73 Nintendo, 74 SuperNintendo, 75 Nintendo64, 76 NintendoGameCube, 77 NintendoWii, 78 NintendoWiiU, 79 NintendoSwitch, 80 NintendoDS, 81 Nintendo3DS, 82 Genesis, 83 Dreamcast, 84 LastPlatform 85 }; 86 static QString normalizePlatform(const QString& platformName); 87 static GamePlatform guessPlatform(const QString& platformName); 88 static QString platformName(GamePlatform platform); 89 }; 90 91 } // end namespace 92 } // end namespace 93 #endif 94