00001 /* 00002 00003 ************************************************************************* 00004 00005 ArmageTron -- Just another Tron Lightcycle Game in 3D. 00006 Copyright (C) 2000 Manuel Moos (manuel@moosnet.de) 00007 00008 ************************************************************************** 00009 00010 This program is free software; you can redistribute it and/or 00011 modify it under the terms of the GNU General Public License 00012 as published by the Free Software Foundation; either version 2 00013 of the License, or (at your option) any later version. 00014 00015 This program is distributed in the hope that it will be useful, 00016 but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 GNU General Public License for more details. 00019 00020 You should have received a copy of the GNU General Public License 00021 along with this program; if not, write to the Free Software 00022 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00023 00024 *************************************************************************** 00025 00026 tPlayList by Dave Fancella 00027 00028 */ 00029 00030 #include "tString.h" 00031 #include <deque> 00032 #include <map> 00033 00034 #ifndef TPLAYLIST_H 00035 #define TPLAYLIST_H 00036 // Playlist options 00037 00038 enum { PLAYLIST_INTERNAL, PLAYLIST_CUSTOM }; 00039 00040 class tSong { 00041 public: 00042 tSong(); 00043 tSong(tString& pathToSong); 00044 tSong(const tSong& newSong); 00045 00046 tString location; 00047 00048 tString author; 00049 tString year; 00050 tString record; 00051 tString genre; 00052 tString title; 00053 00054 std::map<tString, tString> tracklist; 00055 std::map<tString, tString> sequence; 00056 }; 00057 00058 class tPlayList { 00059 00060 public: 00061 tPlayList(); 00062 bool LoadPlaylist(const char *playlist); 00063 void Randomize(); 00064 const tSong& GetNextSong(); 00065 const tSong& GetPreviousSong(); 00066 bool empty(); 00067 void SetPlaylist(int i) { usePlaylist = i; }; 00068 00069 private: 00070 std::deque<tSong> m_Playlist; 00071 std::deque<tSong>::iterator m_CurrentSong; 00072 00073 int usePlaylist; 00074 }; 00075 00076 00077 #endif // TPLAYLIST_H