コード例 #1
0
ファイル: Menu.php プロジェクト: cwcw/cms
 /**
  * Handles a key press (delegates to internal methods)
  *
  * @param Streamwide_Engine_Events_Event $event
  * @return void
  */
 public function onKeyPressed(Streamwide_Engine_Events_Event $event)
 {
     $eventType = $event->getEventType();
     $key = $event->getParam('receivedKey');
     $promptType = $event->getContextParam('promptType');
     switch ($eventType) {
         case Streamwide_Engine_Events_Event::KEY:
             $this->_handleValidKey($key, $promptType);
             break;
         case Streamwide_Engine_Events_Event::UNEXPECTED_KEY:
             $this->_handleInvalidKey($key, $promptType);
             break;
     }
 }
コード例 #2
0
ファイル: Reader.php プロジェクト: cwcw/cms
 /**
  * Deal with the 2 possible timeout types
  *
  * @param Streamwide_Engine_Events_Event $event
  * @return void
  */
 public function onTimeout(Streamwide_Engine_Events_Event $event)
 {
     $timeoutType = $event->getContextParam('timeoutType');
     if (self::TIMEOUT_FIRSTDIGIT === $timeoutType) {
         $shouldPromptOnNoInput = !empty($this->_options[self::OPT_NO_INPUT_PROMPT_PLAYLIST]);
         if ($shouldPromptOnNoInput) {
             $this->_saveTry();
             $this->_counter->decrement();
             if ($this->_counter->hasMoreTries()) {
                 $this->_listenForKeyPresses(self::PROMPT_NO_INPUT);
                 $this->_playNoInputPrompt();
             } else {
                 $this->dispatchErrorEvent(self::NO_TRIES_LEFT_ERR_CODE);
             }
         } else {
             $this->_retry();
         }
     } elseif (self::TIMEOUT_INTERDIGIT === $timeoutType) {
         $this->_timer->reset();
         $this->_mediaPlayer->reset();
         $this->_dtmfHandler->reset();
         $event = new Streamwide_Engine_Events_Event(Streamwide_Engine_Events_Event::FINISHED);
         $event->setParam('number', $this->_number);
         $this->dispatchEvent($event);
     } else {
         throw new RuntimeException('Invalid context');
     }
 }