#include "global.h" #include "AnnouncerManager.h" #include "RageLog.h" #include "RageUtil.h" #include "RageFile.h" AnnouncerManager* ANNOUNCER = NULL; // global object accessable from anywhere in the program const RString EMPTY_ANNOUNCER_NAME = "Empty"; const RString ANNOUNCERS_DIR = "Announcers/"; AnnouncerManager::AnnouncerManager() { LOG->Trace("AnnouncerManager::AnnouncerManager()"); } void AnnouncerManager::GetAnnouncerNames( vector& AddTo ) { GetDirListing( ANNOUNCERS_DIR+"*", AddTo, true ); StripCvs( AddTo ); // strip out the empty announcer folder for( int i=AddTo.size()-1; i>=0; i-- ) if( !stricmp( AddTo[i], EMPTY_ANNOUNCER_NAME ) ) AddTo.erase(AddTo.begin()+i, AddTo.begin()+i+1 ); } bool AnnouncerManager::DoesAnnouncerExist( RString sAnnouncerName ) { if( sAnnouncerName == "" ) return true; vector asAnnouncerNames; GetAnnouncerNames( asAnnouncerNames ); for( unsigned i=0; iTrace( "The announcer in '%s' is missing the folder '%s'.", AnnouncerPath.c_str(), sFolderName.c_str() ); // MessageBeep( MB_OK ); RageFile temp; temp.Open( AnnouncerPath+sFolderName + "/announcer files go here.txt", RageFile::WRITE ); #endif return RString(); } RString AnnouncerManager::GetPathTo( RString sFolderName ) { return GetPathTo(m_sCurAnnouncerName, sFolderName); } bool AnnouncerManager::HasSoundsFor( RString sFolderName ) { return !DirectoryIsEmpty( GetPathTo(sFolderName) ); } void AnnouncerManager::NextAnnouncer() { vector as; GetAnnouncerNames( as ); if( as.size()==0 ) return; if( m_sCurAnnouncerName == "" ) SwitchAnnouncer( as[0] ); else { unsigned i; for( i=0; i