?? osd2csl.c
字號:
/* ##########################################################################
# Terawins Inc. Company #
# Copyright (c) 2005, All rights reserved #
# #
# All rights reserved. Reproduction in whole or in parts is prohibited #
# without the prior written consent. #
########################################################################## */
////////////////////////////////////////////////////////////////////////////////
// //
// LCD Application Firmware //
// ========================================================================== //
// //
// Module : OSD2CSL.c //
// //
// Purpose : T128/T108 OSD 2 Chip support libary. //
// //
// Version : 1.00 //
// //
// Compiler : Keil 8051 C Compiler v8.05a //
// //
// Reference: [1] Keil C51 Compiler User's Guide 09.2001, Keil Software, Inc.//
// //
// ========================================================================== //
// //
// Date Author Reason (what and why) //
// ----------- ------------- ---------------------------------------------- //
// 2007/02/07 Kevin Hsu //
// //
// //
////////////////////////////////////////////////////////////////////////////////
#include "Common.h"
#include "Global.h"
#include "ICControl.h"
#include "System.h"
#include "TWICreg.h"
#include "OSD2_Define.h"
#include "OSD2CSL.h"
//#include "ICON2BP12X18.H"
#include "Icon4BP12x12.H"
#include "IconJigsaw.h"
#ifdef ICON2BP
//=============================================================================
// Function : void OSD2Show2BPIcon(uCHAR *string,uCHAR x,uCHAR y,
// uCHAR cBlink,uCHAR HVScale,uCHAR MenuIndex)
// Prupose : Show OSD2 2BPP
// Arguments : uCHAR *string
// uCHAR x
// uCHAR y
// uCHAR cBlink
// uCHAR HVScale
// uCHAR MenuIndex
// Returns : --
// External : -- -- --
//-----------------------------------------------------------------------------
// Detail Description:
// -------------------
// Show OSD2 2BPP
// --------------
//=============================================================================
void OSD2Show2BPIcon(uCHAR *string,uCHAR x,uCHAR y,uCHAR cBlink,uCHAR HVScale,uCHAR MenuIndex)
{
uCHAR *pString= string+1;
uCHAR i,j,k;
//uCHAR iTeststr[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,EOL};
//pString = iTeststr;
k=0;
if(MenuIndex == MENU1)
{
while((*pString)!= EOL)
{
//~Set RAtt_C~//
OSD2SetRamAddr(Menu1StrAdr+(Menu1Width+4)*y+3);
OSD2SetRamData(((0x0000+HVScale)<<6)|(Menu1Width));
OSD2SetRamAddr(Menu1StrAdr+(Menu1Width+4)*y+x+4);
j=0;
k=x;
//~Stuff Strings~//
while(((*pString) != EOL)&&(k<Menu1Width)&&(j<string[0]))
{
OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(IconColorIndex[(*pString)]&0x0F)<<9)|(*pString++));
k++;
j++;
}
y++;
}
}
else if(MenuIndex==MENU2)
{
//~Set RAtt_C~//
OSD2SetRamAddr(Menu2StrAdr+(Menu2Width+4)*y+3);
OSD2SetRamData(((0x0000+HVScale)<<6)|(Menu2Width));
OSD2SetRamAddr(Menu2StrAdr+(Menu2Width+4)*y+x+4);
k=x;
while((*pString) != EOL)
{
//~Stuff Strings~//
while(((*pString) != EOL)&&(k<Menu2Width)&&(j<string[0]))
{
OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(IconColorIndex[(*pString)]&0x0F)<<9)|(*pString++));
k++;
j++;
}
y++;
}
}
}
#endif //ICON2BP
#ifdef ICON4BP
//=============================================================================
// Function : OSD2Show4BPIcon(uCHAR *string,uCHAR x,uCHAR y,uCHAR cBlink,
// uCHAR HVScale,uCHAR Color, uCHAR MenuIndex,uCHAR bColor)
// Prupose : Show OSD2 4BPP
// Arguments : uCHAR *string
// uCHAR x
// uCHAR y
// uCHAR cBlink <---0: No Blink
// uCHAR HVScale
// uCHAR Color <---0: For Default IconColorHighByte.
// 1~15: For user define.
// uCHAR MenuIndex <---1: For Menu 1. 2: For Menu 2.
// Returns : --
// External : -- -- --
//-----------------------------------------------------------------------------
// Detail Description:
// -------------------
// Show OSD2 4BPP
// --------------
//=============================================================================
void OSD2Show4BPIcon(uCHAR *string,uCHAR x,uCHAR y,uCHAR cBlink,uCHAR HVScale,uCHAR Color, uCHAR MenuIndex,uCHAR bColor)
{
uCHAR Char= *(string+2);
uCHAR j,k;
uCHAR V;
if(MenuIndex == MENU1)
{
for(V=0; V<string[1];V++)
{
//~Set RAtt_C~//
OSD2SetRamAddr(Menu1StrAdr+(Menu1Width+4)*y+3);
// OSD2SetRamData(((0x0000+HVScale)<<6)|(Menu1Width));
if(bColor < 4)
{
OSD2SetRamData((((0x0000+HVScale)<<6)&0x03C0)|((0x0000+Menu1Width)&0x003F));
}
if(bColor > 4)
{
OSD2SetRamData((((0x0000+HVScale)<<6)&0x03C0)|((0x0000+Menu1Width)&0x003F)|0x0400);
}
OSD2SetRamAddr(Menu1StrAdr+(Menu1Width+4)*y+x+4);
//~Stuff Strings~//
j=0;
k=x;
while((k<Menu1Width)&&(j<string[0]))
{
if(Color)
OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)bColor<<14)|((uWORD)(Color&0x0F)<<9)|(Char++));
else
OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)bColor<<14)|((uWORD)(IconColorHighByte[Char]&0x0F)<<9)|(Char++));
k++;
j++;
}
y++;
}
}
else if(MenuIndex == MENU2)
{
for(V=0; V<string[1];V++)
{
//~Set RAtt_C~//
OSD2SetRamAddr(Menu2StrAdr+(Menu2Width+4)*y+3);
OSD2SetRamData(((0x0000+HVScale)<<6)|(Menu2Width));
OSD2SetRamAddr(Menu2StrAdr+(Menu2Width+4)*y+x+4);
//~Stuff Strings~//
j=0;
k=x;
while((k<Menu2Width)&&(j<string[0]))
{
if(Color)
OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(Color&0x0F)<<9)|(Char++));
else
OSD2SetRamData(0x0000|((uWORD)(cBlink)<<13)|((uWORD)(IconColorHighByte[Char]&0x0F)<<9)|(Char++));
k++;
j++;
}
y++;
}
}
}
#endif //ICON4BP
void OSD2ClearMenu(uCHAR MenuIndex)
{
uCHAR i;
if(MenuIndex == MENU1)
{
for(i=0; i<Menu1Height; i++)
{
OSD2SetRamAddr(Menu1StrAdr+(Menu1Width+4)*i);
//~Set RAtt_V~//
if(i==0)
OSD2SetRamData(0x4000|Menu1StartY);
else
OSD2SetRamData(0xE001);
//~Set RAtt_H~//
OSD2SetRamData(0x6000|Menu1StartX);
//~Set RAtt_A~//
OSD2SetRamData(0xD000|((uWORD)(0&0xF0)<<4));
//~Set RAtt_C~//
OSD2SetRamData(0x0000|(Menu1Width));
m_wBuff[0]=0;
while(m_wBuff[0]<Menu1Width)
{
OSD2SetRamData(0x0000|((uWORD)(0&0x0F)<<9)|(OSD2SPACE));//font167 = blank
m_wBuff[0]++;
}
}
}
else if(MenuIndex == MENU2)
{
for(i=0; i<Menu2Height; i++)
{
OSD2SetRamAddr(Menu2StrAdr+(Menu2Width+4)*i);
//~Set RAtt_V~//
if(i==0)
OSD2SetRamData(0x4000|Menu2StartY);
else
OSD2SetRamData(0xE001);
//~Set RAtt_H~//
OSD2SetRamData(0x6000|Menu2StartX);
//~Set RAtt_A~//
OSD2SetRamData(0xD000|((uWORD)(0&0xF0)<<4));
//~Set RAtt_C~//
OSD2SetRamData(0x0000|(Menu2Width));
m_wBuff[0]=0;
while(m_wBuff[0]<Menu2Width)
{
OSD2SetRamData(0x0000|((uWORD)(0&0x0F)<<9)|(0x00));
m_wBuff[0]++;
}
}
}
}
/*void OSD2PatternFillCtrl(uCHAR Enable,uWORD HStartPos, uWORD HEndPos, uWORD VStartPos, uWORD VEndPos)
{
IC_WritByte(TWIC_P0,OSD_CFG_INDEX,OSD_PT_CTRL);
OSD2CfgWr(OSD_PT_CTRL,IC_ReadByte(TWIC_P0,OSD_CFG_DATA)&((Enable<<7)|0x7F));
OSD2CfgWr(OSD_PT_HSTART_LSB,HStartPos&0x00FF);
OSD2CfgWr(OSD_PT_HSTART_MSB,HStartPos>>8);
OSD2CfgWr(OSD_PT_VSTART_LSB,VStartPos&0x00FF);
OSD2CfgWr(OSD_PT_VSTART_MSB,VStartPos>>8);
OSD2CfgWr(OSD_PT_HEND_LSB,HEndPos&0x00FF);
OSD2CfgWr(OSD_PT_HEND_MSB,HEndPos>>8);
OSD2CfgWr(OSD_PT_VEND_LSB,VEndPos&0x00FF);
OSD2CfgWr(OSD_PT_VEND_MSB,VEndPos>>8);
} */
void OSD2Menu1Enable(void)
{
OSD2CfgWr(OSD_MENU1_ENABLE,0x80);
IC_WritByte(TWIC_P0,0xE2,0x11);
}
/*void OSD2Menu2Enable(void)
{
OSD2CfgWr(OSD_MENU2_ENABLE,0x80);
IC_WritByte(TWIC_P0,0xE2,0x11);
} */
void OSD2Enable(void)
{
OSD2CfgWr(OSD_CTRL,0x80);
IC_WritByte(TWIC_P0,0xE2,0x11);
}
void OSD2Disable(void)
{
OSD2CfgWr(OSD_CTRL,0x00);
}
#ifdef OSD2_DRAWBASIC
void OSD2ShowFuncBtn1(uCHAR xPos,uCHAR yPos,uCHAR uSize,uCHAR bColor)
{
uCHAR i;
OSD2Show4BPIcon(IconFuncBtnUnit1,xPos,yPos,0,0,0,1,bColor);
for(i = 0; i < uSize; i++)
OSD2Show4BPIcon(IconFuncBtnUnit2,xPos+i+1,yPos,0,0,0,1,bColor);
OSD2Show4BPIcon(IconFuncBtnUnit3,xPos+uSize+1,yPos,0,0,0,1,bColor);
}
#endif
#ifdef OSD2_ALLFONT
void OSD2ShowAllFont(void)
{
uCHAR i,j;
uCHAR OSD2FONT[3];
for(j = 0; j < 17; j++)
{
for(i = 0; i<10; i++)
{
OSD2FONT[0] = 1;
OSD2FONT[1] = 1;
OSD2FONT[2] = i+10*j;
OSD2Show4BPIcon(OSD2FONT,1+i,1+j,0,0,0,1,OSD2BGNDColor_TRANSPRENT);
}
}
}
#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -