Example #1
0
void ListingUpdater::updateAll()
{
    const auto& channelDataList = m_spConfig->getChannelData();

    const ListingParse_Jsontv parseJsontv;

    for (const auto& channelData : channelDataList)
    {
        ListingFetch_XmltvSe fetcher(channelData, parseJsontv, m_spListingDb);
        INFO_PRINT("Updating programme listings for channel: " << channelData.name << std::endl);
        auto res = fetcher.fetch();

        for (const auto& programme : res.programmes)
        {
            m_spListingDb->insertProgramme(programme);
        }
        for (const auto& downloaded : res.downloadedFiles)
        {
            m_spListingDb->insertDownloaded(downloaded);
        }

        INFO_PRINT("Channel: " << channelData.name <<
                   " -- Downloaded " << res.downloadedFiles.size() << " files with "
                   << res.programmes.size() << " programmes" << std::endl);
    }

    m_spListingDb->deletePastProgrammes();
}
Example #2
0
bool TalkbackCore::talkbackCoreThreadStep_sendbuf_rtp()
{
    int nSize=0;
    int nBuffsize=getSpecAudioCodeModeFrameBuffSize(m_pRtspInfo->tAudioCodeMode);
    char pBuffer[nBuffsize];
    memset(pBuffer,0,nBuffsize);
    bool bRet=true;
    long long nTimeStamp=0;
    while(bRet){
        if(m_pAudioDataContext->pAudioDataContext!=NULL){
            bRet=getData(m_pAudioDataContext,pBuffer,nBuffsize,nSize,nTimeStamp);
            if(bRet){
                int nDiv=nTimeStamp-g_nTime;
                g_nTime=nTimeStamp;
                //INFO_PRINT(nDiv);
                //等待修正
                if(nTimeStamp==0){
                    printf("nSize:%d;nDiv:%d;nTimeStamp:%lld\n",nSize,nDiv,nTimeStamp);
                }

                if(nDiv<0){
                    printf("error data:nDiv:%d;nTimeStamp:%lld\n",nDiv,nTimeStamp);
                    return true;
                }
                //send
                if(m_pRtspInfo->startPlayTime>nTimeStamp){
                    //do nothing
                    continue;
                }
                unsigned int nInterval=nTimeStamp-m_pRtspInfo->startPlayTime;//时间间隔
                //频率 m_pRtspInfo->rtpMap.freq
                int freq=m_pRtspInfo->rtpMap.freq;//采样频率
                m_pRtspInfo->rtptime;//rtp 开始时间
                uint32_t ts=m_pRtspInfo->rtptime+freq*nInterval/1000;
                if(m_bStartTalkback==false){
                    memset(pBuffer,0,nBuffsize);
                }
                if(NULL!=m_pRtspInfo->pRtp_audio){
                    if(m_pRtspInfo->pRtp_audio->sendbuf(pBuffer,nSize,ts)){
                        //keep going
                    }else{
                        INFO_PRINT("talkbackCoreThreadStep_sendbuf_rtp fail as sendbuf fail");
                        VLOG(VLOG_ERROR,"send buffer fail,bufferSize:%d",nSize);
                        return false;
                    }
                }else{
                    INFO_PRINT("talkbackCoreThreadStep_sendbuf_rtp fail as m_pRtspInfo->pRtp_audio is null");
                    return false;
                }
#ifdef TEST_G711
                fwrite(pBuffer,1,nSize,m_pRtspInfo->file);
#endif
            }
        }else{
            bRet=false;
        }
    }
    return true;
}
static int mn885521_parse_dt(struct device *dev, struct mn885521_platform_data *pdata)
{
	int rc = 0;

	INFO_PRINT("%s \n", __func__);

        pdata->fm_fullseg_pw_vreg = devm_regulator_get(dev, "fm_fullseg_pw");
        if (IS_ERR(pdata->fm_fullseg_pw_vreg)) {
		pdata->fm_fullseg_pw_vreg = NULL;
                pr_err("%s: could not get fm_fullseg_pw reg!\n", __func__);
                return -EINVAL;
        }else
		INFO_PRINT("%s: get fm_fullseg_pw reg\n", __func__);

        rc = regulator_set_voltage(pdata->fm_fullseg_pw_vreg, 2850000, 2850000);
        if (rc < 0) {
        	pr_err("%s: set voltage failed\n", __func__);
                return -EINVAL;
        }else
		INFO_PRINT("%s: set  fm_fullseg_pw voltage\n", __func__);

#if 0
        prop = of_find_property(dt, "mn885521,npd_reg_npd_xtal", NULL);
        if (prop) {
                pdata->npd_reg_npd_xtal = of_get_named_gpio(dt, "mn885521,npd_reg_npd_xtal", 0);
		printk("%s: pdata->npd_reg_npd_xtal = %x\n", __func__, pdata->npd_reg_npd_xtal);
        }else
		printk("%s: fail to get npd_reg_npd_xtal\n", __func__);
	

        prop = of_find_property(dt, "mn885521,nrst", NULL);
        if (prop) {
                pdata->nrst = of_get_named_gpio(dt, "mn885521,nrst", 0);
		printk("%s: pdata->nrst = %x\n", __func__, pdata->nrst);
        }

        prop = of_find_property(dt, "mn885521,spisel", NULL);
        if (prop) {
                pdata->spisel = of_get_named_gpio(dt, "mn885521,spisel", 0);
		printk("%s: pdata->spisel = %x\n", __func__, pdata->spisel);
        }

        prop = of_find_property(dt, "mn885521,sadr1", NULL);
        if (prop) {
                pdata->sadr1 = of_get_named_gpio(dt, "mn885521,sadr1", 0);
		printk("%s: pdata->sadr1 = %x\n", __func__, pdata->sadr1);
        }

        prop = of_find_property(dt, "mn885521,sadr2", NULL);
        if (prop) {
                pdata->sadr2 = of_get_named_gpio(dt, "mn885521,sadr2", 0);
		printk("%s: pdata->sadr2 = %x\n", __func__, pdata->sadr2);
        }
#endif
        return 0;
}
Example #4
0
/*
*函数名称:plugin_init
*函数功能:初始化webqq插件
*调用函数:插件管理模块的插件注册函数、获取特征码函数
*输入参数:无
*输出参数:0 成功 -1错误
*/
static int __attribute ((constructor)) plugin_init()
{
	INFO_PRINT("Plugin_webqq 模块初始化\n");
	struct plugin_info ppi;
	int i = 0;
	struct yt_config *config_tmp = NULL;
	
	//获取插件文件存放路径	
	config_tmp = base_get_configuration();
	if(!config_tmp){
		log_write(LOG_ERROR, "webqq base_get_configuration() error\n");
		return YT_FAILED;
	}

	webqq_plugin_path = config_tmp->plugin_storage_path;

	//注册插件
	memset(&ppi, 0, sizeof(struct plugin_info));
	ppi.plugin_id = IM_GROUP_ID;
	ppi.func_plugin_deal = plugin_deal;
	for(i = 0; i < 1; i++){
		ppi.port = URL_PORT[i];
	    if(plugin_manager_register(&ppi)){
			log_write(LOG_ERROR, "webqq plugin_manager_register() error\n");
			return YT_FAILED;
		}
	}

	return YT_SUCCESSFUL;
}
Example #5
0
EStatus StationReset(Station* pThis)
{
	VALIDATE_ARGUMENTS(pThis);

	INFO_PRINT("Reseting station");

	pThis->curLocation = pThis->orgLocation;

	if (pThis->pInPacket) CHECK(PacketDelete(&pThis->pInPacket));

	if (pThis->pOutPacketEntry)
    {
	    CHECK(StationRemovePacket(pThis, pThis->pOutPacketEntry, ePKT_EVENT_REMOVED_CLEAN));
	    pThis->pOutPacketEntry = NULL;
    }

	pThis->bBusy = FALSE;
	pThis->bTransmitting = FALSE;
    pThis->silentTime = -1;
    pThis->receiveTime = -1;
    pThis->sequenceNum = 0;
    pThis->outboxHandler.event = ePKT_EVENT_REMOVED_CLEAN;
    pThis->lastTime = 0;

    CHECK(RoutingClear(pThis->pRouting));
    CHECK(SchedulerReset(pThis->pScheduler));

    DUMP_INSTANCE(Station, pThis);

    CHECK(ListCleanUp(pThis->pOutbox, (ItemFilter)&StationPacketCleaner, pThis));
    CHECK(SettingsGetRelayBufferSize(pThis->pSettings, &pThis->freeBufferSize));

	return eSTATUS_COMMON_OK;
}
Example #6
0
void talkbackCoreErrorCallback(void *parm,tagTalkbackAudioError tError,char *pErrorInfo){
    INFO_PRINT("errorCallback");
    if(parm!=NULL){
        TalkbackCore *pTalkbackCore=(TalkbackCore*)parm;
        pTalkbackCore->talkbackCoreErrorCallbackEx(tError,pErrorInfo);
    }
}
Example #7
0
bool TalkbackCore::talkbackCoreThreadStep_init_audioData(int &nFlags)
{
    if(m_pAudioDataContext==NULL){
        m_pAudioDataContext=new tagAudioContext;
        m_pAudioDataContext->pUserContext=this;
        m_pAudioDataContext->pAudioDataContext=NULL;
    }
#ifdef TEST_G711
    m_pRtspInfo->file=fopen("test.g711", "wb");
#endif
    for(int n=0;n<m_pRtspInfo->sdp->media_num;n++){
        if(m_pRtspInfo->sdp->media[n].bRtspSetUp==1){
            Attribute_t attr;
            if(SDP_get_media_attr(m_pRtspInfo->sdp,m_pRtspInfo->sdp->media[n].media_n.type,
                                  SDP_ATTR_RTP_MAP,(void*)&attr,n)==RTSP_RET_FAIL){
                continue;
            }
            if(strcmp(attr.rtpmap.codec_type,"PCMA")==0){
                m_pRtspInfo->tAudioCodeMode=AUDIO_CODE_G711_A;
            }else if(strcmp(attr.rtpmap.codec_type,"PCMU")==0){
                m_pRtspInfo->tAudioCodeMode=AUDIO_CODE_C711_U;
            }else{
                nFlags=1;
                INFO_PRINT("talkbackCoreThreadStep_init_audioData fail as do not support the audio type");
                return false;
            }
            m_pRtspInfo->rtpMap.freq=attr.rtpmap.freq;
            m_pRtspInfo->rtpMap.payload_type=attr.rtpmap.payload_type;
            memcpy(m_pRtspInfo->rtpMap.codec_type,attr.rtpmap.codec_type,strlen(attr.rtpmap.codec_type));

            m_tEventCallbackState.state=true;
            m_tEventCallbackState.bExistError=false;
            m_tEventCallbackState.pMessage=NULL;
            m_pEventCallbackStateLock=new TalkbackLock;

            bool bRet=applyAudio(m_pAudioDataContext,m_pRtspInfo->tAudioCodeMode,talkbackCoreErrorCallback);
            if(bRet==false){
                INFO_PRINT("talkbackCoreThreadStep_init_audioData fail as applyAudio fail");
            }
            return bRet;
        }else{
            continue;
        }
    }
    return false;
}
int read_gpio_from_dt(struct device *dev)
{
        int ret = 0;

        INFO_PRINT("%s\n", __func__);
        pdata = kzalloc(sizeof(struct mn885521_platform_data), GFP_KERNEL);
        if (pdata == NULL)
	{
		INFO_PRINT("%s: can't allocate memory\n", __func__);
                ret = -ENOMEM;
	}
	if (dev->of_node) {
        	ret = mn885521_parse_dt(dev, pdata);
	}else
		INFO_PRINT("%s: of_node is NULL\n", __func__);
        return ret;
}
Example #9
0
/*
 *函数名称:public_destroy
 *函数功能:public module destroy
 *输入参数:none
 *输出参数:none
 *返回值:  none
*/
void public_destroy()
{
    INFO_PRINT("\n----->Public模块释放..........\n");

    log_destroy();
    mempool_destroy();

    //计数器
    global_shared.retain_count --;
}
Example #10
0
/*
 *函数名称:tcp_init
 *函数功能:完成tcp模块的初始化工作
 *输入参数:none
 *输出参数:none
 *返回值:  on success, return 0(YT_SUCCESSFUL). on error, -1(YT_FAILED) is returned.
*/
int tcp_init()
{
	INFO_PRINT("Net->Tcp模块初始化\n");

	atomic_set(&gsession_counter,0);
	atomic_set(&gpsh_counter,0);
	atomic_set(&gdrop_counter,0);

	return tcp_session_init();
}
static int __devinit tuner_probe(struct platform_device *pdev)
{
    INFO_PRINT("mmtuner_probe: Called. -4-\n");
    
    if (register_chrdev(TUNER_CONFIG_DRV_MAJOR, TUNER_CONFIG_DRIVER_NAME, &TunerFileOperations))
    {
        ERROR_PRINT("mmtuner_probe: register_chrdev()\
                     Failed Major:%d.\n", TUNER_CONFIG_DRV_MAJOR);
        return -1;
    }
Example #12
0
bool TalkbackCore::deinitTalkback()
{
    m_bThreadStop=true;
    INFO_PRINT("deinitTalkback,wait for thread end");
#ifdef WIN32
    if(m_tThreadId){
        WaitForSingleObject(m_tThreadId,INFINITE);
        CloseHandle(m_tThreadId);
        m_tThreadId=0;
    }
#else
    if(m_tThreadId){
        pthread_join(m_tThreadId,NULL);
        m_tThreadId=0;
    }
#endif
    m_bStartTalkback=false;
    m_pTalkbackContext=NULL;
    INFO_PRINT("deinitTalkback thread end");
    return true;
}
static int read_gpio_from_dt(struct device_node *dt, struct fullseg_platform_data *pdata)
{
    struct property *prop = NULL;

    INFO_PRINT("%s \n", __func__);
    prop = of_find_property(dt, "fullseg,npdreg", NULL);
    if (prop) {
        pdata->npdreg = of_get_named_gpio(dt, "fullseg,npdreg", 0);
        printk("%s: pdata->npdreg = %d\n", __func__, pdata->npdreg);
    }

    prop = of_find_property(dt, "fullseg,npdxtal", NULL);
    if (prop) {
        pdata->npdxtal = of_get_named_gpio(dt, "fullseg,npdxtal", 0);
        printk("%s: pdata->npdxtal = %d\n", __func__, pdata->npdxtal);
    }

    prop = of_find_property(dt, "fullseg,nrst", NULL);
    if (prop) {
        pdata->nrst = of_get_named_gpio(dt, "fullseg,nrst", 0);
        printk("%s: pdata->nrst = %d\n", __func__, pdata->nrst);
    }

    prop = of_find_property(dt, "fullseg,interrupt", NULL);
    if (prop) {
        pdata->interrupt = of_get_named_gpio(dt, "fullseg,interrupt", 0);
        printk("%s: pdata->interrupt = %d\n", __func__, pdata->interrupt);
    }

    prop = of_find_property(dt, "fullseg,fm_fullseg_ant_sw", NULL);
    if (prop) {
        pdata->fm_fullseg_ant_sw = of_get_named_gpio(dt, "fullseg,fm_fullseg_ant_sw", 0);
        printk("%s: pdata->fm_fullseg_ant_sw = %d\n", __func__, pdata->fm_fullseg_ant_sw);
    }

    prop = of_find_property(dt, "fullseg,1v8_en", NULL);
    if (prop) {
        pdata->_1v8_en = of_get_named_gpio(dt, "fullseg,1v8_en", 0);
        printk("%s: pdata->_1v8_en = %d\n", __func__, pdata->_1v8_en);
    }

    prop = of_find_property(dt, "fullseg,1v1_en", NULL);
    if (prop) {
        pdata->_1v1_en = of_get_named_gpio(dt, "fullseg,1v1_en", 0);
        printk("%s: pdata->_1v1_en = %d\n", __func__, pdata->_1v1_en);
    }




    return 0;
}
Example #14
0
bool TalkbackCore::initTalkback(lpTalkbackContext parm)
{
    m_bThreadStop=false;
    m_pTalkbackContext=parm;
#ifdef WIN32
    m_tThreadId=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)startCaptureThreadEx,(PVOID)this,0,NULL);
    ResumeThread(m_tThreadId);
