亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? aphearsaysub.c

?? 這個(gè)是好記星608的AP源代碼,他的主要是是GUI,還有對(duì)字典的操作
?? C
字號(hào):
/****************************************************************************/
/*                                                                          */
/*              Copyright (C) 2005 SHENZHEN MEIJIN CO.LTD                   */
/*                                                                          */
/* FILE NAME:   ApHearSaySub.c                                              */
/* MODULE NAME: AP應(yīng)用程序                                                  */
/* DESCRIPTION: Hearsay Sub File                                            */
/*                                                                          */
/* FUNCTIONS:                                                               */
/*                                                                          */
/****************************************************************************/
/*    NAME         DATE               REMARKS                               */
/* ==========  ============   ==============================================*/
/*   DennyHan    2006-03-15         V1.00B                                  */
/****************************************************************************/

// 包含必要的頭文件
#include	"Ap.h"
#include	"ApHearSay.h"

extern RrParam		g_RrParam;

//==================================================================
//
//  Time Stamp
//
//------------
INT ApHsClrPlayTmBar(INT nMode)
{
    nMode &= 1;
    g_RrParam.aPlay[nMode].wStep = 0;
    g_RrParam.aPlay[nMode].wTotalStep=UINT_PLAY_STEP_TOTAL;
    return TRUE;
}

//------------------------------------------------------
// Set Time Step of BAR
//----------------
INT ApHsSetPlayTmBar(INT nMode)
{
UINT32  i;
UINT16  j;
    if (nMode>0)
        return 0;

    nMode &= 1;

    // total time : to 0.5s
    if (!g_RrParam.aPlay[nMode].wTotalStep)
    {
        ApHsClrPlayTmBar(nMode);
    }

    j=g_RrParam.aPlay[nMode].wTotalStep;

    // One Step Time
    i = (g_RrParam.aPlay[nMode].dwTotalTm+(j/2))/j;
	if (i==0)
	{
		i++;
	}

    // Current Play Time        //
    i =(g_RrParam.aPlay[nMode].dwPlayTm+(i/2))/i;
    if ( (UINT16) i>j)
    {
        i=(UINT32)j;
    }

    g_RrParam.aPlay[nMode].wStep=(UINT16)i;
    return TRUE;
}


//=======================================================================
// Return 0: Play sound file
//        1: Play Record file
//=======================================================================
INT ApHSGetCurrentPlayMode(VOID)
{
INT	nMode;
	if (g_RrParam.wSndMode&APHS_SOUND_REC)
	{
		nMode=3;
	}
	else if (g_RrParam.wSndMode&APHS_SOUND_PLAY)
	{
		nMode=0;
	}
	else if (g_RrParam.wSndMode&APHS_SOUND_PLAYREC)
	{
		nMode=1;
	}
	else
	{	// one error to default
		nMode=0;
	}

    return nMode;
}


//===================================================================
// Time step of A/B, only used for display
//-------------------------
//------------------
INT ApHSGetStepAB(VOID)
{
UINT32  i;
UINT16  j,k;
    // total time : to 0.5s
    if (!g_RrParam.aPlay[0].wTotalStep)
    {
        ApHsClrPlayTmBar(0);
    }

    j=g_RrParam.aPlay[0].wTotalStep;

    // One Step Time
    i = (g_RrParam.aPlay[0].dwTotalTm+(j/2))/j;
	if (i==0)
	{
		i++;
	}
    // Current Play Time        // to 0.5S
    k =(g_RrParam.dwTmA+(i/2))/i;
    if (  k>j)
    {
        k=j;
    }
    g_RrParam.wStepA=k;

    k =(g_RrParam.dwTmB+(i/2))/i;
    if (  k>j)
    {
        k=j;
    }
    g_RrParam.wStepB=k;
	return TRUE;
}

//------------------------------
// Step is the X positon of A inside of total step
INT ApHSSetTmAStep(UINT16 x)
{
UINT32  i;
UINT16  j;
UINT32  k;

    // total time : to 0.5s
    if (!g_RrParam.aPlay[0].wTotalStep)
    {
        ApHsClrPlayTmBar(0);
    }

    j=g_RrParam.aPlay[0].wTotalStep;

    // One Step Time
    i = (g_RrParam.aPlay[0].dwTotalTm+(j/2))/j;

    // Current Play Time        // to 0.5S

    k =x*i;
    if ( k>g_RrParam.aPlay[0].dwTotalTm)
    {
        k=g_RrParam.aPlay[0].dwTotalTm;
    }
    g_RrParam.dwTmA=k;

	return TRUE;
}
//-------------------------------
// Step is the X positon of B inside of total step
INT ApHSSetTmBStep(UINT16 x)
{
UINT32  i;
UINT16  j;
UINT32  k;

    // total time : to 0.5s
    if (!g_RrParam.aPlay[0].wTotalStep)
    {
        ApHsClrPlayTmBar(0);
    }

    j=g_RrParam.aPlay[0].wTotalStep;

    // One Step Time
    i = (g_RrParam.aPlay[0].dwTotalTm+(j/2))/j;

    // Current Play Time        // to 0.5S

    k =x*i;
    if ( k>g_RrParam.aPlay[0].dwTotalTm)
    {
        k=g_RrParam.aPlay[0].dwTotalTm;
    }
    g_RrParam.dwTmB=k;

	return TRUE;
}

//====================================================
// Tm is Time,
// return : XStep of the time
//--------------
UINT16 ApHSGetTmXStep(UINT32 Tm)
{
UINT16  x;
UINT32  i;
UINT16  j;

    // total time : to 0.5s
    if (!g_RrParam.aPlay[0].wTotalStep)
    {
        ApHsClrPlayTmBar(0);
    }

    j=g_RrParam.aPlay[0].wTotalStep;

    // One Step Time
    i = (g_RrParam.aPlay[0].dwTotalTm+(j/2))/j;

    // Current Play Time        // to 0.5S

    x=Tm/i;
    return x;
}


//========================================================================
//
//  According to X position to get
////-----------------------
UINT32 ApHSGetTmFromStep(UINT16 x)
{
UINT32 Tm;
UINT16  j;

    // total time : to 0.5s
    if (!g_RrParam.aPlay[0].wTotalStep)
    {
        ApHsClrPlayTmBar(0);
    }

    j=g_RrParam.aPlay[0].wTotalStep;

    if ((INT16)x<0)
    {
        x=0;
    }
    if (x>j)
    {
        x=j;
    }

    // One Step Time
    Tm =x*(g_RrParam.aPlay[0].dwTotalTm+j/2)/j;
    return Tm;
}


//=======================================================================
//
// Sync Data
//
//=======================================================================
//-------------------------------------------------
//=====================================
// Seek the Time Text Node
// Tm is Ms
INT __ApHsSeekTextTimeNode(UINT32 Tm)
{
SYNCDATAITEM	*pSync;
UINT16			wSt;
UINT16			wEnd;
UINT16          j;
INT            nFlag;
UINT16			wNode;

    wNode = g_RrParam.pMstFileHdr->wNodes;
	pSync = (SYNCDATAITEM*) (g_RrParam.pDispBuf+sizeof(MSTFILE_HEADER));

	// Seek the time pointer
    wSt=0;
    wEnd=wNode;
	j = (wSt+wEnd)/2;
	nFlag=0;
	while ( ( j>0) && (j < wNode ) )
	{
		if ( Tm < (100*((pSync+j)->wTime)) )
		{
    		if (nFlag>0)
			{
				break;
	    	}
		    wEnd=j;
			j = (wSt+wEnd)/2;
			nFlag = -1;
	    }
		else if ( Tm == (100*((pSync+j)->wTime)) )
		{
			break;
		}
		else
		{
			if (nFlag<0)
			{
				break;
			}

		    wSt=j;
			j = (wSt+wEnd)/2;

			if (wSt==j)
			{
			    j++;
			}
			nFlag=1;
		}
    }

    if (j>=wNode)
    {
        j=wNode-1;
    }

	// at last fix the 1 different
	// tune the Pos node
	if (Tm > (100*((pSync+j)->wTime))  )
	{
		if (j <(wNode-1) )
		{
			while(1)
			{
				if ( Tm < (100*((pSync+j+1)->wTime))  )
				{
					break;
				}
				j++;
			}
		}
	}
	else if (Tm < (100*((pSync+j)->wTime))  )
	{
		while(j)
		{
			j--;
			if ( Tm >= (100*((pSync+j)->wTime))  )
			{
				break;
			}
		}
	}
    return j;
}



UINT16 ApHsGetTextTimeNode(VOID)
{
    return __ApHsSeekTextTimeNode(g_RrParam.aPlay[0].dwPlayTm); // to 1ms
}

UINT16 ApHsGetTextTimeNodeEx(UINT32 Tm)
{
    return __ApHsSeekTextTimeNode(Tm); // to 1ms
}

// Note to time to 0.5s
UINT32 ApHsGetTextNodeTime(UINT16 wNode)
{
SYNCDATAITEM	*pSync;

    if (wNode>= g_RrParam.pMstFileHdr->wNodes)
    {
        return g_RrParam.aPlay[0].dwTotalTm;
    }

	pSync = (SYNCDATAITEM*) (g_RrParam.pDispBuf+sizeof(MSTFILE_HEADER));

    return ((pSync+wNode)->wTime*100);      // 1 ms
}

UINT32 ApHsGetTextNodeTimeLength(UINT16 wNode)
{
SYNCDATAITEM	*pSync;

    if (wNode>= g_RrParam.pMstFileHdr->wNodes)
    {
        return g_RrParam.aPlay[0].dwTotalTm;
    }

	pSync = (SYNCDATAITEM*) (g_RrParam.pDispBuf+sizeof(MSTFILE_HEADER));

    return ((pSync+wNode)->wTimeLen*100);      // 1 ms
}
//=====================================================================
// Disable
VOID ApHSDisableTimerRefreshMst(VOID)
{
    if (!(g_RrParam.wRptMode&RR_MODE_NOMST))
    {
        g_RrParam.wSkipMstCnt = 2;
    }
}


//====================================================================
INT APHsStopMark(VOID)
{
    if (g_RrParam.bMarkFlag)
    {
        g_RrParam.bMarkFlag=FALSE;
        HearSayBrowserProc(g_RrParam.pBwrGui,EVENT_COMMAND,CM_BROWSER_CANCELMARK);
    }
    return TRUE;
}

//==============================================
// check the playing of the text sound file is ending or not??
// it ending, return true
// otherwise, return flase
//===============================================
BOOL APHsChkPlayM0Ending(VOID)
{
    if (    (!(g_RrParam.wSndMode&APHS_FOLLOW))
		 && (!(g_RrParam.wSndMode&APHS_REPEAT))    )
    {
		ApHsGetPlayTm(0);
		if ( g_RrParam.aPlay[0].dwPlayTm >= g_RrParam.aPlay[0].dwTotalTm )
		{
			return TRUE;
		}
	}
	return FALSE;
}

//===============================
// CLear Current Repeat Mode
// and the corresponding operation
//--------
VOID  ApHsClearRptMode(VOID)
{
    g_RrParam.wSndMode &= (~APHS_REPEAT_OCCUR);
}


//================================
// Backup the current AB time
//------------
VOID    ApHsSetBakABPlay(VOID)
{
    if ( (g_RrParam.wTmABSetFlag&(APHS_TMA_SET|APHS_TMB_SET))
          == (APHS_TMA_SET|APHS_TMB_SET)  )
    {
        g_RrParam.dwBakTmA = g_RrParam.dwTmA;
        g_RrParam.dwBakTmB = g_RrParam.dwTmB;
        g_RrParam.wTmABSetFlag |= APHS_TMAB_BAK_SET;
    }
}

VOID    ApHsClrBakABPlay(VOID)
{
    g_RrParam.wTmABSetFlag &= (~APHS_TMAB_BAK_SET);
}


BOOL ApHsRestoreBakABPlay(VOID)
{
    if ( g_RrParam.wTmABSetFlag &APHS_TMAB_BAK_SET)
    {
        g_RrParam.dwTmA = g_RrParam.dwBakTmA;
        g_RrParam.dwTmB = g_RrParam.dwBakTmB;
        return TRUE;
    }
    return FALSE;
}

//=======================================================
// For auto mode, browser browser

VOID ApHsSetTextOffset(VOID)
{
SYNCDATAITEM	*pSync;
UINT16			wNode;
UINT8           *pSt;
UINT8           *pEnd;
UINT32          StLine,EndLine,TopLine;
UINT16          Col;
UINT32          PageLine;

    if (   ( !(g_RrParam.wRptMode&RR_MODE_NOMST) ) )
//    	&& (g_RrParam.wRptMode & RR_MODE_AUTOMATIC ) )
    {   // is have MST File
        wNode=__ApHsSeekTextTimeNode(g_RrParam.aPlay[0].dwPlayTm);  // to 1ms
#ifndef APHS_AUTO_KEY_VIEW_DIS
        // if enable key view
        if (g_RrParam.wSavekPevNode == wNode)
        {   // if same node
            return;
        }
        g_RrParam.wSavekPevNode = wNode;
#endif
		pSync = (SYNCDATAITEM*) (g_RrParam.pDispBuf+sizeof(MSTFILE_HEADER));
        pSt=(pSync+wNode)->dwDataOffset - g_RrParam.dwDispHead
            +g_RrParam.pTextBuf;

        if ( wNode < (g_RrParam.pMstFileHdr->wNodes-1))
        {
            pEnd=(pSync+wNode+1)->dwDataOffset - g_RrParam.dwDispHead
                  +g_RrParam.pTextBuf;
        }
        else
        {
            pEnd=g_RrParam.dwDispLength - g_RrParam.dwDispHead
                  +g_RrParam.pTextBuf;
        }

        PageLine=BrowserPageLineSum((MBrowser *)(g_RrParam.pBwrGui),0);
        BrowserPosToLineCol((MBrowser *)(g_RrParam.pBwrGui),pSt,&StLine,&Col);
        BrowserPosToLineCol((MBrowser *)(g_RrParam.pBwrGui),pEnd,&EndLine,&Col);

		if (StLine == EndLine)
		{	// Mend of pSt == Pend
			EndLine++;
		}

		TopLine=BrowserGetTopLine((MBrowser *)(g_RrParam.pBwrGui));
		if (StLine<=TopLine)
		{// Page up
			TopLine=StLine;
		}
		else
		{// Page down
			if (StLine >=(PageLine+TopLine))
			{	// if txt to next page
				TopLine=StLine;
			}
			else
			{	// if part/all of txt inside the page
				if ( EndLine > (PageLine+TopLine) )
				{// if Part of txt inside the page
					TopLine=StLine;
//					if ( (EndLine-StLine) < PageLine)
//					{
//						TopLine =StLine-((PageLine-(EndLine-StLine))/2);
//					}
				}
			}
		}
        BrowserSetTopLine((MBrowser *)(g_RrParam.pBwrGui), TopLine);

        g_RrParam.dwStLine=StLine-TopLine;
        g_RrParam.dwEndLine=EndLine-TopLine;
    }
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩av中文在线观看| 欧美一区二区观看视频| 日韩电影在线观看电影| 一区二区三区欧美久久| 国产精品三级久久久久三级| 日韩精品一区二区三区在线观看| 色婷婷av一区二区三区大白胸| 激情文学综合网| 亚洲人精品午夜| 亚洲免费视频中文字幕| 亚洲精品欧美专区| 亚洲国产cao| 麻豆精品一二三| 高清在线观看日韩| 99re热这里只有精品视频| 成人性生交大片| 色综合久久综合网| 色丁香久综合在线久综合在线观看| 色妹子一区二区| 欧美一区二区在线观看| 欧美日韩一级大片网址| 日韩三级中文字幕| 中文字幕中文字幕一区| 亚洲综合在线视频| 精品亚洲欧美一区| 欧美制服丝袜第一页| 精品99一区二区三区| 欧美激情一区二区三区四区 | 26uuu久久综合| 亚洲久草在线视频| 国产真实乱子伦精品视频| 成人av影院在线| 欧美成人三级电影在线| 亚洲一线二线三线视频| 国产成人欧美日韩在线电影| 欧美日韩一区二区三区在线看| 久久综合色天天久久综合图片| 亚洲精品视频在线观看网站| 久久国产麻豆精品| 97超碰欧美中文字幕| 91精品福利在线一区二区三区 | 亚洲天堂精品在线观看| 激情小说欧美图片| 国产欧美日本一区视频| 国产东北露脸精品视频| 国产精品77777| 国产在线看一区| 国产精品综合一区二区三区| 色欧美片视频在线观看| 色哟哟精品一区| 欧美精品精品一区| 婷婷国产v国产偷v亚洲高清| 一本久久a久久精品亚洲| 久久婷婷综合激情| 丁香婷婷综合网| 中文字幕av一区 二区| a级精品国产片在线观看| 国产精品视频一二三区| 国产一区二区三区高清播放| 91精品国产美女浴室洗澡无遮挡| 亚洲欧美日韩综合aⅴ视频| 成人黄色免费短视频| 久久精品人人做人人爽人人| 国产一区二区美女诱惑| 中文字幕在线观看一区二区| 91香蕉国产在线观看软件| 亚洲国产一二三| 日韩欧美三级在线| 99视频热这里只有精品免费| 一级日本不卡的影视| 日韩一区二区三区三四区视频在线观看 | 99re66热这里只有精品3直播| 久久综合精品国产一区二区三区| 青娱乐精品视频在线| 国产日产欧美一区二区视频| 在线观看国产91| 国产成人精品1024| 蜜臀久久久久久久| 亚洲精品成a人| 国产精品美女久久久久久久久| 色狠狠av一区二区三区| 国产麻豆91精品| 图片区日韩欧美亚洲| 国产精品久久午夜夜伦鲁鲁| 精品视频在线免费观看| 91网址在线看| 国产99一区视频免费| 五月天丁香久久| 亚洲成人自拍偷拍| 亚洲第一久久影院| 亚洲欧美福利一区二区| 欧美精品一区二区不卡 | 精品精品国产高清一毛片一天堂| 一本到三区不卡视频| 亚洲电影在线播放| 久久久久久久久久久久久久久99| 在线播放日韩导航| 欧美精品一二三四| 日韩女同互慰一区二区| 91精品国产手机| 欧美一区二区国产| 91精品国产综合久久香蕉麻豆| 欧美自拍偷拍午夜视频| 欧美猛男gaygay网站| 日韩片之四级片| 中文字幕欧美日本乱码一线二线| 国产午夜亚洲精品理论片色戒| 欧美韩国日本综合| 亚洲国产cao| 国产高清在线精品| 成人午夜碰碰视频| 午夜精品福利一区二区三区av| 国产精品欧美精品| 精品日韩成人av| 91麻豆精品国产自产在线观看一区| 丁香婷婷综合激情五月色| 色哟哟在线观看一区二区三区| 成人h动漫精品| 成人18精品视频| 91婷婷韩国欧美一区二区| 成人黄色综合网站| 成人福利视频网站| 欧美日韩国产一区| 中文字幕乱码日本亚洲一区二区 | 日韩久久精品一区| 亚洲激情综合网| 丁香亚洲综合激情啪啪综合| 欧美性一区二区| 国产亚洲精品bt天堂精选| 亚洲成人免费看| 成人高清在线视频| 欧美精品一区二区久久婷婷| 丝袜脚交一区二区| 欧美视频精品在线观看| 日本一区二区三区久久久久久久久不| 视频在线在亚洲| 91精品国产福利在线观看| 亚洲大片在线观看| 欧美三级韩国三级日本三斤| 国产精品久久毛片av大全日韩| 国产一区久久久| 26uuu久久综合| 一区二区三区波多野结衣在线观看 | 亚洲最色的网站| 欧美在线影院一区二区| 国产亚洲欧美日韩在线一区| 久久精品国产精品亚洲综合| 欧美一区二区不卡视频| 久久国产精品露脸对白| 精品久久久久久最新网址| 日韩精品午夜视频| 欧美剧情电影在线观看完整版免费励志电影| 亚洲视频免费观看| 欧美视频中文字幕| 久草在线在线精品观看| 久久精品网站免费观看| 不卡一区二区中文字幕| 欧美大白屁股肥臀xxxxxx| 国产精品1024久久| 午夜视频在线观看一区| 国产婷婷色一区二区三区在线| 成人动漫一区二区三区| 一区二区三区四区蜜桃| 欧美无人高清视频在线观看| 韩国成人福利片在线播放| 国产精品毛片无遮挡高清| 91亚洲永久精品| 国产一区二区看久久| 亚洲福利一二三区| 国产午夜精品一区二区三区嫩草 | 欧美日韩久久久久久| 91小视频在线| www.色综合.com| 国产91精品在线观看| 国产福利精品一区| 国产精品99久久久久久久女警| 精品夜夜嗨av一区二区三区| 青青草国产精品亚洲专区无| 亚洲123区在线观看| 日韩国产欧美在线播放| 全国精品久久少妇| 国产一区亚洲一区| 成人激情电影免费在线观看| 成人永久看片免费视频天堂| jizz一区二区| 欧美性色欧美a在线播放| 99久久免费国产| 91亚洲精华国产精华精华液| 色婷婷综合久久| 日韩精品一区二区三区中文精品| 欧美mv和日韩mv国产网站| 日韩欧美一区二区不卡| 欧美一级一区二区| 国产女人18毛片水真多成人如厕| 自拍偷自拍亚洲精品播放| 亚洲精品菠萝久久久久久久| 亚洲成人av一区二区三区| 国产一区二区网址| 99久久综合国产精品| 在线视频国内自拍亚洲视频|