void RCTCHandler::createMessage(rctc::Message& msg)
{
  msg.teamID = getPlayerInfo().gameData.teamNumber;
  msg.playerID = getPlayerInfo().gameData.playerNumber;
  msg.goalieID = 1;
  
  if(getPlayerInfo().isPlayingStriker)
  {
    msg.mabID = getPlayerInfo().gameData.playerNumber;
  }
  else
  {
    msg.mabID = 0;
  }

  if(getFrameInfo().getTimeSince(getBallModel().frameInfoWhenBallWasSeen.getTime()) < 3000)
  {
    msg.ballPosX = (int16_t)getBallModel().position.x;
    msg.ballPosY = (int16_t)getBallModel().position.y;
  }
  else
  {
    msg.ballPosX = 0;
    msg.ballPosY = 0;
  }
}//end createMessage
Esempio n. 2
0
struct BotThinkFunc* botRun(struct BotState* state){
	static int runNextPulse = 0;
	static const int runPulseTimeout = 25;

	if( runNextPulse < qbTickCount() ) {
		qbLog("heartbeat");
		//memset(&state->gs, 0, sizeof(state->gs));
		qbGetGameState(&state->gs);
		if(!begun)
		{
			learner.set_num_features(22);
			learner.set_eta(0.1);
			learner.init(0.1, 0.3, 0.0);
			qbLog("Before tick: %d", qbTickCount());
			getPlayerInfo(&state->gs, state->name);
			getItemIndices(state->gs);
			qbMovementOrder(zero_a, zero_v, 0);
			qbLog("After tick: %d", qbTickCount());
			begun = true;
		}
		qbLog("Before time: %d", qbTickCount());
		//parseItems(state->gs);
		getClosestEntities(state->gs);
		qbLog("getting next action");
		int action = learner.learning_step(&state->gs, closest_entities, get_reward(state->gs));
		if(state->gs.player.health < 0)
		{
			qbMovementOrder(zero_a, forward_v, 1);
			getPlayerInfo(&state->gs, state->name);
			getItemIndices(state->gs);
			state->gs.player.angle = 0.0;
			num_deaths++;
		}
		else
		{
			perform_action(&state->gs, action);
		}
		//qbMovementOrder(zero_a, forward_v, 1);
		//LogPlayerInfo(state->gs);
		qbLog("After time: %d", qbTickCount());
		//populateItemList(state->gs);
		//parseEntities(state->gs);
		//runTowardEntity(1, state->gs);
		runNextPulse = qbTickCount() + runPulseTimeout;
	}
/*
#ifdef WIN32
	Sleep(QB_MIN_FRAMETIME);
#else
	usleep(QB_MIN_FRAMETIME * 1000);
#endif*/
	return NULL;
}
void RCTCHandler::execute()
{

  // read
  for(unsigned int i = 0; i < getRCTCTeamMessageDataIn().data.size(); i++)
  {
    const rctc::Message& msg = getRCTCTeamMessageDataIn().data[i];

    if (  msg.teamID == getPlayerInfo().gameData.teamNumber && 
      !(msg.playerID == getPlayerInfo().gameData.playerNumber))
    {
      TeamMessage::Data& content = getTeamMessage().data[msg.playerID];
      content.frameInfo.setTime( getFrameInfo().getTime() );
      
      //HACK: convert to protobuf message
      content.message.set_teamnumber(msg.teamID);
      content.message.set_playernumber(msg.playerID);

      content.message.set_wasstriker(msg.mabID > 0);

      if(msg.ballPosX > 0 && msg.ballPosY > 0)
      {
        content.message.mutable_ballposition()->set_x(msg.ballPosX);
        content.message.mutable_ballposition()->set_y(msg.ballPosY);
        content.message.set_timesinceballwasseen(0);
      }
      else
      {
        // very long
        content.message.set_timesinceballwasseen(10000000);
      }

    }//end if
  }//end for


  // only send data in intervals of 500ms
  if((unsigned int)getFrameInfo().getTimeSince(lastSentTimestamp) > send_interval)
  {
    // send data
    createMessage(getRCTCTeamMessageDataOut().data);
    getRCTCTeamMessageDataOut().valid = true;

    lastSentTimestamp = getFrameInfo().getTime();
  }
  else
  {
    getRCTCTeamMessageDataOut().valid = false;
  }
}//end execute
Esempio n. 4
0
const PlayerGameCommands& NWFInfo::getPlayerCmds(unsigned playerId) const
{
    const NWFPlayerInfo& player = getPlayerInfo(playerId);
    if(player.commands.empty())
        throw std::runtime_error("Player is not ready yet");
    return player.commands.front();
}
Esempio n. 5
0
TeamID LobbyInfo::getPlayerTeamId(PlayerColor color)
{
	if(color < PlayerColor::PLAYER_LIMIT)
		return getPlayerInfo(color.getNum()).team;
	else
		return TeamID::NO_TEAM;
}
Esempio n. 6
0
// ----------------------------------------------------------------------------
//
void MusicPlayer::initialize( ) 
{
    m_library = LoadLibrary( m_dll_path );
    STUDIO_ASSERT( m_library, "Unable to load music controller DLL '%s'", m_dll_path );

    GetPlayerApiVersion pGetPlayerApiVersion = getAddress<GetPlayerApiVersion>( "GetPlayerApiVersion" );
    STUDIO_ASSERT( (*pGetPlayerApiVersion)() == 2, "Music controller version is not compatible" );

    m_GetPlayerInfo = getAddress<GetPlayerInfo>( "GetPlayerInfo" );
    m_Connect = getAddress<Connect>( "Connect" );
    m_Disconnect = getAddress<Disconnect>( "Disconnect" );
    m_RegisterEventListener = getAddress<RegisterEventListener>( "RegisterEventListener" );
    m_UnregisterEventListener = getAddress<UnregisterEventListener>( "UnregisterEventListener" );
    m_Signon = getAddress<Signon>( "Signon" );
	m_AcceptAuthorization = getAddress<AcceptAuthorization>( "AcceptAuthorization" );
	m_IsLoggedIn = getAddress<IsLoggedIn>( "IsLoggedIn" );

    m_GetPlaylists = getAddress<GetPlaylists>( "GetPlaylists" );
    m_GetPlaylistInfo = getAddress<GetPlaylistInfo>( "GetPlaylistInfo" );
    m_GetTracks = getAddress<GetTracks>( "GetTracks" );
	m_SearchTracks = getAddress<SearchTracks>( "SearchTracks" );
    m_QueueTrack = getAddress<QueueTrack>( "QueueTrack" );
    m_PlayTrack = getAddress<PlayTrack>( "PlayTrack" );
    m_PlayAllTracks = getAddress<PlayAllTracks>( "PlayAllTracks" );
    m_ForwardTrack = getAddress<ForwardTrack>( "ForwardTrack" );
    m_BackTrack = getAddress<BackTrack>( "BackTrack" );
    m_StopTrack = getAddress<StopTrack>( "StopTrack" );
    m_PauseTrack = getAddress<PauseTrack>( "PauseTrack" );
    m_GetPlayingTrack = getAddress<GetPlayingTrack>( "GetPlayingTrack" );
    m_IsTrackPaused = getAddress<IsTrackPaused>( "IsTrackPaused" );
    m_GetTrackInfo = getAddress<GetTrackInfo>( "GetTrackInfo" );
    m_GetTrackAudioInfo = getAddress<GetTrackAudioInfo>( "GetTrackAudioInfo" );
    m_GetQueuedTracks = getAddress<GetQueuedTracks>( "GetQueuedTracks" );
    m_GetPlayedTracks = getAddress<GetPlayedTracks>( "GetPlayedTracks" );
    m_GetLastPlayerError = getAddress<GetLastPlayerError>( "GetLastPlayerError" );
    m_WaitOnTrackEvent = getAddress<WaitOnTrackEvent>( "WaitOnTrackEvent" );
    m_GetTrackAnalysis = getAddress<GetTrackAnalysis>( "GetTrackAnalysis" );

	getPlayerInfo( &m_player_info );
}
Esempio n. 7
0
void CTestClient::connectToConnector(const char* ip, int port)
{
    m_pomelo->stop();
    m_pomelo->asyncConnect(ip, port, [&](Node* node, void* resp)
                           {
                               CCPomeloReponse* pr = (CCPomeloReponse*)resp;
                               if (pr->status != 0)
                               {
                                   MT->print("gate not connected!");
                                   return;
                               }
                               CCLOG("gate connect ok");
                               const char *route = "connector.entryHandler.login";;
                               
                               CJsonT msg;
                               msg.setChild("userName", m_username.c_str());
                               msg.setChild("password", m_password.c_str());
                               m_pomelo->request(route, msg, [&](Node* node, void* resp){
                                   CCPomeloReponse* ccpomeloresp = (CCPomeloReponse*)resp;
                                   CJsonT docs(ccpomeloresp->docs);
                                   
                                   CCLOG("entryCB %s", docs.dump().c_str());
                                   
                                   if (docs.getInt("code") != 200)
                                   {
                                       MT->print("connect to connector failed");
                                   }
                                   else
                                   {
                                       CCLOG("connect to connector ok");
                                       
                                       addAllListener();
                                       getPlayerInfo();
                                   }
                               });
                               msg.release();
                           });
}
Esempio n. 8
0
/*! \brief Receive external signals.
 *  \param srcModule Source module calling SMA.
 *  \param signal The signal to handle
 *  \param p Buffer containing signal data
 *****************************************************************************/
void smaReceiveExtSignal(MSF_UINT8 srcModule, MSF_UINT16 signal, void* p)
{
    SmaResult result = SMA_RESULT_OK;       /* default value */
    SmaPlayerInfo *playerInfo = getPlayerInfo();
	msf_pipe_notify_t *pn;

	/* Check if the package handler consumes this signal */
    if (smaPhHandleSignal(signal, p))
    {
        MSF_SIGNAL_DESTRUCT(MSF_MODID_SMA, signal, p);
        return;
    }
    
    switch (signal) 
    {
    case MSF_SIG_MODULE_TERMINATE:
        MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_SMA, SASIG_64DF14BF763210DD0A80CAC97376D79A, "SMA: received  "
            "signal MSF_SIG_MODULE_TERMINATE\n"));

        /* terminate the smil service */
        TERMINATE_SMIL_PLAYER(SMA_RESULT_OK, SMA_TERM_SLS);
        break;
    case MSF_SIG_MODULE_STATUS:
        {
            /* received module status */
            msf_module_status_t *str = (msf_module_status_t*)p;

            MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_SMA, SASIG_1EF6140BB17115F56C0DA84954D37D63, "SMA: received "
                "signal MSF_SIG_MODULE_STATUS\n"));            
            
            /* handle the received module status */
            if ( !handleModuleStatus(str->status, str->modId))
            {
                /* SMA Should terminate */
                TERMINATE_SMIL_PLAYER(SMA_RESULT_OK, SMA_TERM_DIE);
            } 
            else
            {
                if (!smaIsInitialized()) 
                {
                    initializeSma();                
                }
                setSlsIsRunnig( TRUE);
            } /* if */
            
            break;
        }
    case MSF_SIG_FILE_NOTIFY:
		if (!smaIsRunning())
		{
			/* sma is not currently initialized and running, skip this signal */
			break;
		} /* if */
        (void)SMA_SIGNAL_SENDTO_IU(SMA_FSM_ASYNC, SMA_SIG_ASYNC_NOTIFY,
            ((msf_file_notify_t *)p)->eventType, 
            (MSF_UINT32)((msf_file_notify_t *)p)->fileHandle);
        break;
	case MSF_SIG_PIPE_NOTIFY:
		pn = (msf_pipe_notify_t *)p;
		(void)SMA_SIGNAL_SENDTO_UU(SMA_FSM_PIPE, SMA_SIG_PIPE_NOTIFY, 
			(MSF_UINT32)pn->handle, pn->eventType);
		break;
    case SMA_SIG_PLAY_SMIL_REQ:
        {
            SmaPlaySmilReq *message = (SmaPlaySmilReq *)p;
            MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_SMA, SASIG_1598B625D5F178196E24C2351EC3C290, "SMA: received "
                "signal SMA_SIG_PLAY_SMIL\n"));            
            
            if ( smaIsRunning())
            {
                sendResult(srcModule, SMA_RESULT_BUSY);
            }
            else
            {
                if (!smaIsInitialized()) 
                {
                    initializeSma();                
                }
                setSmaIsRunning(TRUE);
                setSlsIsRunnig(TRUE);
                playerInfo->msgId = message->msgId;
                playerInfo->sourceModule = srcModule; 
                playerInfo->fileType = message->fileType;
#ifdef __UNIFIED_MSG_SUPPORT__
                {
                    MmsMsgHandle m_handle;  /* MmsMessage */
                    MmsTransactionHandle t_handle;
                    MmsGetHeader header;
                    if (MMSlib_transactionOpen(MSF_MODID_SMA, &t_handle) != MMS_RESULT_OK)
                    {
                        EXIT_SMIL_PLAYER(SMA_RESULT_ERROR);
                        break;
                    } 
                    else if (MMSlib_messageOpen(MSF_MODID_SMA, playerInfo->msgId, fldrGetFileSuffix(playerInfo->msgId), 
                        &m_handle) != MMS_RESULT_OK)
                    {
                        (void)MMSlib_transactionClose(MSF_MODID_SMA, &t_handle);
                        EXIT_SMIL_PLAYER(SMA_RESULT_ERROR);
                        break;
                    } 

                    if(MMSlib_getMessageHeader(MSF_MODID_SMA, &header, &m_handle, &t_handle) != MMS_RESULT_OK)
                    {
                        (void)MMSlib_messageClose(MSF_MODID_SMA, &m_handle);
                        (void)MMSlib_transactionClose(MSF_MODID_SMA, &t_handle);
                        EXIT_SMIL_PLAYER(SMA_RESULT_ERROR);
                        break;
                    }
                    (void)MMSlib_messageClose(MSF_MODID_SMA, &m_handle);
                    (void)MMSlib_transactionClose(MSF_MODID_SMA, &t_handle);

                    playerInfo->folder = fldrGetFolderId(playerInfo->msgId);
                    playerInfo->recipientNo = smaAddressCount(header.to) + smaAddressCount(header.cc) + 
                        smaAddressCount(header.bcc);
                    playerInfo->forwardLock = header.forwardLock;
                }
#endif
                result = createGUI();
                if (result == SMA_RESULT_OK)
                {
                    /* now open the smil message */
                    if (SLS_RESULT_OK != SLSif_openSmil( 
                        MSF_MODID_SMA, playerInfo->msgId, playerInfo->fileType)) 
                    {
                        MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_SMA, 
                            SASIG_E652292EA5F3061C01A3EA1C9DC63C89, "SMA: SLS_openSmil failed\n"));
                        result = SMA_RESULT_ERROR;
                        EXIT_SMIL_PLAYER(result);
                    } /* if */
                } /* if */
            } /* if */
            break;
        }

#ifdef __UNIFIED_COMPOSER_SUPPORT__
    case MMA_SIG_START_UC_RSP:
        {
            mma_uc_start_rsp_struct *rsp = (mma_uc_start_rsp_struct *)p;
            MSF_LOG_MSG_ARGS((MSF_LOG_DETAIL_LOW, MSF_MODID_SMA, SASIG_65F4D4BF2E010DF6413C558633FCD04A, "SMA: received signal MMA_SIG_START_UC_RSP (%d, %d)\n", 
                rsp->result, rsp->mode));

            switch(rsp->result)
            {
            case MMA_RESULT_OK:
                EXIT_SMIL_PLAYER(SMA_RESULT_OK);
                HDIa_widgetExtDeleteWidgetScreenIfPresent();
  #ifdef __UNIFIED_MESSAGE_LIST_OPTION_SUPPORT__
                meaDeleteMhNavMenu();  /* not good but the only timing to do it here */
  #endif
  #if defined(SMA_CFG_USER_TEMPLATE_SUPPORT) && defined(__UNIFIED_MSG_SUPPORT__)
                meaDeleteMhInst();
                meaDeleteTemplatesFolderList();
  #endif
                break;
            case MMA_RESULT_FAIL_IN_CALL:
                break;
            default:
                switch(rsp->mode)
                {
                case MMA_MODE_EDIT:
                    HDIa_widgetExtShowPopup(MSF_MODID_SMA, SMA_GET_STR_ID(MEA_STR_ID_FAILED_TO_EDIT), MsfError, 0);
                    break;
                case MMA_MODE_SEND:
                    HDIa_widgetExtShowPopup(MSF_MODID_SMA, SMA_GET_STR_ID(MEA_STR_ID_FAILED_TO_SEND), MsfError, 0);
                    break;
                case MMA_MODE_REPLY:
                case MMA_MODE_REPLY_ALL:
                    HDIa_widgetExtShowPopup(MSF_MODID_SMA, SMA_GET_STR_ID(MEA_STR_ID_FAILED_TO_REPLY), MsfError, 0);
                    break;
                case MMA_MODE_FORWARD:
                    HDIa_widgetExtShowPopup(MSF_MODID_SMA, SMA_GET_STR_ID(MEA_STR_ID_FAILED_FORWARD), MsfError, 0);
                    break;
                default:
                    break;
                }
                break;
            }
            break;
        }
#endif
    case MSF_SIG_WIDGET_ACTION:
    case MSF_SIG_WIDGET_NOTIFY:
    case MSF_SIG_WIDGET_USEREVT:
        {
			if (!smaIsRunning())
			{
				/* sma is not currently initialized and running, skip this signal */
				break;
			} /* if */

			smaWidgetSignalHandler(signal, p);
            break;
        }
    case MSF_SIG_TIMER_EXPIRED:
        {
			msf_timer_expired_t *timer = (msf_timer_expired_t *)p;
            MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_SMA, SASIG_6B6EC80873332B8FD117D82099D10579, "SMA: received "
                "signal MSF_SIG_TIMER_EXPIRED\n"));
			if (!smaIsRunning())
			{
				/* sma is not currently initialized and running, skip this signal */
				break;
			} /* if */
			
			
            if (timer->timerID == SMA_SLIDE_TIMER_ID)
            {
#ifdef WAP_SUPPORT
                MSF_BOOL stillHaveTime = displayCountDown(TRUE);

                if (GetActiveScreenId() != WAP_SCREEN_WIDGET) /* Interrupt happen*/
                {
                    result = stopSmil(getPlayerInfo());
                    break;
                }

                if (!stillHaveTime)
                {
#endif /* WAP_SUPPORT */

#ifdef __UNIFIED_MESSAGE_MMS_MANUAL_PLAY__
                    SmaPlayerInfo * playerinfo = getPlayerInfo();
                    if ( !playerinfo->isAutoplay )
                    {
                        result = stopSmil(playerinfo);
                    } else {
#endif

                    /* Slide timer expired, show next slide */
                    result = displayNextSlide( getPlayerInfo());
                    if ( SMA_RESULT_OK != result)
                    {
                        /* unable to show next slide */
                        EXIT_SMIL_PLAYER(result);
                    } /* if */
#ifdef __UNIFIED_MESSAGE_MMS_MANUAL_PLAY__
                    }
#endif

#ifdef WAP_SUPPORT
                }
#endif /* WAP_SUPPORT */
            }
            else if (timer->timerID == SMA_DIALOG_TIMER_ID && 
                playerInfo->isPlaying)
            {
                /* Dialog timer expired, kill dialog screen */
                widgetDeleteScreen();
            } 
            else if (timer->timerID == SMA_ACTION_IMAGE_TIMER_ID)
            {
#ifndef WAP_SUPPORT
                /* Action Image timer expired, remove the action icon */
                deleteStatusIconHandle();
#endif /* ~WAP_SUPPORT */
            } /* if */
#if defined(SMA_GET_TEXT_TOTAL_HEIGHT) && defined(WIDGET_SLIDING_SMIL_VBAR)
            else if (timer->timerID == SMA_GET_TOTAL_TEXT_HEIGHT_TIMER_ID)
            {
                MSF_LOG_MSG_NOARG(( MSF_LOG_DETAIL_MEDIUM, MSF_MODID_SMA, 
                    SASIG_7206E2A049C3E38DEC709F5940C2CA47, "[TEXT HEIGHT] MEA_MOB_TEXT_HEIGHT_TIMER_ID\n"));
            
                (void)SMA_SIGNAL_SENDTO(SMA_FSM_SLIDE,
                    SMA_SIG_GET_TOTAL_TEXT_HEIGHT_CONTINUE);
            }
#endif
            break;
        }
    case MSF_SIG_MODULE_EXECUTE_COMMAND:
        {
            MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_SMA, SASIG_24BC4A055B5792912076DD916105F069, "SMA: received "
            "signal MSF_SIG_MODULE_START\n"));
        
            /* starting SMIL Service */
            MSF_MODULE_START(MSF_MODID_SMA, MSF_MODID_SLS, NULL, NULL, NULL);
            break;
        }
    case SLS_OPEN_SMIL_RSP:
        {
            /* Got some smile information */
            SlsOpenSmilRsp *openSmilRsp = (SlsOpenSmilRsp *)p;
            
            MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_SMA, SASIG_05237E33B3EDF7DA1B38D25576C9DEF3, "SMA: received "
                " signal SLS_OPEN_SMIL_RSP\n"));
            
            result = handleOpenSmilRsp( playerInfo, openSmilRsp);

            if ( result != SMA_RESULT_OK)
            {
                EXIT_SMIL_PLAYER(result);
            } /* if */

            if ((result = createSlideForm()) != SMA_RESULT_OK)
            {
                EXIT_SMIL_PLAYER(result);
            } /* if */
            break;
        }
    case SLS_GET_SLIDE_INFO_RSP:
        {
			/* Got some Slide information */
            SlsGetSlideInfoRsp *rsp = (SlsGetSlideInfoRsp *)p;
            SmaSlideInfo *slide;

			if (!smaIsRunning())
			{
				/* sma is not currently initialized and running, skip this signal */
				break;
			} /* if */
			
            slide = getSlideInfo( playerInfo->currentSlide, playerInfo);

            if ( rsp == NULL || slide == NULL || 
                rsp->result != SLS_RESULT_OK)
            {
                MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_SMA, SASIG_340FFD36EF830115392AF09C76385E40, "SMA: SLS "
                    "failed to get slide info in SLS_GET_SLIDE_INFO_RSP\n"));
                EXIT_SMIL_PLAYER(SMA_RESULT_ERROR);
            }
            else
            {
                /* set slide data */
                if ( SMA_RESULT_OK != handleGetSlideInfoRsp( &rsp->slideInfo, 
                    slide))
                {
                    /* error parsing slide information */
                    MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_SMA, SASIG_13CC547BB252E76B64D8207F572BABB5, "SMA: \
                        failed to get parse info in SLS_GET_SLIDE_INFO_RSP\n"));
                    EXIT_SMIL_PLAYER(SMA_RESULT_ERROR);
                } 
                else
                {
                    /* done with current slide */
                    if ( playerInfo->currentSlide < playerInfo->noOfSlides-1)
                    {
                        /* there is more slides */
                        /* allocate memory for next slide */
                        slide->next = SMA_ALLOC( sizeof( SmaSlideInfo));
                        memset( slide->next, 0x00, sizeof( SmaSlideInfo));
                        playerInfo->currentSlide++;
                        /* get slide info for next slide */
                        if (SLSif_getSlideInfo( MSF_MODID_SMA, 
                            playerInfo->currentSlide) != SLS_RESULT_OK)
                        {
                            MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_SMA, 
                                SASIG_458B4FADEEB3814E0D63C4010CC1F807, "SMA: SLS_getSlideInfo failed\n"));
                            result = SMA_RESULT_ERROR;
                        } /* if */
                    }
                    else
                    {
                        #if SLS_ALWAYS_VIEW_MAX_NBR_OF_SLIDES//==1
							if(playerInfo->result == SLS_RESULT_TO_MANY_SLIDES)
							{
								handleSmaErr(SMA_RESULT_TO_MANY_SLIDES);
							}
						#endif
                        /* no more slides - start playing */
                        (void)SLSif_closeSmil( MSF_MODID_SMA);
                        playerInfo->currentSlide = 0;
#ifdef __UNIFIED_MESSAGE_MMS_MANUAL_PLAY__
                        if ( playerInfo->isAutoplay )
                            result = playSmil( playerInfo);
                        else {
#ifdef __UNIFIED_MESSAGE_MANUAL_PLAY_SLIDE__
                            playerInfo->isPlaying = TRUE;
                            updateSlideFormActions(playerInfo->isPlaying);
#endif
                            result = displayCurrentSlide( playerInfo);
                        }
#else
                        result = playSmil( playerInfo);
#endif


#ifdef __UNIFIED_COMPOSER_SUPPORT__
                        if(MMA_IS_UNIFIED_COMPOSER_ACTIVE() == TRUE)  /* SMA notify UC that it took over the screen */
                        {
                            void *sig;
                            sig = MSF_SIGNAL_CREATE (SMA_SIG_PLAY_SMIL_IND, MSF_MODID_SMA, playerInfo->sourceModule, 0);
                            MSF_SIGNAL_SEND (sig);
                        }
#endif
                    } /* if */

                } /* if */
            }
            break;
        }
Esempio n. 9
0
/*!
 * \brief The signal dispatcher for Widgets.
 *
 * When a new external signal is received it needs to be converted into a 
 * internal signal. This function converts an external signal to a internal
 * one.
 *
 * \param signal The type of external signal that was received.
 * \param p A pointer to the data attached to the signal, this is dependent on
 *          the signal.
 *****************************************************************************/
void smaWidgetSignalHandler(MSF_UINT16 signal, void *p)
{
    msf_widget_action_t *was;
    msf_widget_notify_t *wns;
    msf_widget_userevt_t *ues;
    switch(signal)
    {
    case MSF_SIG_WIDGET_ACTION:
        was = (msf_widget_action_t*) p;
               
        /* Convert the external action signal into a internal */
        if (handleWidgetAction(was->handle, was->action))
        {
            break;
        }
        if (smaHandleConfirmationDialogSignal(was->handle, was->action))
        {
            break;
        }
        (void)widgetActionHandler(was->action, was->handle, getPlayerInfo());
        
        MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_SMA,
            SAUISIG_663BAC903F9888948AE16F888EEA6ABA, "smaWidgetSignalHandler() - signal not handled\n"));
        break;
    case MSF_SIG_WIDGET_NOTIFY:
        wns = (msf_widget_notify_t*)p;
        /* First check if any handlers have been registered for this 
           window/notification type combo */
        if (handleWidgetNotification(wns->handle, wns->notificationType))
        {
            break;
        }
        if (wns->notificationType == MsfNotifyLostFocus)
        {
            /* Check if a global dialog has been disabled */
            if (handleDialogNotification(wns->handle))
            {
                break;
            }
        }
        else if (wns->notificationType == MsfNotifyResourceLoaded)
        {
            (void)SMA_SIGNAL_SENDTO_IUU( SMA_FSM_SLIDE, SMA_SIG_SLIDE_READ_RSP, 0L, SMA_ASIO_RESULT_OK, 0);
        }
        else if (wns->notificationType == MsfNotifyResourceFailed || 
            (MsfNotificationTypeExt)wns->notificationType >= MsfNotifyFailedResolution)
        {
            SMA_SIGNAL_SENDTO_U(SMA_FSM_SLIDE, SMA_SIG_SLIDE_READ_RSP, SMA_ASIO_RESULT_ERROR);
        }
        break;
        
    case MSF_SIG_WIDGET_USEREVT:
        ues = (msf_widget_userevt_t *)p;
        if (!handleUsrEvent(ues->handle, ues->event.eventType, 
            ues->event.eventClass))
        {
            MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_SMA,
                SAUISIG_6EDBCD59B1AB329CBEA39448A7664E01, "(%s) (%d) Unhandled widget user event signal!\n", __FILE__, 
                __LINE__));
        }
        break;
    default:
        MSF_LOG_MSG_OFF((MSF_LOG_DETAIL_HIGH, MSF_MODID_SMA,
            SAUISIG_E7C861E8FF00C307DA35A2B865AB4129, "smaWidgetSignalHandler() Unhandled signal from MSF Widget\n"));
        break;
    }
}