?? dispatch.c
字號(hào):
/* **********************************************************************
Copyright (c) 2002-2006 Beyond Innovation Technology Co., Ltd
All rights are reserved. Reproduction in whole or in parts is
----------------------------------------------------------------------
Module: DISPATCH.C
Purpose: Implementation of DISPATCH module.
Version: 0.02 07:25PM 2005/05/13
Compiler: Keil 8051 C Compiler v8.01
Reference:
----------------------------------------------------------------------
Modification:
R0.01 07:25PM 2005/05/13 Jeffrey Chang
Reason:
1. Original.
Solution:
********************************************************************** */
#define _DISPATCH_C_
/* ------------------------------------
Header Files
------------------------------------ */
#include "bitek.h"
#include "common.h"
#include "dispatch.h"
#include "eeprom.h"
#include "i2c.h"
#include "key.h"
#include "led.h"
#include "mcu.h"
#include "menu.h"
#include "osd.h"
#include "platform.h"
#include "por.h"
#include "timer.h"
#include "vp.h"
#include "yuv.h"
#if (AUDIO_CFG != AUDIO_00_NONE)
#include "audio.h"
#endif
#if (IR_CFG != IR_00_UNUSE)
#include "ir.h"
#endif
#if (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_5) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_6)
#include "tuner.h"
#endif
/* ------------------------------------
Macro Definitions
------------------------------------ */
/* ------------------------------------
Type Definitions
------------------------------------ */
/* ------------------------------------
Variables Definitions
------------------------------------ */
static UB8 bIdx;
static UB8 bKey;
#if (DISPATCH_BURNINGO)
static UB8 bBurnIn = 0;
#endif
#if (DISPATCH_DISPLAYMODE)
#if (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_1) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_2) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_5) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_6) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_7)
static UB8 CODE * CODE apbDISPLAY_MODE[ DISPLAY_MODE_SIZE ] =
{
//123456
"16:9-1",
"16:9-2",
"4:3",
};
#elif (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_3) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_4)
// Nothing !
#else
static UB8 CODE * CODE apbDISPLAY_MODE[ DISPLAY_MODE_SIZE ] =
{
//123456
"Linear",
"Bypass",
};
#endif
#endif
#if (DISPATCH_TCON_MODE)
static UB8 CODE * CODE apbTCON_MODE[ TCON_MODE_SIZE ] =
{
"RU",
"LU",
"LD",
"RD",
};
#endif
/* ------------------------------------
Function Prototypes
------------------------------------ */
#if (DISPATCH_BURNINGO)
/* -------------------------------------------------------------------
Name: DISPATCH_BurnInGo -
Purpose:
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_BurnInGo (void)
{
if (wTIMER_BurnInTick < 5)
{
wTIMER_BurnInTick = 505; // 500 x 6ms = 3 sec.
// Video Processor Test Pattern
BITEK_TxByte(VP_MAD, VP_03D_TESTPAT_G, 0xFF);
BITEK_TxByte(VP_MAD, VP_03E_TESTPAT_B, (bBurnIn << 4) | 0x8F);
// To enable Free-Run Mode
BITEK_TxByte(VP_MAD,
VP_040_TESTPAT_ATTR,
BITEK_RxByte(VP_MAD, VP_040_TESTPAT_ATTR) | VP_MASK_FREERUN_EN);
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bBurnIn,
OSD_W_VALUE );
bBurnIn++;
bBurnIn &= 0x07;
}
} /* DISPATCH_BurnInGo */
#endif
/* -------------------------------------------------------------------
Name: DISPATCH_Go -
Purpose: To execute DISPATCH.
Passed: None.
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_Go (void)
{
// OSD Auto OFF !
wMENU_Tick = MENU_AUTO_OFF_TIME;
switch (bSystemState)
{
case SYSTEM_POWER_OFF:
switch (bKey = KEY_BufferOut())
{
case KEY_POWER:
case KEY_IR_POWER:
if (fKeyReleased)
POR_PowerOn();
break;
default:
break;
} // switch
break;
case SYSTEM_POWER_ON:
switch (bKey = KEY_BufferOut())
{
case KEY_STILL_POWER:
case KEY_IR_POWER:
if (fKeyReleased)
POR_PowerOff();
break;
case KEY_RELEASE_MENU:
case KEY_IR_MENU:
// To vanish Main/Message Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
MENU_EnableMenu(MENU_MESSAGE, OFF);
bSystemState = SYSTEM_MAIN_MENU;
break;
case KEY_RELEASE_SELECT:
case KEY_IR_SELECT:
tsEYD.bYUV_ID = (tsEYD.bYUV_ID + 1) % MAX_YUV_NO;
// To setup Video Source and try next one !
YUV_SetSourceMode(tsEYD.bYUV_ID);
// To enable BLANK COLOR
//VP_BlankColor(ON);
// To Backup YUV ID
EEPROM_TxBurst(EYD_ADDR_YUV_ID,
sizeof(tsEYD.bYUV_ID),
(UB8 *)&tsEYD.bYUV_ID );
OSD_ShowMsg(OSD_MESSAGE,
OSD_X_SOURCE,
OSD_Y_SOURCE,
apbYUV_Source[ tsEYD.bYUV_ID ]);
OSD_EnableWindow(OSD_MESSAGE, ON);
bLastSB = YUV_SB_BITEK;
bLastCS = YUV_CS_NONE;
break;
#if (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_1) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_2) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_7)
case KEY_UP:
case KEY_IR_UP:
bMenuLastItem = bMenuCurrentItem - bMenuBaseItem + MENU_HUE;
bMenuBaseItem = MENU_HUE;
bMenuCurrentItem = MENU_DISPLAY_MODE;
MENU_ShowMainMenuItem(bMenuBaseItem);
MENU_UpdateMainMenuCursor(bMenuBaseItem, bMenuLastItem, bMenuCurrentItem);
// To clear Sub Menu
MENU_ClearMenu(MENU_SUBMENU);
DISPATCH_DisplayModeMenu();
// To show Sub Menu
MENU_EnableMenu(MENU_SUBMENU, ON);
break;
case KEY_DOWN:
case KEY_IR_DOWN:
bMenuLastItem = bMenuCurrentItem - bMenuBaseItem + MENU_SATURATION;
bMenuBaseItem = MENU_SATURATION;
bMenuCurrentItem = MENU_SHARPNESS;
MENU_ShowMainMenuItem(bMenuBaseItem);
MENU_UpdateMainMenuCursor(bMenuBaseItem, bMenuLastItem, bMenuCurrentItem);
// To clear Sub Menu
MENU_ClearMenu(MENU_SUBMENU);
DISPATCH_SharpnessMenu();
// To show Sub Menu
MENU_EnableMenu(MENU_SUBMENU, ON);
break;
#elif (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_3) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_4)
case KEY_UP:
case KEY_IR_UP:
case KEY_DOWN:
case KEY_IR_DOWN:
bMenuLastItem = bMenuCurrentItem - bMenuBaseItem + MENU_SATURATION;
bMenuBaseItem = MENU_SATURATION;
bMenuCurrentItem = MENU_SHARPNESS;
MENU_ShowMainMenuItem(bMenuBaseItem);
MENU_UpdateMainMenuCursor(bMenuBaseItem, bMenuLastItem, bMenuCurrentItem);
// To clear Sub Menu
MENU_ClearMenu(MENU_SUBMENU);
DISPATCH_SharpnessMenu();
// To show Sub Menu
MENU_EnableMenu(MENU_SUBMENU, ON);
break;
#elif (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_5)
case KEY_UP:
case KEY_IR_UP:
tsEYD.bChannel++;
if (tsEYD.bChannel > TUNER_CHANNEL_MAX)
tsEYD.bChannel = TUNER_CHANNEL_MIN;
TUNER_Tuning(TUNER_VideoFreq(tsEYD.bChannel));
// Show Channel
OSD_ShowValue(OSD_MESSAGE,
OSD_WINDOW1_WIDTH - OSD_W_VALUE,
OSD_Y_VALUE,
tsEYD.bChannel,
OSD_W_VALUE );
MENU_EnableMenu(OSD_MESSAGE, ON);
break;
case KEY_DOWN:
case KEY_IR_DOWN:
tsEYD.bChannel--;
if (tsEYD.bChannel < TUNER_CHANNEL_MIN)
tsEYD.bChannel = TUNER_CHANNEL_MAX;
TUNER_Tuning(TUNER_VideoFreq(tsEYD.bChannel));
// Show Channel
OSD_ShowValue(OSD_MESSAGE,
OSD_WINDOW1_WIDTH - OSD_W_VALUE,
OSD_Y_VALUE,
tsEYD.bChannel,
OSD_W_VALUE );
MENU_EnableMenu(OSD_MESSAGE, ON);
break;
#elif (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_6)
case KEY_UP:
case KEY_IR_UP:
case KEY_DOWN:
case KEY_IR_DOWN:
bMenuLastItem = bMenuCurrentItem - bMenuBaseItem + MENU_HUE;
bMenuBaseItem = MENU_HUE;
bMenuCurrentItem = MENU_VOLUME;
MENU_ShowMainMenuItem(bMenuBaseItem);
MENU_UpdateMainMenuCursor(bMenuBaseItem, bMenuLastItem, bMenuCurrentItem);
// To clear Sub Menu
MENU_ClearMenu(MENU_SUBMENU);
DISPATCH_VolumeMenu();
// To show Sub Menu
MENU_EnableMenu(MENU_SUBMENU, ON);
break;
#elif (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_8)
case KEY_UP:
case KEY_IR_UP:
bMenuLastItem = bMenuCurrentItem - bMenuBaseItem + MENU_BRIGHTNESS;
bMenuBaseItem = MENU_BRIGHTNESS;
bMenuCurrentItem = MENU_BRIGHTNESS;
MENU_ShowMainMenuItem(bMenuBaseItem);
MENU_UpdateMainMenuCursor(bMenuBaseItem, bMenuLastItem, bMenuCurrentItem);
// To clear Sub Menu
MENU_ClearMenu(MENU_SUBMENU);
DISPATCH_BrightnessMenu();
// To show Sub Menu
MENU_EnableMenu(MENU_SUBMENU, ON);
break;
case KEY_DOWN:
case KEY_IR_DOWN:
bMenuLastItem = bMenuCurrentItem - bMenuBaseItem + MENU_CONTRAST;
bMenuBaseItem = MENU_CONTRAST;
bMenuCurrentItem = MENU_CONTRAST;
MENU_ShowMainMenuItem(bMenuBaseItem);
MENU_UpdateMainMenuCursor(bMenuBaseItem, bMenuLastItem, bMenuCurrentItem);
// To clear Sub Menu
MENU_ClearMenu(MENU_SUBMENU);
DISPATCH_ContrastMenu();
// To show Sub Menu
MENU_EnableMenu(MENU_SUBMENU, ON);
break;
#else
case KEY_DOWN:
case KEY_UP:
case KEY_IR_DOWN:
case KEY_IR_UP:
bMenuLastItem = bMenuCurrentItem;
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -