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

📄 tidtv_menusetupproc.c

📁 ti的数字电视芯片 tvp9000的源码
💻 C
📖 第 1 页 / 共 5 页
字号:
				TiDTV_OsdRect(&TiDTV_OsdScreenMain, SUB_MENU_VCHIPPARENTGUIDEBLOCK_XPOSITION + 100 + 56 * i, SUB_MENU_VCHIPPARENTGUIDEBLOCK_YPOSITION + 40 + 40 * ParentGuideCursor[0], 56, 40,
				 TI_DTV_G_BORDER | TI_DTV_G_OPAQUE, SUB_MENU_CHARACTER_UNSEL_FRONTCOLOR, SUB_MENU_CHARACTER_LIGHTGRAY, SUB_MENU_CHARACTER_UNSEL_FRONTCOLOR);
				if((mask[i] & *Pt) == mask[i])
				{
					TiDTV_OsdMove(&TiDTV_OsdScreenMain, SUB_MENU_VCHIPPARENTGUIDEBLOCK_XPOSITION + 112 + 56 * i, SUB_MENU_VCHIPPARENTGUIDEBLOCK_YPOSITION + 42 + 40 * ParentGuideCursor[0]);
					TiDTV_OsdDrawBitMap(&TiDTV_OsdScreenMain, BMP_LOCKER);
				}
			}	
		} 
		InParentalGuidelines = 1;
	} 

	{			// highlight first one

		Pt = (USHORT*)(&UserPreferSetting.UserPrefer_SetupVChipTVParentalGuideTVY + ParentGuideCursor[0]);
		TiDTV_OsdRect(&TiDTV_OsdScreenMain, SUB_MENU_VCHIPPARENTGUIDEBLOCK_XPOSITION + 100 + 56 * ParentGuideCursor[1], SUB_MENU_VCHIPPARENTGUIDEBLOCK_YPOSITION + 40 + 40 * ParentGuideCursor[0], 56, 40,
			 TI_DTV_G_BORDER | TI_DTV_G_OPAQUE, SUB_MENU_CHARACTER_SEL_FRONTCOLOR, SUB_MENU_CHARACTER_LIGHTGRAY, SUB_MENU_CHARACTER_SEL_FRONTCOLOR);


		if((mask[ParentGuideCursor[1]] & *Pt) == mask[ParentGuideCursor[1]])
		{
			TiDTV_OsdMove(&TiDTV_OsdScreenMain, SUB_MENU_VCHIPPARENTGUIDEBLOCK_XPOSITION + 112 + 56 * ParentGuideCursor[1], SUB_MENU_VCHIPPARENTGUIDEBLOCK_YPOSITION + 42 + 40 * ParentGuideCursor[0]);
			TiDTV_OsdDrawBitMap(&TiDTV_OsdScreenMain, BMP_SELLOCKER);
		}
	}
	return 0;
}

USHORT TiDTV_TVParentalGuidelinesRestoreCurrentBlock()
{
	USHORT *Pt; 
	USHORT	mask[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
			// highlight first one
	TiDTV_OsdRect(&TiDTV_OsdScreenMain, SUB_MENU_VCHIPPARENTGUIDEBLOCK_XPOSITION + 100 + 56 * ParentGuideCursor[1], SUB_MENU_VCHIPPARENTGUIDEBLOCK_YPOSITION + 40 + 40 * ParentGuideCursor[0], 56, 40,
					 TI_DTV_G_BORDER | TI_DTV_G_OPAQUE, SUB_MENU_CHARACTER_UNSEL_FRONTCOLOR, SUB_MENU_CHARACTER_LIGHTGRAY, SUB_MENU_CHARACTER_UNSEL_FRONTCOLOR);


	Pt = (USHORT*)(&UserPreferSetting.UserPrefer_SetupVChipTVParentalGuideTVY + ParentGuideCursor[0]);
	if((mask[ParentGuideCursor[1]] & *Pt) == mask[ParentGuideCursor[1]])
	{
		TiDTV_OsdMove(&TiDTV_OsdScreenMain, SUB_MENU_VCHIPPARENTGUIDEBLOCK_XPOSITION + 112 + 56 * ParentGuideCursor[1], SUB_MENU_VCHIPPARENTGUIDEBLOCK_YPOSITION + 42 + 40 * ParentGuideCursor[0]);
		TiDTV_OsdDrawBitMap(&TiDTV_OsdScreenMain, BMP_LOCKER);

	}
	return 0;
}

/*******************************************************************************
*	@RoutineName:: DtvSetupVChipParentGuidelinesOpcodeParser
*
*	@Description:: Parental Guide OpcodeParser
*
*	@Input		::None
*		
*
*	@Output		:: none
*
*	@Return		:: none
*******************************************************************************/


int DtvSetupVChipParentGuidelinesOpcodeParser()
{

	short j;
	USHORT FoundKey;
	USHORT *Pt;
	char k;
	TI_DTV_MENU_ITEM *pNextItem;
	
	USHORT	mask[8] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};

//	USHORT temp;
	
	
	// restore current



	switch(TiDTV_KeyBuf.CurKeyCodeMenu)
	{
		case	TI_DTV_IR_KEY_RIGHT:
			if(InParentalGuidelines != 0)
			{
				TiDTV_TVParentalGuidelinesRestoreCurrentBlock();

				if(ParentGuideCursor[1] < 5)
				{
					k = ParentGuideCursor[1];
					k++;  
					if(ValidPosition[ParentGuideCursor[0]][k] == 1)
					{
						ParentGuideCursor[1] = k;
					}
					else
					{
						for(j = k; j < 6; j++)
						{
							if(ValidPosition[ParentGuideCursor[0]][j] == 1)
							{
								ParentGuideCursor[1] = j;  				
								break;
							}
						}
						
					}
				}
				TiDTV_TVParentalGuidelinesHandler();
			}
			else
			{
			}
			TiDTV_TVParentalGuidelinesHandler();
			FoundKey = 1;	
			break;
		case	TI_DTV_IR_KEY_LEFT:
			if(InParentalGuidelines != 0)
			{
				if(ParentGuideCursor[1] > 0)
				{
					TiDTV_TVParentalGuidelinesRestoreCurrentBlock();
					k = ParentGuideCursor[1];
					k--;  
					if(ValidPosition[ParentGuideCursor[0]][k] == 1)
					{
						ParentGuideCursor[1] = k;
					}
					else
					{
						for(j = k; j >= 0; j--)
						{
							if(ValidPosition[ParentGuideCursor[0]][j] == 1)
							{
								ParentGuideCursor[1] = j;  				
								break;
							}
						}
						
					}
					TiDTV_TVParentalGuidelinesHandler();
				}
			}	
			else
			{
				ParentGuideCursor[0] = 0;
				ParentGuideCursor[1] = 0;
				InParentalGuidelines = 0;  
			//	DtvDispSubMenuItem(pCurDtvMenu->pCurItem, SUB_MENU_CHARACTER_BACKCOLOR, SUB_MENU_CHARACTER_BACKCOLOR);
				pCurDtvMenu->pNextMenu = (TI_DTV_MENU *) &TiDtvMenuSetup;
				DtvDispSubMenu();
				pCurDtvMenu = pCurDtvMenu->pNextMenu;
				DtvDispSubMenuItem(pCurDtvMenu->pCurItem, SUB_MENU_CHARACTER_SEL_FRONTCOLOR, SUB_MENU_CHARACTER_SEL_FRONTCOLOR);
			}
			FoundKey = 1;	
			break;
		case	TI_DTV_IR_KEY_UP:
			if(InParentalGuidelines != 0)
			{			
				TiDTV_TVParentalGuidelinesRestoreCurrentBlock();
				if(ParentGuideCursor[0] > 0)
				{
					k = ParentGuideCursor[0];
					k--;  
					if(ValidPosition[k][ParentGuideCursor[1]] == 1)
					{
						ParentGuideCursor[0] = k;
					}
					else
					{
						for(j = k; j >= 0; j--)
						{
							if(ValidPosition[j][ParentGuideCursor[1]] == 1)
							{
								ParentGuideCursor[0] = j;  				
								break;
							}
						}
						
					}
				}
				TiDTV_TVParentalGuidelinesHandler();
			}
			else
			{
				InParentalGuidelines = 0;
				pNextItem = pCurDtvMenu->pCurItem->pUpItem;
				DtvDispSubMenuItem(pCurDtvMenu->pCurItem, SUB_MENU_CHARACTER_BACKCOLOR, SUB_MENU_CHARACTER_BACKCOLOR);
				// Display the Cursor (current position)
				pCurDtvMenu->pCurItem = pNextItem;
				DtvDispSubMenuItem(pCurDtvMenu->pCurItem, SUB_MENU_CHARACTER_SEL_FRONTCOLOR, SUB_MENU_CHARACTER_SEL_FRONTCOLOR);
			}
			FoundKey = 1;	
			break;
		case	TI_DTV_IR_KEY_DOWN:
			if(InParentalGuidelines != 0)
			{
				TiDTV_TVParentalGuidelinesRestoreCurrentBlock();
				if(ParentGuideCursor[0] < 5)
				{
					k = ParentGuideCursor[0];
					k++;  
					if(ValidPosition[k][ParentGuideCursor[1]] == 1)
					{
						ParentGuideCursor[0] = k;
					}
					else
					{
						for(j = k; j < 6; j++)
						{
							if(ValidPosition[j][ParentGuideCursor[1]] == 1)
							{
								ParentGuideCursor[0] = j;  				
								break;
							}
						}
						
					}
				}
				TiDTV_TVParentalGuidelinesHandler();
			}
			else
			{
				InParentalGuidelines = 0;
				pNextItem = pCurDtvMenu->pCurItem->pDownItem;
				DtvDispSubMenuItem(pCurDtvMenu->pCurItem, SUB_MENU_CHARACTER_BACKCOLOR, SUB_MENU_CHARACTER_BACKCOLOR);
				// Display the Cursor (current position)
				pCurDtvMenu->pCurItem = pNextItem;
				DtvDispSubMenuItem(pCurDtvMenu->pCurItem, SUB_MENU_CHARACTER_SEL_FRONTCOLOR, SUB_MENU_CHARACTER_SEL_FRONTCOLOR);
			}	
			FoundKey = 1;	
			break;
		case TI_DTV_IR_KEY_SELECT:
			if(InParentalGuidelines != 0)
			{
				TiDTV_TVParentalGuidelinesRestoreCurrentBlock();
				
//			pLastNode = pCurrentNode;
				if(ParentGuideCursor[1] != 0)
				{
					Pt = (USHORT*)(&UserPreferSetting.UserPrefer_SetupVChipTVParentalGuideTVY + ParentGuideCursor[0]);
					*Pt = (USHORT)(*Pt ^ mask[ParentGuideCursor[1]]);				
				}
				else
				{
					Pt = (USHORT*)(&UserPreferSetting.UserPrefer_SetupVChipTVParentalGuideTVY + ParentGuideCursor[0]);
					if(*Pt & mask[0] == mask[0])
					{
						*Pt = 0;
					}
					else
					{
						*Pt = 0xff;
					
					}
					InParentalGuidelines = 2;				
				}
			}
//			FoundKey = 1;	
			TiDTV_TVParentalGuidelinesHandler();
			break;
		case TI_DTV_IR_KEY_EXIT:
			if(InParentalGuidelines != 0)
			{
				pCurDtvMenu->pNextMenu = (TI_DTV_MENU *) &TiDtvMenuSetupVChip;
			}
			else
			{
				pCurDtvMenu->pNextMenu = (TI_DTV_MENU *) &TiDtvMenuSetup;
			
			}
			ParentGuideCursor[0] = 0;
			ParentGuideCursor[1] = 0;
			InParentalGuidelines = 0;  
			DtvDispSubMenu();
			pCurDtvMenu = pCurDtvMenu->pNextMenu;
			DtvDispSubMenuItem(pCurDtvMenu->pCurItem, SUB_MENU_CHARACTER_SEL_FRONTCOLOR, SUB_MENU_CHARACTER_SEL_FRONTCOLOR);
			TiDTV_UpdateNavigationBar((TI_DTV_MENU_NODE_NAVIGATION *) &TiDTV_Basic_Navigation, 0);
			break;		
		default:
			FoundKey = 0;	
			break; 
	}
	return FoundKey;
}

/*******************************************************************************
*	@RoutineName:: DtvVChipPassWordChangeInitFuct
*
*	@Description:: VChip PassWord Change Init
*
*	@Input		:: TI_DTV_MENU_ITEM *pMenuItem
*		
*
*	@Output		:: none
*
*	@Return		:: none
*******************************************************************************/

void	DtvVChipPassWordChangeInitFuct(TI_DTV_MENU_ITEM *pMenuItem)
{
	TiDTV_MenuPageEndInitFuct(pMenuItem);
}

/*******************************************************************************
*	@RoutineName:: DtvVChipPassWordChangeActFuct
*
*	@Description:: VChip PassWord Change Init
*
*	@Input		:: TI_DTV_MENU_ITEM *pMenuItem
*		
*
*	@Output		:: none
*
*	@Return		:: none
*******************************************************************************/

int	DtvVChipPassWordChangeActFuct(void)
{
	TiDTV_VChipPassWordChangeOpcodeParser();
	return 1;
}

/*******************************************************************************
*	@RoutineName:: TiDTV_VChipPassWordChangeHandler
*
*	@Description:: VChip PassWord Change Handler
*
*	@Input		:: none
*		
*
*	@Output		:: none
*
*	@Return		:: none
*******************************************************************************/

USHORT TiDTV_VChipPassWordChangeHandler()
{
	USHORT i;
	USHORT yPos;
	USHORT BeforeSetCharacter[] = {'-', 0};
	USHORT AfterSetCharacter[] = {'*', 0}; 	

	if(PassWordInputEnd == 1)
	{
		yPos = SUB_MENU_VCHIPPASSWORD_YPOSITION + 240;
		TiDTV_OsdSetCharColor(&TiDTV_OsdScreenMain, SUB_MENU_CHARACTER_SEL_FRONTCOLOR, SUB_MENU_CHARACTER_BACKCOLOR);
		TiDTV_OsdMove(&TiDTV_OsdScreenMain, SUB_MENU_TITLE_XPOSITION, yPos - 36 );
		if(PassWordCorrect == 2)
		{
			TiDTV_OsdDrawString(&TiDTV_OsdScreenMain, pCurDtvMsgBase[NEWPINSUCCESS_INDEX]);

		}
		else
		{
			TiDTV_OsdDrawString(&TiDTV_OsdScreenMain, pCurDtvMsgBase[NEWPINFAIL_INDEX]);
		}
		return;
	}

	if(PassWordCorrect == 0)
	{
		yPos = SUB_MENU_VCHIPPASSWORD_YPOSITION;
		TiDTV_OsdSetCharColor(&TiDTV_OsdScreenMain, SUB_MENU_CHARACTER_UNSEL_FRONTCOLOR, SUB_MENU_CHARACTER_BACKCOLOR);
		TiDTV_OsdMove(&TiDTV_OsdScreenMain, SUB_MENU_TITLE_XPOSITION, yPos - 36 );
		TiDTV_OsdDrawString(&TiDTV_OsdScreenMain, pCurDtvMsgBase[ENTERNEWPIN_INDEX]);
	}
	else if(PassWordCorrect == 1)
	{
		yPos = SUB_MENU_VCHIPPASSWORD_YPOSITION + 120;
		TiDTV_OsdSetCharColor(&TiDTV_OsdScreenMain, SUB_MENU_CHARACTER_UNSEL_FRONTCOLOR, SUB_MENU_CHARACTER_BACKCOLOR);
		TiDTV_OsdMove(&TiDTV_OsdScreenMain, SUB_MENU_TITLE_XPOSITION, yPos - 36 );
		TiDTV_OsdDrawString(&TiDTV_OsdScreenMain, pCurDtvMsgBase[CONFIRMNEWPIN_INDEX]);
	}
	
	for(i = 0; i < 4; i++)
	{
		if(i == PassWordCursor)
		
		{
		TiDTV_OsdRect(&TiDTV_OsdScreenMain, SUB_MENU_VCHIPPASSWORD_XPOSITION + 100 * i , yPos, 60, 60,
					 TI_DTV_G_BORDER | TI_DTV_G_OPAQUE, SUB_MENU_CHARACTER_SEL_FRONTCOLOR, SUB_MENU_CHARACTER_BACKCOLOR, SUB_MENU_CHARACTER_SEL_FRONTCOLOR);	

		TiDTV_OsdMove(&TiDTV_OsdScreenMain, SUB_MENU_VCHIPPASSWORD_XPOSITION + 100 * i + 24, yPos + 14 );
		TiDTV_OsdSetCharColor(&TiDTV_OsdScreenMain, SUB_MENU_CHARACTER_SEL_FRONTCOLOR, SUB_MENU_CHARACTER_BACKCOLOR);
		TiDTV_OsdDrawString(&TiDTV_OsdScreenMain, BeforeSetCharacter);
		}
		else
		{
		TiDTV_OsdRect(&TiDTV_OsdScreenMain, SUB_MENU_VCHIPPASSWORD_XPOSITION + 100 * i , yPos, 60, 60,
					 TI_DTV_G_BORDER | TI_DTV_G_OPAQUE, SUB_MENU_CHARACTER_HIGHTLIGHTCOLOR, SUB_MENU_CHARACTER_BACKCOLOR, SUB_MENU_CHARACTER_HIGHTLIGHTCOLOR);
		}
		if(i < PassWordCursor)
		{
			TiDTV_OsdMove(&TiDTV_OsdScreenMain, SUB_MENU_VCHIPPASSWORD_XPOSITION + 100 * i + 24, yPos + 14 );
			TiDTV_OsdSetCharColor(&TiDTV_OsdScreenMain, SUB_MENU_CHARACTER_UNSEL_FRONTCOLOR, SUB_MENU_CHARACTER_BACKCOLOR);
			TiDTV_OsdDrawString(&TiDTV_OsdScreenMain, AfterSetCharacter);
		}
		else if (i > PassWordCursor)
		{
			TiDTV_OsdMove(&TiDTV_OsdScreenMain, SUB_MENU_VCHIPPASSWORD_XPOSITION + 100 * i + 24, yPos + 14 );
			TiDTV_OsdSetCharColor(&TiDTV_OsdScreenMain, SUB_MENU_CHARACTER_UNSEL_FRONTCOLOR, SUB_MENU_CHARACTER_BACKCOLOR);
			TiDTV_OsdDrawString(&TiDTV_OsdScreenMain, BeforeSetCharacter);
		}
	}
	return 0;
}


/*******************************************************************************
*	@RoutineName:: TiDTV_VChipPassWordChangeOpcodeParser
*
*	@Description:: VChip PassWord Change OpcodeParser
*
*	@Input		:: none
*		
*
*	@Output		:: none
*
*	@Return		:: none
*******************************************************************************/

int TiDTV_VChipPassWordChangeOpcodeParser()
{
	USHORT j, PassWordInputError;
	int FoundKey;
	USHORT *Pt;
	TI_DTV_MENU_ITEM *pNextItem;
	
//	i = 0;
	FoundKey = 0;
	PassWordInputError = 0;

	
	switch(TiDTV_KeyBuf.CurKeyCodeMenu)
	{
		case TI_DTV_IR_KEY_0:			
		case TI_DTV_IR_KEY_1:				
		case TI_DTV_IR_KEY_2:				
		case TI_DTV_IR_KEY_3:				// Numeric 3
		case TI_DTV_IR_KEY_4:				// Numeric 4
		case TI_DTV_IR_KEY_5:				// Numeric 5
		case TI_DTV_IR_KEY_6:				// Numeric 6
		case TI_DTV_IR_KEY_7:				// Numeric 7
		case TI_DTV_IR_KEY_8:				// Numeric 8
		case TI_

⌨️ 快捷键说明

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