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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mso_hscroll_text.c

?? ZORAN 962/966 SOURCE CODE,DVD chip
?? C
字號:
/* **************************************************************************************
*  Copyright (c) 2004 ZORAN Corporation, All Rights Reserved
*  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
*
*  File: $Workfile: o_hscroll_text.c $
*
* Description:
* ============
* Project definition of the MSO_HSCROLL_TEXT functions
*
****************************************************************************************/
#include "Config.h"		// Global Configuration - do not remove!

#ifdef DEBUG_UI_TRACE
#undef IFTRACE
#define IFTRACE if (gTraceUI)
#include "Debug\DbgMain.h"
#endif //DEBUG_UI_TRACE

#include "Include\SysDefs.h"
#include <stdio.h>
#include <string.h>
#include "Include\math-macro.h"

#include "GUI\Menu_system\ms_object.h"
#include "gui\menu_system\osd_rendering.h"
#include "gui\menu_system\ms_display.h"
#include "GUI\Menu_system\ms_screen.h"
#include "GUI\Object_class\Hscroll\mso_hscroll_text.h"
#include "GUI\Resource\Bitmap\bitmap.h"
#include "Menu\menu_operation_def.h"
#include "GUI\Object_class\Text\mso_text.h"
#include "Library\Container_misc.h"
#include "GUI\Object_class\Multiline\mso_multiline_text.h"
#ifndef DEBUG_UI_TRACE
#undef dbg_printf(sMsg)
#define dbg_printf(sMsg)
#undef	dbgm_printf(sMsg, mode)
#define dbgm_printf(sMsg, mode)
#endif
#define pObjectHscrollText			((MSO_HSCROLL_TEXT __NEAR*)pThis)
#define pObjectMultilineText			((MSO_MULTILINE_TEXT __NEAR*)&(pObjectHscrollText->moObject))
#define pObjectText					((MSO_TEXT __NEAR*)&(pObjectMultilineText->moObject))

#define pDescriptorHscrollText		((MS_DESCRIPTOR_HSCROLL_TEXT*)(pThis->mpDescriptor))
#define pDescriptorMultilineText		((MS_DESCRIPTOR_MULTILINE_TEXT*)&(pDescriptorHscrollText->moDescriptorMultilineText))
#define pDescriptorText				((MS_DESCRIPTOR_TEXT*)&(pDescriptorMultilineText->moDescriptorText))

static void HscrollReset(MSO_OBJECT __NEAR* pThis)
{
	if(pDescriptorHscrollText->meStartPos == HSCROLL_START_RIGHT)
	{
		pObjectHscrollText->moParam.iStartPixel = (pObjectText->moObject.moArea.mwW - pDescriptorMultilineText->mnPixelLeftRightBorder);
		pObjectHscrollText->moParam.cCurrentState = HSCROLL_STATE_SCROLLING_IN;
	}
	else
	{
		pObjectHscrollText->moParam.iStartPixel = 0;
		pObjectHscrollText->moParam.cCurrentState = HSCROLL_STATE_HOLDING;
		pObjectHscrollText->moParam.mcHoldTimeRemaining = pDescriptorHscrollText->mcHoldTime;
	}

	// End
}

