int main(int argc, char **argv) { StreamPlayer *player; int i; /* Print out usage if no file was specified */ if(argc < 2) { fprintf(stderr, "Usage: %s <filenames...>\n", argv[0]); return 1; } if(InitAL() != 0) return 1; if(alIsExtensionPresent("AL_SOFT_buffer_samples")) { printf("AL_SOFT_buffer_samples supported!\n"); alBufferSamplesSOFT = alGetProcAddress("alBufferSamplesSOFT"); alIsBufferFormatSupportedSOFT = alGetProcAddress("alIsBufferFormatSupportedSOFT"); } else printf("AL_SOFT_buffer_samples not supported\n"); player = NewPlayer(); /* Play each file listed on the command line */ for(i = 1;i < argc;i++) { if(!OpenPlayerFile(player, argv[i])) continue; printf("Playing %s (%s, %s, %dhz)\n", argv[i], TypeName(player->type), ChannelsName(player->channels), player->rate); fflush(stdout); if(!StartPlayer(player)) { ClosePlayerFile(player); continue; } while(UpdatePlayer(player)) Sleep(10); /* All done with this file. Close it and go to the next */ ClosePlayerFile(player); } printf("Done.\n"); /* All files done. Delete the player, and close OpenAL */ DeletePlayer(player); player = NULL; CloseAL(); return 0; }
/************************ * End * Termina una multiconferencia *************************/ int MultiConf::End() { Log(">End multiconf\n"); //End watchers StopBroadcaster(); //End mixers audioMixer.EndMixer(watcherId); textMixer.EndMixer(watcherId); //Stop encoding audioEncoder.StopEncoding(); textEncoder.StopEncoding(); //End encoders audioEncoder.End(); textEncoder.End(); //End mixers audioMixer.DeleteMixer(watcherId); textMixer.DeleteMixer(watcherId); //Get lock participantsLock.WaitUnusedAndLock(); //Destroy all participants for(Participants::iterator it=participants.begin(); it!=participants.end(); it++) //Destroy it DestroyParticipant(it->first,it->second); //Clear list participants.clear(); //Unlock participantsLock.Unlock(); //Remove all players while(players.size()>0) //Delete the first one DeletePlayer(players.begin()->first); Log("-End conference mixers\n"); //Terminamos los mixers videoMixer.End(); audioMixer.End(); textMixer.End(); //No inicado inited = 0; Log("<End multiconf\n"); }
int32_t CRoom::DeleteAllPlayers() { RoleID arrRoleID[MaxUserCountPerRoom]; int32_t nPlayerCount = 0; GetAllPlayers(arrRoleID, MaxUserCountPerRoom, nPlayerCount); for(int32_t i = 0; i < nPlayerCount; ++i) { DeletePlayer(arrRoleID[i]); } return S_OK; }
void War2Wiz::ReceiveDisconnect ( JBroadcaster* sender, const JBoolean timeout ) { JIndex senderIndex; GetSender(sender, &senderIndex); DeletePlayer(senderIndex); ostrstream data; data << senderIndex << ' ' << timeout; SendMessage(kWWAllPlayersIndex, kWWPlayerLeft, data); }
int main(int argc, char* argv[]) { struct Library *RealTimeBase = OpenLibrary("realtime.library", 40); struct Hook myHook; struct TagItem tags[] = { { PLAYER_Name , (IPTR)"Test player" }, { PLAYER_Hook , (IPTR)&myHook }, { PLAYER_Conductor, (IPTR)"Test conductor" }, { TAG_DONE , (IPTR)NULL } }; struct Player *player; myHook.h_Entry = (HOOKFUNC)myFunc; myHook.h_SubEntry = NULL; myHook.h_Data = NULL; if (RealTimeBase == NULL) { printf("Couldn't open realtime.library\n"); exit(1); } player = CreatePlayerA(tags); if (player == NULL) { printf("Couldn't create player\n"); CloseLibrary(RealTimeBase); exit(1); } SetConductorState(player, CONDSTATE_RUNNING, 0); { struct TagItem tags[] = { { PLAYER_Ready, TRUE }, { TAG_DONE, 0 } }; SetPlayerAttrsA(player, tags); } Wait(SIGBREAKF_CTRL_C); DeletePlayer(player); CloseLibrary(RealTimeBase); return 0; }
int main() { PlayerList players; if (!Read(players)) Save(players); // creates an empty file while (true) { std::cout << "*** Euromilhoes - Gestao de Jogadores ***" << std::endl << std::endl; std::cout << "Introduza a letra respectiva:" << std::endl; std::cout << "R - Registar um jogador." << std::endl; std::cout << "C - Consultar o saldo de um jogador." << std::endl; std::cout << "A - Carregar saldo de um jogador." << std::endl; std::cout << "E - Eliminar um jogador." << std::endl; std::cout << "L - Listar jogadores." << std::endl; std::cout << "S - Sair." << std::endl; char task = ReadVal<char>(""); std::cout << std::endl; switch(ToUpper(task)) { case RegisterPlayer: { std::cout << "* Registar jogador" << std::endl; std::string name = ReadString("Nome: ", NAME_WIDTH - 1); double amount = ReadVal<double>("Saldo inicial: "); int id = CreatePlayer(players, name, amount); std::cout << "Sucesso, atribuido numero " << id << "." << std::endl; std::cout << std::endl; break; } case CheckBalance: { std::cout << "* Consultar saldo" << std::endl; int id = ReadVal<int>("Numero do jogador: "); if (Player* player = SearchPlayerById(players, id)) std::cout << "Saldo de " << player->Name << ": " << std::fixed << std::setprecision(2) << player->Balance << "E." << std::endl; else std::cout << "Jogador " << id << " nao encontrado." << std::endl; std::cout << std::endl; break; } case IncreaseBalance: { std::cout << "* Aumentar saldo" << std::endl; int id = ReadVal<int>("Numero do jogador: "); if (Player* player = SearchPlayerById(players, id)) { double amount = ReadVal<double>("Quantidade: "); double oldAmount = player->Balance; if (IncreasePlayerBalance(player, amount)) { std::cout << player->Name << ": anterior: " << oldAmount << "E, aumento: "; std::cout << amount << "E, actual: " << player->Balance << "E." << std::endl; } else std::cout << "Valor invalido." << std::endl; } else std::cout << "Jogador " << id << " nao encontrado." << std::endl; std::cout << std::endl; break; } case RemovePlayer: { std::cout << "* Remove jogador" << std::endl; int id = ReadVal<int>("Numero do jogador: "); if (Player* player = SearchPlayerById(players, id)) { std::string name = player->Name; DeletePlayer(players, id); std::cout << "Jogador " << name << " eliminado." << std::endl; } else std::cout << "Jogador " << id << " nao encontrado." << std::endl; std::cout << std::endl; break; } case ListPlayers: { std::cout << "* Lista de jogadores" << std::endl; if (players.first.size() == 0) std::cout << "Lista de jogadores vazia." << std::endl; else for (size_t i = 0; i < players.first.size(); ++i) { std::cout << "|"; char prevFill = std::cout.fill(ID_FILL_CHAR); std::streamsize prevWidth = std::cout.width(ID_WIDTH); std::cout << std::right << players.first[i].Id; std::cout.fill(prevFill); std::cout.width(prevWidth); prevWidth = std::cout.width(NAME_WIDTH); std::cout << std::left << "| " << players.first[i].Name << " |" << std::endl; std::cout.width(prevWidth); } std::cout << std::endl; break; } case Exit: { char answer = ReadVal<char>("Tem a certeza que deseja sair (S/N)? "); if (ToUpper(answer) == 'S') ExitAndSave(players); else if (ToUpper(answer) == 'N') break; else std::cout << std::endl; // Fall to default } default: { std::cout << "Opcao invalida. Por favor, tente outra vez." << std::endl; break; } } PauseScreen(); ClearScreen(); } PauseScreen(); }