void ledDriver_observeButtonStatus(ButtonStatus_t status) { updateNextBlink(); switch(status) { case BUTTON_RELEASED: updateNextBlink(); break; case BUTTON_PUSH: startBlinking(1, 10000); break; case BUTTON_PUSH_RELEASED: // RELEASED に落ちるので、ここではなにもしない break; case BUTTON_LONG_PUSH: startBlinking(2, 10000); break; case BUTTON_LONG_PUSH_RELEASED: // RELEASED に落ちるので、ここではなにもしない break; case BUTTON_VERY_LONG_PUSH: startBlinking(3, 10000); break; case BUTTON_VERY_LONG_PUSH_RELEASED: // 長時間押したらフォーマットに落とします。 senstick_setControlCommand(formattingStorage); break; default: break; } }
void kpok::result() { int testResult = m_game.getActivePlayer(0)->testHand(); switch (testResult) { case Pair: if (m_game.getActivePlayer(0)->getHand().get_firstRank() < JACK) { displayWin(i18n("Nothing"), 0); break; } displayWin(i18n("One Pair"), 5); break; case TwoPairs: displayWin(i18n("Two Pairs"), 10); break; case ThreeOfAKind: displayWin(i18n("3 of a Kind"), 15); break; case Straight: displayWin(i18n("Straight"), 20); break; case Flush: displayWin(i18n("Flush"), 25); break; case FullHouse: displayWin(i18n("Full House"), 40); break; case FourOfAKind: displayWin(i18n("4 of a Kind"), 125); break; case StraightFlush: displayWin(i18n("Straight Flush"), 250); break; case RoyalFlush: displayWin(i18n("Royal Flush"), 2000); break; default: displayWin(i18n("Nothing"), 0); break; } startBlinking(); m_game.setState(StateStartRound); if (m_game.getActivePlayer(0)->getCash() < cashPerRound) noMoney(); }
void kpok::drawCardsEvent() { int testResult; cardW[drawStat]->show(); cardW[drawStat]->paintCard(cards[drawStat],0,0); if (!cardW[drawStat]->queryHeld()) playSound("cardflip.wav"); if (drawStat == 4) { /* just did last card */ drawButton->setEnabled(true); drawStat=0; if (status == 1) { testResult=testHand(); switch (testResult) { case 1 : if (foundCards[0].cardType >= 17) { foundCards[0].cardType=0; foundCards[1].cardType=0; displayWin(locale->translate("nothing"),0); break; } displayWin(locale->translate("One Pair"),5); break; case 2 : displayWin(locale->translate("Two Pairs"), 10); break; case 3 : displayWin(locale->translate("3 of a kind"), 15); break; case 4 : displayWin(locale->translate("Full House"), 40); break; case 6 : displayWin(locale->translate("4 of a kind"), 125); break; case 7 : displayWin(locale->translate("Straight"),20); break; case 8 : displayWin(locale->translate("Flush"),25); break; case 9 : displayWin(locale->translate("Straight Flush"),250); break; case 10 : displayWin(locale->translate("Royal Flush"),2000); break; default: displayWin(locale->translate("nothing"),0); break; } startBlinking(); status = 0; if (getCash() < cashPerRound) { KMsgBox::message(0,locale->translate("You Lost"), locale->translate("Oops - you went bankrupt.\n"), KMsgBox::EXCLAMATION,locale->translate("New game")); initPoker(); } } else { clickToHold->show(); status =1; } } else { /* only inc drawStat if not done with displaying */ drawStat++; /* look at next card and if it is held instantly call drawCardEvent again */ if (cardW[drawStat]->queryHeld()) drawTimer->start(0,TRUE); else drawTimer->start(drawDelay,TRUE); } }
SsScene3009SymbolEdges::SsScene3009SymbolEdges(NeverhoodEngine *vm, int index) : StaticSprite(vm, 1400), _blinkCountdown(0) { loadSprite(kSsScene3009SymbolEdgesFileHashes[index], kSLFDefDrawOffset | kSLFDefPosition, 600); if (getGlobalVar(V_ROBOT_HIT)) hide(); else startBlinking(); SetUpdateHandler(&SsScene3009SymbolEdges::update); }
void kpok::displayWinner_Computer(PokerPlayer* winner, bool othersPassed) { // Determine the box that contains the winner. for (unsigned int i = 0; i < m_numPlayers; i++) { if (&m_players[i] == winner) m_blinkingBox = i; } // Give the pot to the winner. winner->setCash(winner->getCash() + m_game.getPot()); m_game.setDirty(); // Generate a string with winner info and show it. QString label; if (winner->getHuman()) label = i18n("You won %1").arg(KGlobal::locale()->formatMoney(m_game.getPot())); else label = i18n("%1 won %2").arg(winner->getName()).arg(KGlobal::locale()->formatMoney(m_game.getPot())); wonLabel->setText(label); // Start the waving motion of the text. QFont waveFont; waveFont.setBold(true); waveFont.setPointSize(16); QFontMetrics tmp(waveFont); mWonWidget->setMinimumWidth(tmp.width(label) + 20); // Play a suitable sound. if (winner->getHuman()) { playSound("win.wav"); wonLabel->hide(); startWave(); } else { playSound("lose.wav"); wonLabel->show(); } m_game.clearPot(); m_game.setState(StateStartRound); drawButton->setEnabled(true); setHand(winner->getName(), false); paintCash(); // Only start blinking if player 1 is still in. if (m_game.isActivePlayer(&m_players[0]) && !othersPassed) startBlinking(); drawButton->setText(i18n("&Deal New Round")); }
static void updateNextBlink(void) { ButtonStatus_t button_status = senstick_getButtonStatus(); if(button_status == BUTTON_RELEASED) { bool isConnected = senstick_isConnected(); int period = isConnected ? 3000 : 6000; senstick_control_command_t command = senstick_getControlCommand(); int count = (command == sensorShouldWork) ? 2 : 1; startBlinking(count, period); } else { // ボタンが押されているので、何もしない, 適当にブランクタイムを設定しておく m_blank_period = 1000; } }
void parseSettings(char data[MSG_SIZE]) { int i; int settings_size; char cmdDelim[] = "#"; char *cmdParts = NULL; cmdParts = strtok( data, cmdDelim ); if (strcmp(cmdParts, "TEST") == 0) { cmdParts = strtok( NULL, cmdDelim ); if (strcmp(cmdParts, "TEST") == 0) { //INITIAL TEST printTrace("INITIAL TEST\r\n"); for (i = 0; i < 15; i++) { startBlinking(50000); } } if (strcmp(cmdParts, "START") == 0) { printTrace("TEST READING ACTIVATED\r\n"); test_read = 1; } if (strcmp(cmdParts, "STOP") == 0) { printTrace("TEST READING STOPPED\r\n"); test_read = 0; } } if (strcmp(cmdParts, "ZERO") == 0) { cmdParts = strtok( NULL, cmdDelim ); if (strcmp(cmdParts, "SET") == 0) { set_zero = pressure; } if (strcmp(cmdParts, "UNSET") == 0) { set_zero = 0; } } /* //AAT process if (strcmp(cmdParts, "DIAG") == 0) { cmdParts = strtok( NULL, cmdDelim ); if (strcmp(cmdParts, "START") == 0) { aatDiag = 1; aatDiagStep = 0; } if (strcmp(cmdParts, "STOP") == 0) { aatDiag = 0; } if (strcmp(cmdParts, "STEP4") == 0) { printTrace("DIAG#3#DONE\r\n"); AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED3); aatDiagStep = 4; diagForce = maxForce; } } if (strcmp(cmdParts, "POSITION") == 0) { // POSITION SETTING cmdParts = strtok( NULL, cmdDelim ); if (strcmp(cmdParts, "MAX") == 0) { //MAX POSITION maxPos = atoi(strtok( NULL, cmdDelim )); sprintf((char *)msg,"MAX POSITION IS SET TO: %d\r\n", maxPos); printTrace(msg); } if (strcmp(cmdParts, "MIN") == 0) { //MIN POSITION minPos = atoi(strtok( NULL, cmdDelim )); sprintf((char *)msg,"MIN POSITION IS SET TO: %d\r\n", minPos); printTrace(msg); } if (strcmp(cmdParts, "SET") == 0) { //CUR POSITION curPos = atoi(strtok( NULL, cmdDelim )); sprintf((char *)msg,"CURRENT POSITION IS SET TO: %d\r\n", curPos); printTrace(msg); } } if (strcmp(cmdParts, "FORCE") == 0) { // FORCE SETTING cmdParts = strtok( NULL, cmdDelim ); if (strcmp(cmdParts, "MAX") == 0) { //MAX FORCE maxForce = atoi(strtok( NULL, cmdDelim )); sprintf((char *)msg,"MAX FORCE IS SET TO: %d\r\n", maxForce); printTrace(msg); } if (strcmp(cmdParts, "MIN") == 0) { //MIN FORCE minForce = atoi(strtok( NULL, cmdDelim )); sprintf((char *)msg,"MIN FORCE IS SET TO: %d\r\n", minForce); printTrace(msg); } if (strcmp(cmdParts, "SET") == 0) { //CUR FORCE curForce = atoi(strtok( NULL, cmdDelim )); sprintf((char *)msg,"CURRENT FORCE IS SET TO: %d\r\n", curForce); printTrace(msg); } //AAT process if (strcmp(cmdParts, "DIAGMIN") == 0) { //CUR FORCE minDiagForce = atoi(strtok( NULL, cmdDelim )); sprintf((char *)msg,"MINIMUM DIAG FORCE IS SET TO: %d\r\n", minDiagForce); printTrace(msg); } if (strcmp(cmdParts, "DIAGLOCK") == 0) { //CUR FORCE lockDiagForce = atoi(strtok( NULL, cmdDelim )); sprintf((char *)msg,"LOCK DIAG FORCE IS SET TO: %d\r\n", lockDiagForce); printTrace(msg); } } //AAT setting if (strcmp(cmdParts, "PRESSURE") == 0) { cmdParts = strtok( NULL, cmdDelim ); if (strcmp(cmdParts, "SETLOCK") == 0) { //LOCK PRESSURE lockDiagPressure = pressure; sprintf((char *)msg,"LOCK PRESSURE IS SET TO: %d\r\n", lockDiagPressure); printTrace(msg); } } if (strcmp(cmdParts, "SETTINGS") == 0) { //SETTINGS cmdParts = strtok( NULL, cmdDelim ); if (strcmp(cmdParts, "GET") == 0) { sprintf((char *)msg,"SETTINGS: %-80s\r\n", OUR_FLASH_ADDR); printTrace(msg); } if (strcmp(cmdParts, "SET") == 0) { for(int r = 0; r < 128; r++) { settings[r] = '\0'; } sprintf((char *)settings,"POSITION#MIN#%d~POSITION#MAX#%d~POSITION#SET#%d~FORCE#MIN#%d~FORCE#MAX#%d~FORCE#SET#%d", minPos, maxPos, curPos, minForce, maxForce, curForce); settings_size = strlen(settings) + 1; flashWrite(OUR_FLASH_ADDR, settings, settings_size); printTrace(settings); sprintf((char *)msg,"\r\nWrote %d bytes to flash at address 0x%08X.\r\n", (3 + settings_size) & ~3, OUR_FLASH_ADDR); printTrace(msg); } } if (strcmp(cmdParts, "READINGS") == 0) { // READINGS cmdParts = strtok( NULL, cmdDelim ); if (strcmp(cmdParts, "START") == 0) { //START cmdParts = strtok( NULL, cmdDelim ); if (strcmp(cmdParts, "TRACE") == 0) { sprintf((char *)msg,"READINGS STARTED\r\n", maxPos); printTrace(msg); dataReading = 0; } if (strcmp(cmdParts, "DATA") == 0) { dataReading = 1; } reading = 1; } if (strcmp(cmdParts, "STOP") == 0) { //STOP sprintf((char *)msg,"READINGS STOPPED\r\n", minPos); printTrace(msg); reading = 0; } } if (strcmp(cmdParts, "VALUES") == 0) { // GET CURRENT VALUES cmdParts = strtok( NULL, cmdDelim ); if (strcmp(cmdParts, "GET") == 0) { sprintf((char *)msg,"POSITION#MIN#%d~POSITION#MAX#%d~POSITION#SET#%d~FORCE#MIN#%d~FORCE#MAX#%d~FORCE#SET#%d", minPos, maxPos, curPos, minForce, maxForce, curForce); printTrace(msg); } } if (strcmp(cmdParts, "LED") == 0) { // LEDs control cmdParts = strtok( NULL, cmdDelim ); if (strcmp(cmdParts, "RED") == 0) { //GREEN LED cmdParts = strtok( NULL, cmdDelim ); if (strcmp(cmdParts, "ON") == 0) { AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED1); } if (strcmp(cmdParts, "OFF") == 0) { AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED1); } if (strcmp(cmdParts, "SET") == 0) { AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED1); AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED2); AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED3); } } if (strcmp(cmdParts, "YELLOW") == 0) {ne MMC_SUCCESS 0x00 //YELLOW LED cmdParts = strtok( NULL, cmdDelim ); if (strcmp(cmdParts, "ON") == 0) { AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED2); } if (strcmp(cmdParts, "OFF") == 0) { AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED2); } if (strcmp(cmdParts, "SET") == 0) { AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED2); AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED1); AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED3); } } if (strcmp(cmdParts, "GREEN") == 0) { //RED LED cmdParts = strtok( NULL, cmdDelim ); if (strcmp(cmdParts, "ON") == 0) { AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED3); } if (strcmp(cmdParts, "OFF") == 0) { AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED3); } if (strcmp(cmdParts, "SET") == 0) { AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED3); AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED2); AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED1); } } if (strcmp(cmdParts, "ALLOFF") == 0) { AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED1); AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED2); AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED3); } } */ if (strcmp(cmdParts, "MMC") == 0) { cmdParts = strtok( NULL, cmdDelim ); if (strcmp(cmdParts, "READ") == 0) { //INITIAL TEST printTrace("STORED MMC VALUES:\r\n"); int blockIndex; for (blockIndex = 0; blockIndex < 2048; blockIndex++) { memset(&mmc_buffer, 0x00, 512); mmcReadBlock(blockIndex * 512, 512); pCDC.Write(&pCDC, mmc_buffer, 512); } printTrace("\r\n"); Delay(2500000); } if (strcmp(cmdParts, "CLEAR") == 0) { printTrace("CLEARING SD CARD...\r\n"); clearMMCCard(); printTrace("CLEARING DONE\r\n"); } if (strcmp(cmdParts, "START") == 0) { storingOnMMC = 1; } if (strcmp(cmdParts, "STOP") == 0) { storingOnMMC = 0; } } }