void remove_disconnected_players() { PlayerListIterator i = playerList.begin (); while (i != playerList.end ()) { IrcPlayer *player = (*i); PlayerListIterator prev = i; i++; if (player->socket == NO_SOCKET) { say_to(player->nick, "You are now disconnected from uMUD"); playerList.erase(prev); delete player; player = 0; } } /* end of looping through players */ }
int QBSoundWin::fill_sound_buffer(void* buffer,int size) { QBSoundLocker locker(&mMutex); int r = QBSound::fill_sound_buffer(buffer,size); #ifdef __USE_OGG_VORBIS__ PlayerList::iterator it = streamTrack.begin(); while(it != streamTrack.end()) { if ((*it).second->streamdone && (*it).first > 0) { delete (*it).second; streamTrack.erase(it++); } else { (*it).second->fill_sound_buffer(buffer,size,mMasterVolume); ++it; } } #endif return r; }