#pragma argsused
MS_OP OHSCROLLTEXT_Operation(MSO_OBJECT __NEAR* pThis, MS_OP MsOp, UINT32 lParam)
{
	switch (MsOp)
	{
		case MS_OP_INIT:
		case MS_OP_ON_DEFROST:
        	case MS_OP_BUILD_TEXT_TABLE:
			pObjectHscrollText->moParam.cCurrentState = HSCROLL_STATE_RESETTING;
			break;

		case MS_OP_TICK:
			if(pObjectMultilineText->moParam.moEntryTable.mcTableEntryCount != 0)
			{
				FORMATED_UNICODE_STRING oFormUniStr;
				switch(pObjectHscrollText->moParam.cCurrentState)
				{
					case HSCROLL_STATE_RESETTING:
						HscrollReset(pThis);
						pObjectMultilineText->moParam.mcCurrentEntry = 0;
						OSDR_GetFormUniStr_ScFormatted((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr, (UINT32)(pObjectHscrollText->moObject.moParam.moEntryTable.mwEntries[pObjectMultilineText->moParam.mcCurrentEntry]));
						pObjectHscrollText->moParam.miBlockPixelLength = (oFormUniStr.mwPixelWidth + ((pFonts[pDescriptorText->mtFontIndex])->m_cCharPixelSpace));
						break;
					case HSCROLL_STATE_SCROLLING_IN:
						pObjectHscrollText->moParam.iStartPixel -= pDescriptorHscrollText->mcPixelCount;
						if(pObjectHscrollText->moParam.iStartPixel <= 0)
						{
                        				pObjectHscrollText->moParam.iStartPixel = 0;
							pObjectHscrollText->moParam.cCurrentState = HSCROLL_STATE_HOLDING;
							pObjectHscrollText->moParam.mcHoldTimeRemaining = pDescriptorHscrollText->mcHoldTime;
						}
						else
						{
							break;
						}
					case HSCROLL_STATE_HOLDING:
						if(pObjectHscrollText->moParam.mcHoldTimeRemaining-- == 0)
						{
							if((pDescriptorHscrollText->meScrollType & HSCROLL_REMOVE_MASK) == HSCROLL_REMOVE_IMMEDIATE)
							{
								pObjectHscrollText->moParam.cCurrentState = HSCROLL_STATE_SCROLL_DONE;
								break;
							}
							else
							{
								pObjectHscrollText->moParam.cCurrentState = HSCROLL_STATE_SCROLLING_OUT;
							}
						}
						else
						{
							break;
						}
					case HSCROLL_STATE_SCROLLING_OUT:
						pObjectHscrollText->moParam.iStartPixel -= pDescriptorHscrollText->mcPixelCount;
						if((pObjectHscrollText->moParam.miBlockPixelLength + pObjectHscrollText->moParam.iStartPixel) <= 0)
						{
							pObjectHscrollText->moParam.iStartPixel = (0 - pObjectHscrollText->moParam.miBlockPixelLength);
							// try to do something here to change state when finished
							pObjectHscrollText->moParam.cCurrentState = HSCROLL_STATE_SCROLL_DONE;

						}
						else
						{
							break;
						}
					case HSCROLL_STATE_SCROLL_DONE:
						// increment to next item
						if(++pObjectMultilineText->moParam.mcCurrentEntry >= pObjectMultilineText->moParam.moEntryTable.mcTableEntryCount)
						{
							pObjectMultilineText->moParam.mcCurrentEntry = 0;
						}
						switch(pDescriptorHscrollText->meScrollType & HSCROLL_SCROLL_MASK)
						{
							case HSCROLL_SCROLL_FINISH_BEFORE_RESCROLL:
								if(pObjectMultilineText->moParam.mcCurrentEntry == 0)
								{
									HscrollReset(pThis);
									break;
								}
								// else fall through
							case HSCROLL_SCROLL_CONTINUOUS:
								switch(pDescriptorHscrollText->meScrollType & HSCROLL_REMOVE_MASK)
								{
									case HSCROLL_REMOVE_SCROLL:
										// Set the pixel count to the left-most position (more or less):
										pObjectHscrollText->moParam.iStartPixel = 0;
										// Set the state correctly:
										pObjectHscrollText->moParam.cCurrentState = HSCROLL_STATE_HOLDING;
										pObjectHscrollText->moParam.mcHoldTimeRemaining = pDescriptorHscrollText->mcHoldTime;
										break;
									case HSCROLL_REMOVE_IMMEDIATE:
										pObjectHscrollText->moParam.cCurrentState = HSCROLL_STATE_SCROLLING_IN;
										pObjectHscrollText->moParam.iStartPixel = pObjectHscrollText->moParam.miBlockPixelLength;
										break;
								}
								break;
							case HSCROLL_SCROLL_INDIVIDUAL_TEXTS:
								// ... then take the start position into account
								// (equivalent to a full reset of the HSCROLL_TEXT object part):
								HscrollReset(pThis);
								break;
						}
						OSDR_GetFormUniStr_ScFormatted((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr, (UINT32)(pObjectHscrollText->moObject.moParam.moEntryTable.mwEntries[pObjectMultilineText->moParam.mcCurrentEntry]));
						pObjectHscrollText->moParam.miBlockPixelLength = (oFormUniStr.mwPixelWidth + ((pFonts[pDescriptorText->mtFontIndex])->m_cCharPixelSpace));
						break;
				}
				MS_DisplayAddObject(pThis);
			}
			break;

		case MS_OP_EMPTY:	// FALL THRU
		case MS_OP_PREPARE_FOR_FREEZE:
			pObjectHscrollText->moParam.cCurrentState = HSCROLL_STATE_RESETTING;
			break;
	}

	return OMULTILINETEXT_Operation((MSO_OBJECT __NEAR *)pObjectMultilineText, MsOp, lParam);
}


BOOL OHSCROLLTEXT_FillOSDSeg(MSO_OBJECT __NEAR* pThis, MS_AREA __NEAR* pAbsArea)
{
	BOOL bStop = FALSE;
	INT16 iPixelCount = pObjectHscrollText->moParam.iStartPixel;
	FORMATED_UNICODE_STRING oFormUniStr;
	UINT8 cCount;

	MS_AREA oAbsAreaCopy;

	memcpy(&oAbsAreaCopy, pAbsArea, sizeof(MS_AREA));

	// display bitmap if required
	OSDR_FillOsdSegBitmapFitArea(OTEXT_GetBitmapFromSet(pThis, pDescriptorText->mpBmpSetBg), pAbsArea);

	if(pObjectHscrollText->moParam.cCurrentState != HSCROLL_STATE_RESETTING)
	{
		oAbsAreaCopy.msX += pDescriptorMultilineText->mnPixelLeftRightBorder;
		oAbsAreaCopy.mwW -= (pDescriptorMultilineText->mnPixelLeftRightBorder * 2);
		oAbsAreaCopy.msY += pDescriptorMultilineText->mnPixelTopBottomBorder;
		oAbsAreaCopy.mwH -= (pDescriptorMultilineText->mnPixelTopBottomBorder * 2);

		for((cCount = pObjectHscrollText->moObject.moParam.mcCurrentEntry);
			(iPixelCount < (INT16)oAbsAreaCopy.mwW) && (bStop == FALSE);
			(iPixelCount += ((INT16)oFormUniStr.mwPixelWidth + ((pFonts[pDescriptorText->mtFontIndex])->m_cCharPixelSpace) +1)))
		{
			// Get the text:
			OSDR_GetFormUniStr_ScFormatted((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr, (UINT32)(pObjectHscrollText->moObject.moParam.moEntryTable.mwEntries[cCount]));

			OSDR_FillOsdSegUniString((FORMATED_UNICODE_STRING __NEAR*)&oFormUniStr,
								(const MS_AREA __NEAR*) &oAbsAreaCopy,
								iPixelCount,	//INT16 sAbsX,
								TEXT_GetAlignYPosition(pDescriptorText->mpXYAlignText, oFormUniStr.mcPixelHeight, oAbsAreaCopy.mwH)	,//INT16 sAbsY,
								ALIGN_H_LEFT,				//UINT8 cAlignH,
								TEXT_GetAlignVertical(pDescriptorText->mpXYAlignText),
								OTEXT_GetColorFromSet(pThis, pDescriptorText->mpColorSetText));


			// Update the local block count, depending on parameters.
			switch(pDescriptorHscrollText->meScrollType & HSCROLL_SCROLL_MASK)
			{
				case HSCROLL_SCROLL_INDIVIDUAL_TEXTS:
					bStop = TRUE;
					break;
				case HSCROLL_SCROLL_CONTINUOUS:
					if(++cCount >=  pObjectHscrollText->moObject.moParam.moEntryTable.mcTableEntryCount)
						cCount = 0;
					break;
				case HSCROLL_SCROLL_FINISH_BEFORE_RESCROLL:
					if(++cCount >=  pObjectHscrollText->moObject.moParam.moEntryTable.mcTableEntryCount)
						bStop = TRUE;
					break;
			}

		}
	}
	return FALSE;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲午夜国产一区99re久久| 亚洲天堂免费在线观看视频| 欧美日韩一区二区三区四区| fc2成人免费人成在线观看播放| 国产精品一二三四| 日韩精品免费视频人成| 天天亚洲美女在线视频| 美腿丝袜一区二区三区| 久久电影网站中文字幕 | 欧美亚洲国产一区在线观看网站| www.欧美精品一二区| 成人午夜免费av| 91麻豆视频网站| 欧美日韩一级二级| 欧美精品一区二区三区四区 | 国产精品1区2区| 成人av一区二区三区| 91在线视频播放| 欧美视频在线播放| 日韩免费观看高清完整版 | www.综合网.com| 色婷婷久久久久swag精品| 欧美日产国产精品| 精品福利av导航| 国产精品国产自产拍高清av | 亚洲日本va在线观看| 亚洲综合一区在线| 日韩av一区二区三区四区| 国产一区二区三区综合| 色中色一区二区| 精品国产伦一区二区三区免费| 国产亚洲精品bt天堂精选| 一区二区三区成人| 国内外成人在线| 欧洲av一区二区嗯嗯嗯啊| 欧美精品一区二区三区蜜桃视频| 自拍偷在线精品自拍偷无码专区| 首页综合国产亚洲丝袜| 成人高清伦理免费影院在线观看| 欧美日韩中文字幕一区二区| 久久亚洲免费视频| 亚洲国产美女搞黄色| 成人综合在线观看| 欧美一卡二卡在线观看| 日韩毛片精品高清免费| 激情综合色综合久久综合| 精品婷婷伊人一区三区三| 国产精品免费视频网站| 久久精品免费观看| 欧美久久久久中文字幕| 中文字幕日本不卡| 国产精品中文字幕一区二区三区| 欧美色综合影院| 亚洲欧美自拍偷拍| 福利电影一区二区三区| 精品日韩99亚洲| 午夜久久久久久久久| 91丨porny丨首页| 欧美国产成人在线| 国产精品一区二区久激情瑜伽| 欧美精品视频www在线观看| 一区二区在线看| 99久久夜色精品国产网站| 国产午夜亚洲精品不卡| 国产在线精品视频| 久久这里只有精品视频网| 久久国产精品一区二区| 精品欧美一区二区久久| 免费看精品久久片| 国产精品免费视频一区| 99久久综合狠狠综合久久| 8v天堂国产在线一区二区| 欧美老年两性高潮| 亚洲国产日韩精品| 欧美麻豆精品久久久久久| 亚洲成人综合网站| 欧美在线观看18| 丝袜亚洲另类欧美| 欧美一级日韩不卡播放免费| 青青草91视频| 久久免费美女视频| 丁香五精品蜜臀久久久久99网站| 久久精品人人做人人爽人人| 国产99一区视频免费| 中文字幕一区二区三区在线观看 | 国产精品一级片| 国产日韩一级二级三级| 豆国产96在线|亚洲| 中文字幕在线播放不卡一区| 91色porny在线视频| 日日夜夜一区二区| 337p粉嫩大胆噜噜噜噜噜91av| 国产精品亚洲第一区在线暖暖韩国| 精品欧美一区二区三区精品久久| 国产自产2019最新不卡| 成人欧美一区二区三区黑人麻豆| 91老师片黄在线观看| 日韩有码一区二区三区| 欧美xxxx在线观看| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲另类春色校园小说| 欧美一卡二卡在线观看| 成人动漫中文字幕| 午夜精品爽啪视频| 国产欧美一区二区三区沐欲| 91久久精品一区二区三| 久久精品久久久精品美女| 国产精品伦理一区二区| 欧美一区2区视频在线观看| 成人免费毛片aaaaa**| 亚洲国产视频a| 欧美国产成人精品| 91麻豆精品国产91久久久| 99久久综合精品| 国产一区欧美二区| 亚洲成人精品一区| 国产精品久久久久久久久免费相片 | 日韩av电影免费观看高清完整版| 国产欧美日韩另类一区| 欧美日韩国产精品成人| 国产综合色精品一区二区三区| 亚洲九九爱视频| 久久久不卡网国产精品一区| 欧美私模裸体表演在线观看| 国产.欧美.日韩| 日韩和欧美的一区| 自拍偷拍欧美精品| 久久午夜羞羞影院免费观看| 欧美最猛性xxxxx直播| 成人黄色小视频在线观看| 久久国产夜色精品鲁鲁99| 一二三区精品视频| 亚洲色欲色欲www| 国产三区在线成人av| 91精品国产综合久久久久| 91福利资源站| 91黄色激情网站| 色婷婷精品久久二区二区蜜臀av | 欧美图片一区二区三区| 不卡影院免费观看| 国产馆精品极品| 国产精选一区二区三区| 精品一区二区av| 精品在线播放午夜| 蜜桃av一区二区| 激情小说亚洲一区| 国内精品伊人久久久久av一坑| 麻豆国产91在线播放| 久久99在线观看| 乱中年女人伦av一区二区| 青青草97国产精品免费观看 | 国产91精品在线观看| 成人免费看片app下载| 国产成人精品亚洲777人妖| 国产精品一区二区男女羞羞无遮挡| 精品一区二区三区免费| 久草在线在线精品观看| 国产在线观看一区二区| 成人综合在线视频| 99在线精品一区二区三区| 91年精品国产| 欧美日韩成人综合在线一区二区| 欧美日韩一区二区三区四区五区| 欧美精品自拍偷拍| 精品国产第一区二区三区观看体验| 久久精品视频在线免费观看| 国产欧美日韩中文久久| 亚洲欧美一区二区久久| 亚洲 欧美综合在线网络| 久久国产精品99久久人人澡| 国产91露脸合集magnet| 色噜噜狠狠一区二区三区果冻| 欧美视频在线播放| 精品盗摄一区二区三区| 国产精品欧美久久久久一区二区| 亚洲色图视频网| 免费视频最近日韩| 国产精品小仙女| 欧洲一区在线观看| 精品久久久久久久久久久久包黑料| 久久人人爽人人爽| 一区二区在线电影| 久久99久久99精品免视看婷婷| 成人精品高清在线| 欧美夫妻性生活| 国产精品网站在线| 日韩国产精品久久| 91视视频在线观看入口直接观看www | 欧美美女一区二区三区| 亚洲精品一区二区三区蜜桃下载| 亚洲色图丝袜美腿| 国产揄拍国内精品对白| 色婷婷亚洲精品| 久久精品免费在线观看| 五月婷婷综合网| 波多野结衣亚洲一区| 日韩三级av在线播放| 亚洲激情自拍偷拍| 成人免费看片app下载| 精品国精品自拍自在线|