#else
    pthread_create(&m_tThreadId,NULL,startCaptureThreadEx,this);
#endif
    INFO_PRINT("initCapture, start run audioDataCapture thread");
    return true;
}
Example #15
0
/*
 *函数名称:public_init
 *函数功能:public module init
 *输入参数:none
 *输出参数:none
 *返回值:  on success, return 0(YT_SUCCESS). on error, -1(YT_FAILED) is returned.
*/
int public_init()
{
    INFO_PRINT("\n----->Public模块初始化..........\n");

    //计数器
    global_shared.retain_count ++;

    mempool_init();
    init_hash();
    log_init();

    return YT_SUCCESSFUL;
}
Example #16
0
static tlibc_error_code_t process(void *arg)
{
	uint32_t rtt_max, rtt_min;
	tlibc_error_code_t ret = E_TLIBC_WOULD_BLOCK;
	size_t i;
	uint64_t current_time = get_current_ms();
	double total_speed;


	total_speed = 0;
	rtt_max = 0;
	rtt_min = 0xffffffff;

	for(i = 0; i < g_config.robot_num;++i)
	{
		double diff_byte = (double)g_robot[i].total_send - (double)g_robot[i].start_size;
		uint64_t diff_ms = current_time - g_robot[i].start_time;
		double speed;
		if(diff_ms < 1)
		{
			continue;
		}
		speed = ((diff_byte / 1024) / (double)diff_ms) * 1000;

		total_speed += speed;
		g_robot[i].start_time = current_time;
		g_robot[i].start_size = g_robot[i].total_send;

		if(g_robot[i].rtt_max > rtt_max)
		{
			rtt_max = g_robot[i].rtt_max;
		}
		if(g_robot[i].rtt_min < rtt_min)
		{
			rtt_min = g_robot[i].rtt_min;
		}
	}

	if(current_time - last_print_time >= PRINT_INTERVAL_MS)
	{
		last_print_time = current_time;
		
	    INFO_PRINT("rtt(min, max) : %ums, %ums, speed(total, total / %u) : %.2lfkb/s %.2lfkb/s", rtt_min, rtt_max
		    , g_config.robot_num , total_speed, total_speed / g_config.robot_num);
	}
	return ret;
}
static int tuner_probe(struct platform_device *pdev)
{
    int ret = 0;
    struct fullseg_platform_data *pdata;
    struct device *dev = &pdev->dev;



    INFO_PRINT("mmtuner_probe: Called. -6-\n");


    if (register_chrdev(TUNER_CONFIG_DRV_MAJOR, TUNER_CONFIG_DRIVER_NAME, &TunerFileOperations))
    {
        ERROR_PRINT("mmtuner_probe: register_chrdev()\
                     Failed Major:%d.\n", TUNER_CONFIG_DRV_MAJOR);
        return -1;
    }
Example #18
0
static tlibc_error_code_t init()
{
    tlog_init(&g_tlog_instance, &g_config.log_config);
    
    if(tconnd_mempool_init() != E_TLIBC_NOERROR)
    {
        goto tlog_fini;
    }
    
    if(tconnd_tbus_init() != E_TLIBC_NOERROR)
    {
        goto mempool_fini;
    }
    
    if(tconnd_epoll_init() != E_TLIBC_NOERROR)
    {
        goto tbus_fini;
    }

    if(tconnd_timer_init() != E_TLIBC_NOERROR)
    {
        goto tlog_fini;
    }

    if(tconnd_listen_init() != E_TLIBC_NOERROR)
    {
        goto epoll_fini;
    }


    INFO_PRINT("tconnd init succeed.");
    return E_TLIBC_NOERROR;
    
epoll_fini:
    tconnd_epoll_fini();
tbus_fini:
    tconnd_tbus_fini();
mempool_fini:
    tconnd_mempool_fini();
tlog_fini:
    tlog_fini(&g_tlog_instance);
    return E_TLIBC_ERROR;

}
int board_gpio_init(void)
{
	int ret =0;
	int pcbid = -1;

        gpios = kzalloc(sizeof(struct mn885521_gpios), GFP_KERNEL);
        if (gpios == NULL)
        {
                INFO_PRINT("%s: can't allocate memory\n", __func__);
                ret = -ENOMEM;
		return ret;
        }

        pcbid = of_machine_projectid(1);
	if (pcbid == XA)
	{
		gpios->npdreg =  GPIO_NPDREG_XA;
		gpios->npdxtal = GPIO_NPDXTAL_XA;
        	gpios->nrst = GPIO_NRST_XA;
        	gpios->interrupt = GPIO_FULLSEG_INT_XA;
        	gpios->_1v8_en = GPIO_SRIO_1V8_EN_XA;
        	gpios->_1v1_en = GPIO_FULLSEG_1V1_EN_XA;
        	gpios->fm_fullseg_ant_sw = FM_FULLSEG_ANT_SW_XA;
	}else{
                gpios->npdreg =  GPIO_NPDREG_XB;
                gpios->npdxtal = GPIO_NPDXTAL_XB;
                gpios->nrst = GPIO_NRST_XB;
                gpios->interrupt = GPIO_FULLSEG_INT_XB;
                gpios->_1v8_en = GPIO_SRIO_1V8_EN_XB;
                gpios->_1v1_en = GPIO_FULLSEG_1V1_EN_XB;
                gpios->fm_fullseg_ant_sw = FM_FULLSEG_ANT_SW_XB;
	}

	printk("%s, pcbid = %x, npdreg = %d, npdxtal = %d, nrst = %d, interrupt = %d, 1v8_en = %d, 1v1_en = %d, fm_fullseg_ant_sw = %d \n", 
		__func__, pcbid, gpios->npdreg, gpios->npdxtal, gpios->nrst, gpios->interrupt, gpios->_1v8_en, gpios->_1v1_en, gpios->fm_fullseg_ant_sw);
	return ret;
}
Example #20
0
static void fini()
{
	int i;
	void *res;
	uint64_t rtt_total, rtt_count;
	uint32_t rtt_min, rtt_max;
	uint64_t total_send, total_recv;
    uint32_t lose_connection;
	uint64_t testing_time;

	g_working = false;
    

	for(i = 0; i < g_config.robot_num; ++i)
	{
		pthread_join(g_robot[i].thread_id, &res);
	}

	rtt_total = 0;
	rtt_count = 0;
	rtt_min = 0xffffffff;
	rtt_max = 0;
	total_send = 0;
	total_recv = 0;
	lose_connection = 0;
	for(i = 0; i < g_config.robot_num; ++i)
	{
		rtt_total += g_robot[i].rtt_total;
		rtt_count += g_robot[i].rtt_count;		
		if(g_robot[i].rtt_min < rtt_min)
		{
		    rtt_min = g_robot[i].rtt_min;
		}
		if(g_robot[i].rtt_max > rtt_max)
		{
		    rtt_max = g_robot[i].rtt_max;
		}
		total_send += g_robot[i].total_send;
        total_recv += g_robot[i].total_recv;
        lose_connection += g_robot[i].lost_connection;
	}
	testing_time = get_current_ms() - g_prog_starting_ms;
	if(testing_time < 1000)
	{
	    testing_time = 1000;
	}
	WARN_PRINT("Summary:");
	INFO_PRINT("    robot_num : %u", g_config.robot_num);
    INFO_PRINT("    lose_connection : %u", lose_connection);
	INFO_PRINT("    packet_len : %lubyte", sizeof(robot_proto_t));
	INFO_PRINT("    testing_time : %lus", testing_time / 1000);
    INFO_PRINT("    totl_send : %.2lfmb", (double)total_send / (double)(1024 * 1024));
	INFO_PRINT("    total speed : %lukb/s", (total_send / 1024) / (testing_time / 1000));
	INFO_PRINT("    speed : %lukb/s", (total_send / 1024) / (testing_time / 1000) / g_config.robot_num );
    INFO_PRINT("    total_recv : %.2lfmb", (double)total_recv / (double)(1024 * 1024));
	if(rtt_count == 0)
	{
		rtt_total = 0;
		rtt_count = 1;
	}
    INFO_PRINT("    rtt(min, max, avg) : %ums %ums %lums", rtt_min, rtt_max, rtt_total / rtt_count);
}
void Plantinfo::update()
{

  werase(mWindow);
  box( mWindow, 0, 0 );
  wattron( mWindow, COLOR_PAIR( DEFAULT_COLOR ) );


  if( getAttr(plant) )
  {

    int i = 3;
    if( !getAttr( autoEnd ) )
    {
      mvwprintw( mWindow, 1, 2, "Plant Info" );


      INFO_PRINT( Health, health );
      INFO_PRINT( Root Level, rootLevel );
      INFO_PRINT( Leaf Level, leafLevel );
      INFO_PRINT( Flower Level, flowerLevel );
      INFO_PRINT( Root LvlUp, rootLevelUp );
      INFO_PRINT( Leaf LvlUp, leafLevelUp );
      INFO_PRINT( Flower LvlUp, flowerLevelUp );
    } else {

      std::system( "curl -s 131.151.189.189/api/top > topSeeds " );
      std::ifstream in( "topSeeds", ios::in );
      std::string seed, seeds[3];

      in >> seed;

      int k = 0;
      int start = 0;
      for( int i = 0; i < seed.length(); i++ )
      {
        if( seed[i] == ',' || i == seed.length()-1 )
        {
          seeds[k++] = seed.substr( start, i-start );
          start = i+1;
          if( k == 3 )
            break;
        }
      }

      seeds[2] += seed[seed.length()-1];

      mvwprintw( mWindow, 1, 2, "Top Seeds (pun lol)" );
      mvwprintw( mWindow, i++, 2, "1) %s", seeds[0].c_str() );
      mvwprintw( mWindow, i++, 2, "2) %s", seeds[1].c_str() );
      mvwprintw( mWindow, i++, 2, "3) %s", seeds[2].c_str() );


    }
    // Check if plant is talking
    GameState state = *getAttr( state );
    ++i;
    for( std::vector<Animation *>::iterator j = state.animations.begin(); j != state.animations.end(); j++ )
    {
      if( (*j)->type == TALK )
      {
        if( getAttr( plant )->objectID == ((Talk *)(*j))->plantID )
        {

          char *msg = ((Talk *)(*j))->message;
          bool nLine = false;


          for( int l = 0; l < 28; l++ )
          {
            if( msg[l] == '\n' )
            {
              nLine = true;
            }
          }

          while( strlen( msg ) > 28 || nLine )
          {
            nLine = false;
            char str[29];
            strncpy( str, msg, 28 );
            int n = 28;

            for( int l = 0; l < 28 && l < strlen(msg); l++ )
            {
              if( str[l] == '\n' )
              {

                str[l] = '\0';
                n = l;
                break;
              }

            }
            str[28] = '\0';
            mvwprintw( mWindow, i++, 2, "%s", str );
            msg += n+1;

            for( int l = 0; l < 28; l++ )
            {
              if( msg[l] == '\n' )
              {
                nLine = true;
                break;
              }
            }

          }
          mvwprintw( mWindow, i++, 2, "%s", msg );
        }
      }
    }


  } else {
    if( !getAttr( autoEnd ) )
Example #22
0
TALKBACK_THREAD_RET_TYPE TalkbackCore::startCodeThread(void *arg){
    bool bStop=false;
    tagTalkbackCoreThreadStep tStep=TalkbackCoreThreadStep_init;
    bool bIsRtspPlay=false;
    bool bListFlags_keepalive=true;
    bool bListFlags_sendAudioData=true;
    bool bListFlags_readData=true;
    while (bStop==false) {
        switch (tStep) {
        case TalkbackCoreThreadStep_init:{
                if(talkbackCoreThreadStep_init()){
                    tStep=TalkbackCoreThreadStep_setup_rtsp;
                    INFO_PRINT("TalkbackCoreThreadStep_init success");
                }else{
                    tStep=TalkbackCoreThreadStep_deinit;
                    INFO_PRINT("TalkbackCoreThreadStep_init fail");
                }
                this->eventCallback(tagTalkbackCInterface_talkback_start,"tagTalkbackCInterface_talkback_start");
            }
            break;
        case TalkbackCoreThreadStep_setup_rtsp:{
                int nflag;
                //0:对方设备不在线
                //1:对方设备不支持语音回传功能
                //2:成功
                //3:失败
                if(talkbackCoreThreadStep_setup_rtsp(nflag)){
                    tStep=TalkbackCoreThreadStep_init_audioData;
                    m_pRtspInfo->session_lastTime=TalkbackThread::currentTime()/1000;
                    m_pRtspInfo->audioDataCheckTime=TalkbackThread::currentTime();
                    INFO_PRINT("TalkbackCoreThreadStep_setup_rtsp success");
                }else{
                    tStep=TalkbackCoreThreadStep_deinit;
                    INFO_PRINT("TalkbackCoreThreadStep_setup_rtsp fail");
                }
                if(nflag==0){
                    this->eventCallback(tagTalkbackCInterface_device_outOfLine,"tagTalkbackCInterface_device_outOfLine");
                }else if(nflag==1){
                    this->eventCallback(tagTalkbackCInterface_device_unsupport,"tagTalkbackCInterface_device_unsupport");
                }else{
                    //do nothing
                }
            }
            break;
        case TalkbackCoreThreadStep_init_audioData:{
            int nFlags=0;
            if(talkbackCoreThreadStep_init_audioData(nFlags)){
                tStep=TalkbackCoreThreadStep_play_rtsp;
            }else{
                tStep=TalkbackCoreThreadStep_deinit;
                INFO_PRINT("talkbackCoreThreadStep_init_audioData fail");
            }
            if(nFlags==1){
                this->eventCallback(tagTalkbackCInterface_codeMode_unsupport,"tagTalkbackCInterface_codeMode_unsupport");
            }else{
                //do nothing
            }
        }
        case TalkbackCoreThreadStep_play_rtsp:{
                if(talkbackCoreThreadStep_play_rtsp()){
                    tStep=TalkbackCoreThreadStep_init_rtp;
                    bIsRtspPlay=true;
                    m_pRtspInfo->startPlayTime=TalkbackThread::currentTime();
                    INFO_PRINT("TalkbackCoreThreadStep_play_rtsp success");
                }else{
                    tStep=TalkbackCoreThreadStep_deinit;
                    INFO_PRINT("TalkbackCoreThreadStep_play_rtsp fail");
                }
            }
            break;
        case TalkbackCoreThreadStep_init_rtp:{
                if(talkbackCoreThreadStep_init_rtp()){
                    tStep=TalkbackCoreThreadStep_default;
                    INFO_PRINT("TalkbackCoreThreadStep_init_rtp success");
                }else{
                    tStep=TalkbackCoreThreadStep_deinit;
                    INFO_PRINT("TalkbackCoreThreadStep_init_rtp fail");
                }
            }
            break;
        case TalkbackCoreThreadStep_sendbuf_rtp:{
                if(talkbackCoreThreadStep_sendbuf_rtp()){
                    tStep=TalkbackCoreThreadStep_default;
                }else{
                    tStep=TalkbackCoreThreadStep_deinit;
                    this->eventCallback(tagTalkbackCInterface_device_disconnect,"tagTalkbackCInterface_device_disconnect");
                }
            }
            break;
        case TalkbackCoreThreadStep_read_data:{
                if(talkbackCoreThreadStep_read_data()){
                    tStep=TalkbackCoreThreadStep_default;
                }else{
                    tStep=TalkbackCoreThreadStep_deinit;
                }
        }
            break;
        case TalkbackCoreThreadStep_teardown_rtsp:{
                talkbackCoreThreadStep_teardown_rtsp();
                tStep=TalkbackCoreThreadStep_deinit;
            }
            break;
        case TalkbackCoreThreadStep_keepalive_rtsp:{
                if(talkbackCoreThreadStep_keepalive_rtsp()){
                    tStep=TalkbackCoreThreadStep_default;
                }else{
                    tStep=TalkbackCoreThreadStep_deinit;
                    this->eventCallback(tagTalkbackCInterface_device_disconnect,"tagTalkbackCInterface_device_disconnect");
                }
            }
            break;
        case TalkbackCoreThreadStep_audio_eventcallback:{
            talkbackCoreThreadStep_audio_eventcallback();
            tStep=TalkbackCoreThreadStep_deinit;
        }
            break;
        case TalkbackCoreThreadStep_default:{
                if(m_bThreadStop==false){
                    //循环调度 控制
                    if(bListFlags_keepalive==true){
                        bListFlags_keepalive=false;
                        if(isTimeToSendRtspKeepAlive()){
                           tStep=TalkbackCoreThreadStep_keepalive_rtsp;
                           goto DEFAULT_CONTROL;
                        }
                    }
                    if(bListFlags_sendAudioData==true){
                        bListFlags_sendAudioData=false;
                        if(isTimeToSendAudioBuffer()){
                           tStep=TalkbackCoreThreadStep_sendbuf_rtp;
                           goto DEFAULT_CONTROL;
                        }
                    }
                    if(bListFlags_readData==true){
                        bListFlags_readData=false;
                        int nRet=isTimeToReadSocketData();
                        if(nRet==1){
                            tStep=TalkbackCoreThreadStep_read_data;
                            goto DEFAULT_CONTROL;
                        }else if(nRet==0){
                            //do nothing
                        }else{
                            tStep=TalkbackCoreThreadStep_deinit;
                            goto DEFAULT_CONTROL;
                        }
                    }

                DEFAULT_CONTROL:
                    //reset flags
                    if(bListFlags_readData==false&&bListFlags_sendAudioData==false&&bListFlags_keepalive==false){
                        bListFlags_readData=true;
                        bListFlags_sendAudioData=true;
                        bListFlags_keepalive=true;
                    }
                    if(tStep!=TalkbackCoreThreadStep_default){
                        //go to do work
                    }else{
                        TalkbackThread::mSleep(10);
                    }
                }else{
                    if(bIsRtspPlay==true){
                        bIsRtspPlay=false;
                        tStep=TalkbackCoreThreadStep_teardown_rtsp;
                    }else{
                        tStep=TalkbackCoreThreadStep_deinit;
                    }
                }
            }
            break;
        case TalkbackCoreThreadStep_deinit:{
                this->eventCallback(tagTalkbackCInterface_talkback_end,"tagTalkbackCInterface_talkback_end");
                talkbackCoreThreadStep_deinit_audioData();
                talkbackCoreThreadStep_deinit_rtp();
                talkbackCoreThreadStep_deinit();
                bStop=true;
            }
            break;
        }
    }
    INFO_PRINT("TalkbackCore thread end");
}
Example #23
0
/*
 *函数名称:tcp_destroy
 *函数功能:释放tcp模块占用的资源
 *输入参数:none
 *输出参数:none
 *返回值:  none
*/
void tcp_destroy()
{
	tcp_session_destroy();
	INFO_PRINT("Net->Tcp模块释放\n");
}