src/tools/tPlayList.h

Go to the documentation of this file.
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

Generated on Sat Mar 15 22:56:01 2008 for Armagetron Advanced by  doxygen 1.5.4