示例#1
0
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;
    }
}
示例#2
0
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();
}
示例#3
0
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);
   }
}
示例#4
0
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);
}
示例#5
0
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"));
}
示例#6
0
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;
    }
}
示例#7
0
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;
        }
    }
}