⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aphearsay.c

📁 本电子词典是名人928的学习机代码,主要是电子学习机AP,其他还没有传
💻 C
📖 第 1 页 / 共 3 页
字号:
	p=g_aHSHint[0];         //""

	if (g_RrParam.wSndMode&APHS_REPEAT)
	{
	    p=g_aHSHint[3];             //"正在复读......",
	}
	else if (g_RrParam.wSndMode&APHS_FOLLOW)
	{
        if (g_RrParam.wSndMode&APHS_SOUND_REC)
        {
            p=g_aHSHint[4];         //"正在录音......",
        }
        else if (g_RrParam.wSndMode&APHS_SOUND_PLAYREC)
        {
            p=g_aHSHint[5];         //"正在对比:录音播放......",
        }
        else
        {
            p=g_aHSHint[6];         //"正在对比:原音播放......",
        }
	}
	else if (g_RrParam.wSndMode&APHS_JUMP)
	{
	    p=g_aHSHint[5];             //"正在跳查......",
	}
    else
    {   // Play or NONE
    	if (g_RrParam.wRptMode&RR_MODE_MANUAL)
	    {   // A-B Mode
            p=g_aHSHint[1];
	    }
	    else
	    {   // Auto Mode
            if (g_RrParam.wSndMode&APHS_SOUND_PLAY)
            {
                p=g_aHSHint[2];     //"正在播放......",
            }
	    }
    }

    if (p==g_aHSHint[1])
    {
	    if  (  (g_RrParam.wTmABSetFlag&APHS_TMA_SET)
	         &&(!(g_RrParam.wTmABSetFlag&APHS_TMB_SET) ) )
	    {   // if A is set but B is Not
            p=g_aHSHint[7];             //"请按\"B\"设置复读点",
    	}
    	else
    	{
    	    if  (  (g_RrParam.wTmABSetFlag&APHS_TMA_SET)
	             &&(g_RrParam.wTmABSetFlag&APHS_TMB_SET)  )
	        {
                p=g_aHSHint[0];         //""
	        }
	    }
    }

    // for hint
    if ( (g_RrParam.pHint) && (g_RrParam.wHintCnt) )
    {
        p=g_RrParam.pHint;              // HInt Message
    }

    // if no message is show
    if (*p==0)
    {
        if  (g_RrParam.wRptMode& RR_MODE_AUTOMATIC)
        {
            p=g_aHSHint[8];     //    "模式: 自动"
        }
        else
        {
            p=g_aHSHint[9];     //   "模式: A-B"
        }
    }

	{
		UINT16 wPenStyle;

		wPenStyle=GraphSetPenStyle(PS_DOT);
		GraphDrawLine( 0, HEARSAY_HINT_T2Y,
					LCD_SCREEN_WIDTH-1,
					HEARSAY_HINT_T2Y);
		GraphSetPenStyle(wPenStyle);
	}


	GraphDrawIcon(0,HEARSAY_HINT_T2Y+1,
				0,0,(UINT8*)MAKE_ID(IDB_NOTICE) );

	x=(LCD_SCREEN_WIDTH-IDB_NOTICE_W-FontGetStringWidth (FontGetLib(),(UINT8*)p));
	if( x<0)
	{
	    x=0;
	}
	x /=2;
	x += IDB_NOTICE_W;
	GraphDrawText(x,HEARSAY_HINT_T2Y+3,0,0,(UINT8*)p);
    GraphEnableRefresh();
}
#endif

/*--------------------------------------------------------------------------*/
/*      DRAW  播放的进度条 等                                               */


INT  HearSayDraw_ProBar ( APGUI_STRUCT *pGui, UINT uEvent, UINT uParam )
{
//UINT32	dwBrush;
INT		i,j;
UINT16  wAscii;
    GraphDisableRefresh();
     
	//Draw  area     进度条
  	GraphDrawIcon(HEARSAY_HINT_LX+8,HEARSAY_HINT_LY+HEARSAY_HINT_H_DY+2,
       		0,0,(UINT8*)MAKE_ID(IDB_LINEING) ); //wlchen 
 
 
	//=================================
	// Draw the "A" and "B"
	//=================================
 
    	ApHSGetStepAB();
    	if (g_RrParam.wRptMode & RR_MODE_MANUAL)
    	{
            wAscii = FontGetAsciiWidth( FontGetLib(),'A');
    
    	    i=j=HEARSAY_HINT_TX;
			 
    	      i = i+g_RrParam.wStepA;

    	    if(g_RrParam.wTmABSetFlag&APHS_TMA_SET)
    	    {
    	        GraphDrawLine(i,HEARSAY_HINT_BY+HEARSAY_HINT_H_DY,i,HEARSAY_HINT_BY+HEARSAY_HINT_H_DY+3);
    
            	GraphDrawText(i-wAscii/2,
    						   HEARSAY_HINT_TY+HEARSAY_HINT_H_DY+HEARSAY_HINT_TDY,
    						   0,0,(UINT8*)"A");
            }
    
            if (g_RrParam.wTmABSetFlag&APHS_TMB_SET)
            {
                j += g_RrParam.wStepB ;
    
                if (j < (i+2) )
                {
                    j = i+1;
                }
    	        GraphDrawLine(j ,HEARSAY_HINT_BY+HEARSAY_HINT_H_DY,j,HEARSAY_HINT_BY+HEARSAY_HINT_H_DY+3);
                 
                 j = HEARSAY_HINT_TX +HEARSAY_HINT_TDX+ g_RrParam.wStepB;
                                
                  if (j < (wAscii+i) )
                  {
                       j +=wAscii;
				  }  
                
                
        	    GraphDrawText(j-wAscii/2,
    						HEARSAY_HINT_TY+HEARSAY_HINT_H_DY+HEARSAY_HINT_TDY,
    						0,0,(UINT8*)"B");
        	}
        } 
    

//-----------------------------------------------------------------
	// YouBiao Bar  进度条上移动的图标
   
    i=g_RrParam.aPlay[0].wStep;
 

    GraphDrawIcon(HEARSAY_HINT_LX+8,HEARSAY_HINT_LY+HEARSAY_HINT_H_DY+2,i+28,5,MAKE_ID(IDB_LINEING1) );
    GraphDrawIcon(/*HEARSAY_HINT_BX+i*/28+i,HEARSAY_HINT_BY+2+HEARSAY_HINT_H_DY,
    	 			0,0,(UINT8*)MAKE_ID(IDB_DOT ) ); 
   
 
    
	//===============================================
	// Draw Hint Area
    //__HearSayDraw_ProBarHInt();
	
//--------------------------------------------------------
	// Draw bottom line up YouBiao 
 
	 	GraphDrawLine(0,HEARSAY_HINT_TOTALY,
	 					LCD_SCREEN_WIDTH-1,HEARSAY_HINT_TOTALY);
	//--------------------------------------------------------
		//画 播放 停止 复读 跳查 上面的两条线
		{
			 
			i=300;
		
		 	GraphDrawLine( 0, i,LCD_SCREEN_WIDTH-1,i);
		 	GraphSetPenStyle(PS_DOT);     
		 	GraphDrawLine( 0, i+2,LCD_SCREEN_WIDTH-1,i+2);
			GraphSetPenStyle(PS_SOLID);
		} 
	
	GraphEnableRefresh();
    return 1;
}

/****************************************************************************/
/* FUNCTION:   INT  HearSayEvent_TimerPolling( APGUI_STRUCT *pGui,         */
/*                                      UINT uEvent, UINT uParam )          */
/* DESCRIPTION:HearSay应用显示事件处理                                     */
/* INPUTS:     NONE                                                        */
/* OUTPUTS:    NONE                                                        */
/* RETURN:     运行显示事件的返回值                                        */
/****************************************************************************/
/*    NAME         DATE               REMARKS                               */
/* ==========  ============   ==============================================*/
/*   DennyHan    2006-03-14          V1.00B									*/
/****************************************************************************/
INT  HearSayEvent_TimerPolling( APGUI_STRUCT *pGui, UINT uEvent, UINT uParam )
{
INT		nRet=1;     // Always return 0. because it is the system time tick
BOOL    bFlag=FALSE;

    TimerStopTimer(g_RrParam.hTimer);

    if (g_RrParam.wSndMode & APHS_FOLLOW)
    {
        if (g_RrParam.wSndMode & APHS_SOUND_PLAY)
        {
            ApHsGetPlayTm(0);
	    	if (g_RrParam.aPlay[0].dwPlayTm >= g_RrParam.dwRptTmB)
		    {
	            uParam=CMD_HS_FOLLOW_PLAYREC;
    			nRet=HearSayEvent_C3 (pGui,EVENT_COMMAND,uParam);
	    	}
	    }
    }
    else if (g_RrParam.wSndMode & APHS_REPEAT)
    {
        ApHsGetPlayTm(0);
        if (g_RrParam.dwRptTmB < g_RrParam.aPlay[0].dwTotalTm)
        {
    		if (g_RrParam.aPlay[0].dwPlayTm>=g_RrParam.dwRptTmB)
	    	{
	            uParam=CMD_HS_RPT_MORE;
			    nRet = HearSayEvent_C2(pGui,EVENT_COMMAND,uParam);
		    }
        }
    }

    if (g_RrParam.wHintCnt)
    {
        g_RrParam.wHintCnt--;
        bFlag=TRUE;
    }

    if (ApHsSndIsBusy())
    {
        ApHsGetPlayTm(ApHSGetCurrentPlayMode());
        if (!g_RrParam.wSkipMstCnt)
        {
            ApHsSetTextOffset();
        }
        else
        {
            g_RrParam.wSkipMstCnt--;
        }

        bFlag=TRUE;
    }

    if (bFlag)
    {
		MsgPost( (APGUI_STRUCT_MODEL *)pGui, EVENT_DRAW, 0);
	 
    }

    TimerResetTimer(g_RrParam.hTimer,APHS_TIMERID, APHS_TIMER_LEN );

	return nRet;
}























⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -