bool graph::oggopusdecoder::dispatch_cmd (const tiz::graph::cmd *p_cmd) { assert (NULL != p_cmd); if (!p_cmd->kill_thread ()) { if (p_cmd->evt ().type () == typeid(tiz::graph::load_evt)) { // Time to start the FSM TIZ_LOG (TIZ_PRIORITY_NOTICE, "Starting [%s] fsm...", get_graph_name ().c_str ()); fsm_.start (); } p_cmd->inject< fsm >(fsm_, tiz::graph::pstate); // Check for internal errors produced during the processing of the last // event. If any, inject an "internal" error event. This is fatal and shall // terminate the state machine. if (OMX_ErrorNone != p_ops_->internal_error ()) { fsm_.process_event (tiz::graph::err_evt (p_ops_->internal_error (), p_ops_->internal_error_msg ())); } if (fsm_.terminated_) { TIZ_LOG (TIZ_PRIORITY_NOTICE, "[%s] fsm terminated...", get_graph_name ().c_str ()); } } return p_cmd->kill_thread (); }
bool graph::youtube::dispatch_cmd (const tiz::graph::cmd *p_cmd) { assert (p_ops_); assert (p_cmd); if (!p_cmd->kill_thread ()) { youtubefsm::fsm *p_fsm = boost::any_cast< youtubefsm::fsm * >(fsm_); assert (p_fsm); if (p_cmd->evt ().type () == typeid(tiz::graph::load_evt)) { // Time to start the FSM TIZ_LOG (TIZ_PRIORITY_NOTICE, "Starting [%s] fsm...", get_graph_name ().c_str ()); p_fsm->start (); } p_cmd->inject< youtubefsm::fsm >(*p_fsm, tiz::graph::youtubefsm::pstate); // Check for internal errors produced during the processing of the last // event. If any, inject an "internal" error event. This is fatal and shall // terminate the state machine. if (OMX_ErrorNone != p_ops_->internal_error ()) { p_fsm->process_event (tiz::graph::err_evt ( p_ops_->internal_error (), p_ops_->internal_error_msg ())); } if (p_fsm->terminated_) { TIZ_LOG (TIZ_PRIORITY_NOTICE, "[%s] fsm terminated...", get_graph_name ().c_str ()); } } return p_cmd->kill_thread (); }