www.pudn.com > Bit1611_demo_code.rar > DISPATCH.C
/* **********************************************************************
Copyright (c) 2002-2006 Beyond Innovation Technology Co., Ltd
All rights are reserved. Reproduction in whole or in parts is
prohibited without the prior written consent of the copyright owner.
----------------------------------------------------------------------
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;
bMenuCurrentItem = MENU_BRIGHTNESS;
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;
#endif
case KEY_UP_DOWN:
bSystemState = SYSTEM_RESET_MENU;
break;
default:
break;
} // switch
break;
case SYSTEM_MAIN_MENU:
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, OFF);
MENU_EnableMenu(MENU_MESSAGE, OFF);
bSystemState = SYSTEM_POWER_ON;
break;
#if (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_1) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_2) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_3) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_4) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_5) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_6) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_7) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_8)
case KEY_DOWN:
case KEY_IR_DOWN:
bMenuLastItem = bMenuCurrentItem;
bMenuCurrentItem++;
if (bMenuCurrentItem == MAINMEMU_SIZE)
{
bMenuLastItem = OSD_MAINMENU_HEIGHT - 1;
bMenuBaseItem = 0;
bMenuCurrentItem = 0;
MENU_ShowMainMenuItem(bMenuBaseItem);
MENU_UpdateMainMenuCursor(bMenuBaseItem, bMenuLastItem, bMenuCurrentItem);
}
else if (bMenuCurrentItem == (bMenuBaseItem + OSD_MAINMENU_HEIGHT))
{
bMenuBaseItem++;
MENU_ShowMainMenuItem(bMenuBaseItem);
}
else
{
MENU_UpdateMainMenuCursor(bMenuBaseItem, bMenuLastItem, bMenuCurrentItem);
}
break;
case KEY_UP:
case KEY_IR_UP:
bMenuLastItem = bMenuCurrentItem;
if (bMenuCurrentItem)
{
bMenuCurrentItem--;
if (bMenuCurrentItem < bMenuBaseItem)
{
bMenuBaseItem--;
MENU_ShowMainMenuItem(bMenuBaseItem);
}
else
{
MENU_UpdateMainMenuCursor(bMenuBaseItem, bMenuLastItem, bMenuCurrentItem);
}
}
else
{
bMenuLastItem = MAINMEMU_SIZE - OSD_WINDOW2_HEIGHT;
bMenuBaseItem = MAINMEMU_SIZE - OSD_WINDOW2_HEIGHT;
bMenuCurrentItem = MAINMEMU_SIZE - 1;
MENU_ShowMainMenuItem(bMenuBaseItem);
MENU_UpdateMainMenuCursor(bMenuBaseItem, bMenuLastItem, bMenuCurrentItem);
}
break;
#else
case KEY_DOWN:
case KEY_UP:
case KEY_IR_DOWN:
case KEY_IR_UP:
bMenuLastItem = bMenuCurrentItem;
if ((bKey == KEY_DOWN) ||
(bKey == KEY_IR_DOWN) )
bMenuCurrentItem = (bMenuCurrentItem + 1)
% OSD_MAINMENU_HEIGHT;
else
bMenuCurrentItem = (bMenuCurrentItem + OSD_MAINMENU_HEIGHT - 1)
% OSD_MAINMENU_HEIGHT;
MENU_UpdateMainMenuCursor(bMenuBaseItem, bMenuLastItem, bMenuCurrentItem);
break;
#endif
case KEY_RELEASE_SELECT:
case KEY_IR_SELECT:
// To vanish Main Menu
MENU_EnableMenu(MENU_MAINMENU, OFF);
// To clear Sub Menu
MENU_ClearMenu(MENU_SUBMENU);
switch (bMenuCurrentItem)
{
case MENU_BRIGHTNESS: // Brightness
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_BrightnessMenu();
break;
case MENU_CONTRAST: // Contrast
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_ContrastMenu();
break;
#if (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_1) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_2) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_5)
case MENU_SATURATION: // Color
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_SaturationMenu();
break;
case MENU_HUE: // Tint
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_HueMenu();
break;
case MENU_DISPLAY_MODE:
DISPATCH_DisplayModeMenu();
break;
case MENU_SHARPNESS:
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_SharpnessMenu();
break;
case MENU_IMAGE_FILTER:
DISPATCH_ImageFilterMenu();
break;
case MENU_TCON_MODE:
DISPATCH_TCON_ModeMenu();
break;
#elif (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_3) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_4)
case MENU_SATURATION: // Color
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_SaturationMenu();
break;
case MENU_HUE: // Tint
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_HueMenu();
break;
case MENU_SHARPNESS:
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_SharpnessMenu();
break;
case MENU_IMAGE_FILTER:
DISPATCH_ImageFilterMenu();
break;
case MENU_TCON_MODE:
DISPATCH_TCON_ModeMenu();
break;
#elif (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_6)
case MENU_SATURATION: // Color
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_SaturationMenu();
break;
case MENU_HUE: // Tint
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_HueMenu();
break;
case MENU_SHARPNESS:
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_SharpnessMenu();
break;
case MENU_IMAGE_FILTER:
DISPATCH_ImageFilterMenu();
break;
case MENU_VOLUME:
DISPATCH_VolumeMenu();
break;
case MENU_TCON_MODE:
DISPATCH_TCON_ModeMenu();
break;
#elif (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_7)
case MENU_SATURATION: // Color
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_SaturationMenu();
break;
case MENU_HUE: // Tint
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_HueMenu();
break;
case MENU_DISPLAY_MODE:
DISPATCH_DisplayModeMenu();
break;
case MENU_SHARPNESS:
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_SharpnessMenu();
break;
case MENU_IMAGE_FILTER:
DISPATCH_ImageFilterMenu();
break;
#elif (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_8)
case MENU_SATURATION: // Color
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_SaturationMenu();
break;
case MENU_HUE: // Tint
if (tsEYD.bYUV_ID == YUV_ID_YCBCR)
{
// To show Main Menu
MENU_EnableMenu(MENU_MAINMENU, ON);
return;
}
DISPATCH_HueMenu();
break;
case MENU_IMAGE_FILTER:
DISPATCH_ImageFilterMenu();
break;
case MENU_TCON_MODE:
DISPATCH_TCON_ModeMenu();
break;
#endif
default:
break;
} // switch
// To show Sub Menu
MENU_EnableMenu(MENU_SUBMENU, ON);
break;
case KEY_UP_DOWN:
bSystemState = SYSTEM_RESET_MENU;
break;
default:
break;
} // switch KEY_BufferOut()
break;
#if (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_1) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_2) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_5)
case SYSTEM_BRIGHTNESS_MENU:
DISPATCH_BrightnessGo();
break;
case SYSTEM_CONTRAST_MENU:
DISPATCH_ContrastGo();
break;
case SYSTEM_SATURATION_MENU:
DISPATCH_SaturationGo();
break;
case SYSTEM_HUE_MENU:
DISPATCH_HueGo();
break;
case SYSTEM_DISPLAY_MODE_MENU:
DISPATCH_DisplayModeGo();
break;
case SYSTEM_SHARPNESS_MENU:
DISPATCH_SharpnessGo();
break;
case SYSTEM_IMAGE_FILTER_MENU:
DISPATCH_ImageFilterGo();
break;
case SYSTEM_TCON_MODE_MENU:
DISPATCH_TCON_ModeGo();
break;
#elif (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_3) || \
(MENU_STYLE_CFG == MENU_STYLE_SCROLLING_4)
case SYSTEM_BRIGHTNESS_MENU:
DISPATCH_BrightnessGo();
break;
case SYSTEM_CONTRAST_MENU:
DISPATCH_ContrastGo();
break;
case SYSTEM_SATURATION_MENU:
DISPATCH_SaturationGo();
break;
case SYSTEM_HUE_MENU:
DISPATCH_HueGo();
break;
case SYSTEM_SHARPNESS_MENU:
DISPATCH_SharpnessGo();
break;
case SYSTEM_IMAGE_FILTER_MENU:
DISPATCH_ImageFilterGo();
break;
case SYSTEM_TCON_MODE_MENU:
DISPATCH_TCON_ModeGo();
break;
#elif (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_6)
case SYSTEM_BRIGHTNESS_MENU:
DISPATCH_BrightnessGo();
break;
case SYSTEM_CONTRAST_MENU:
DISPATCH_ContrastGo();
break;
case SYSTEM_SATURATION_MENU:
DISPATCH_SaturationGo();
break;
case SYSTEM_HUE_MENU:
DISPATCH_HueGo();
break;
case SYSTEM_SHARPNESS_MENU:
DISPATCH_SharpnessGo();
break;
case SYSTEM_IMAGE_FILTER_MENU:
DISPATCH_ImageFilterGo();
break;
case SYSTEM_VOLUME_MENU:
DISPATCH_VolumeGo();
break;
case SYSTEM_TCON_MODE_MENU:
DISPATCH_TCON_ModeGo();
break;
#elif (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_7)
case SYSTEM_BRIGHTNESS_MENU:
DISPATCH_BrightnessGo();
break;
case SYSTEM_CONTRAST_MENU:
DISPATCH_ContrastGo();
break;
case SYSTEM_SATURATION_MENU:
DISPATCH_SaturationGo();
break;
case SYSTEM_HUE_MENU:
DISPATCH_HueGo();
break;
case SYSTEM_DISPLAY_MODE_MENU:
DISPATCH_DisplayModeGo();
break;
case SYSTEM_SHARPNESS_MENU:
DISPATCH_SharpnessGo();
break;
case SYSTEM_IMAGE_FILTER_MENU:
DISPATCH_ImageFilterGo();
break;
#elif (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_8)
case SYSTEM_BRIGHTNESS_MENU:
DISPATCH_BrightnessGo();
break;
case SYSTEM_CONTRAST_MENU:
DISPATCH_ContrastGo();
break;
case SYSTEM_SATURATION_MENU:
DISPATCH_SaturationGo();
break;
case SYSTEM_HUE_MENU:
DISPATCH_HueGo();
break;
case SYSTEM_IMAGE_FILTER_MENU:
DISPATCH_ImageFilterGo();
break;
case SYSTEM_TCON_MODE_MENU:
DISPATCH_TCON_ModeGo();
break;
#endif
case SYSTEM_RESET_MENU:
DISPATCH_VersionMenu();
// To reset system !
DISPATCH_ResetMenu();
// To turn off backlight !
MCU_BL_OFF;
POR_PowerOn();
break;
case SYSTEM_BURN_IN_MENU:
DISPATCH_BurnInGo();
break;
default:
break;
} /* switch */
} /* DISPATCH_Go */
#if (DISPATCH_BLACKLEVEL)
/* -------------------------------------------------------------------
Name: DISPATCH_BlacklevelGo -
Purpose: To adjust Blacklevel of VP.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_BlacklevelGo (void)
{
switch (bKey = KEY_BufferOut())
{
case KEY_STILL_POWER:
case KEY_IR_POWER:
POR_PowerOff();
break;
case KEY_UP:
case KEY_DOWN:
case KEY_IR_UP:
case KEY_IR_DOWN:
if ((bKey == KEY_DOWN) ||
(bKey == KEY_IR_DOWN) )
{
if (tsEGD.bBlackLevel > BLACKLEVEL_MIN)
tsEGD.bBlackLevel -= BLACKLEVEL_STEP;
}
else
{
if (tsEGD.bBlackLevel < BLACKLEVEL_MAX)
tsEGD.bBlackLevel += BLACKLEVEL_STEP;
}
// To backup
EEPROM_TxBurst(EGD_ADDR_BLACKLEVEL,
sizeof(tsEGD.bBlackLevel),
(UB8 *)&tsEGD.bBlackLevel );
bIdx = (tsEGD.bBlackLevel - BLACKLEVEL_MIN) / BLACKLEVEL_STEP;
// To adjust VP
VP_SetBlackLevel(tsEGD.bBlackLevel );
// To show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Progress Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
BLACKLEVEL_OSD_MIN,
BLACKLEVEL_OSD_MAX,
bIdx,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
break;
case KEY_RELEASE_MENU:
case KEY_IR_MENU:
case KEY_RELEASE_SELECT:
case KEY_IR_SELECT:
MENU_EnableMenu(MENU_SUBMENU, OFF);
MENU_EnableMenu(MENU_MAINMENU, ON);
bSystemState = SYSTEM_MAIN_MENU;
break;
case KEY_UP_DOWN:
bSystemState = SYSTEM_RESET_MENU;
break;
default:
break;
} // switch KEY_BufferOut()
} /* DISPATCH_BlacklevelGo */
/* -------------------------------------------------------------------
Name: DISPATCH_BlackLevelMenu -
Purpose: To show Blacklevel Menu.
Passed: None.
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_BlackLevelMenu (void)
{
// ICON of Window 3
OSD_FillCharAttr(OSD_WINDOW3_BASE + OSD_X_ICON,
1,
OSD3_COLOR_ICON );
// Show Title
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_TITLE,
OSD_Y_TITLE,
apbMainMenu[ bMenuCurrentItem ]);
bIdx = (tsEGD.bBlackLevel - BLACKLEVEL_MIN) / BLACKLEVEL_STEP;
// Show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Progress Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
BLACKLEVEL_OSD_MIN,
BLACKLEVEL_OSD_MAX,
bIdx,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
bSystemState = SYSTEM_BRIGHTNESS_MENU;
} /* DISPATCH_BlackLevelMenu */
#endif // DISPATCH_BLACKLEVEL
#if (PROJECT == DMO04012502) || \
(PROJECT == DMO04015200) || \
(PROJECT == DMO04081001) || \
(PROJECT == DMO04085200) || \
(PROJECT == DMO04092500) || \
(PROJECT == DMO04102500) || \
(PROJECT == DMO06015600)
#if (DISPATCH_BRIGHTNESS)
/* -------------------------------------------------------------------
Name: DISPATCH_BrightnessGo - DMO04015200/DMO04081001
Purpose: To adjust VP BRIGHTNESS.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_BrightnessGo (void)
{
switch (bKey = KEY_BufferOut())
{
case KEY_STILL_POWER:
case KEY_IR_POWER:
POR_PowerOff();
break;
case KEY_UP:
case KEY_DOWN:
case KEY_IR_UP:
case KEY_IR_DOWN:
if ((bKey == KEY_DOWN) ||
(bKey == KEY_IR_DOWN) )
{
if (tsEGD.bBrightness > BRIGHTNESS_MIN)
tsEGD.bBrightness -= BRIGHTNESS_STEP;
}
else
{
if (tsEGD.bBrightness < BRIGHTNESS_MAX)
tsEGD.bBrightness += BRIGHTNESS_STEP;
}
// To backup
EEPROM_TxBurst(EGD_ADDR_BRIGHTNESS,
sizeof(tsEGD.bBrightness),
(UB8 *)&tsEGD.bBrightness );
bIdx = (tsEGD.bBrightness - BRIGHTNESS_MIN) / BRIGHTNESS_STEP;
// To adjust VP
VP_SetBrightness(tsEGD.bBrightness);
// To show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Progress Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
BRIGHTNESS_OSD_MIN,
BRIGHTNESS_OSD_MAX,
bIdx,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
break;
case KEY_RELEASE_MENU:
case KEY_IR_MENU:
case KEY_RELEASE_SELECT:
case KEY_IR_SELECT:
MENU_EnableMenu(MENU_SUBMENU, OFF);
MENU_EnableMenu(MENU_MAINMENU, ON);
bSystemState = SYSTEM_MAIN_MENU;
break;
case KEY_UP_DOWN:
bSystemState = SYSTEM_RESET_MENU;
break;
default:
break;
} // switch KEY_BufferOut()
} /* DISPATCH_BrightnessGo */
/* -------------------------------------------------------------------
Name: DISPATCH_BrightnessMenu - DMO04081001/
Purpose: To show VP BRIGHTNESS Menu.
Passed: None.
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_BrightnessMenu (void)
{
// ICON of Window 3
OSD_FillCharAttr(OSD_WINDOW3_BASE + OSD_X_ICON,
1,
OSD3_COLOR_ICON );
// Show Icon
OSD_ShowChar(OSD_SUBMENU, OSD_X_ICON, OSD_Y_ICON, OSD_1B_BRIGHTNESS);
// Show Title
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_TITLE,
OSD_Y_TITLE,
apbMainMenu[ bMenuCurrentItem ]);
// VP !
bIdx = (tsEGD.bBrightness - BRIGHTNESS_MIN) / BRIGHTNESS_STEP;
// Show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Progress Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
BRIGHTNESS_OSD_MIN,
BRIGHTNESS_OSD_MAX,
bIdx,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
bSystemState = SYSTEM_BRIGHTNESS_MENU;
} /* DISPATCH_BrightnessMenu */
#endif // DISPATCH_BRIGHTNESS
#else
#if (DISPATCH_BRIGHTNESS)
/* -------------------------------------------------------------------
Name: DISPATCH_BrightnessGo -
Purpose: To adjust VD BRIGHTNESS.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_BrightnessGo (void)
{
switch (bKey = KEY_BufferOut())
{
case KEY_STILL_POWER:
case KEY_IR_POWER:
POR_PowerOff();
break;
case KEY_UP:
case KEY_DOWN:
case KEY_IR_UP:
case KEY_IR_DOWN:
if ((bKey == KEY_DOWN) ||
(bKey == KEY_IR_DOWN) )
{
if (tsEYD.bBrightness > BRIGHTNESS_MIN)
tsEYD.bBrightness -= BRIGHTNESS_STEP;
}
else
{
if (tsEYD.bBrightness < BRIGHTNESS_MAX)
tsEYD.bBrightness += BRIGHTNESS_STEP;
}
// To backup
EEPROM_TxBurst(EYD_ADDR_BRIGHTNESS,
sizeof(tsEYD.bBrightness),
(UB8 *)&tsEYD.bBrightness );
bIdx = (tsEYD.bBrightness - BRIGHTNESS_MIN) / BRIGHTNESS_STEP;
// To adjust VD
YUV_SetBrightness(tsEYD.bBrightness);
// To show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Progress Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
BRIGHTNESS_OSD_MIN,
BRIGHTNESS_OSD_MAX,
bIdx,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
break;
case KEY_RELEASE_MENU:
case KEY_IR_MENU:
case KEY_RELEASE_SELECT:
case KEY_IR_SELECT:
MENU_EnableMenu(MENU_SUBMENU, OFF);
MENU_EnableMenu(MENU_MAINMENU, ON);
bSystemState = SYSTEM_MAIN_MENU;
break;
case KEY_UP_DOWN:
bSystemState = SYSTEM_RESET_MENU;
break;
default:
break;
} // switch KEY_BufferOut()
} /* DISPATCH_BrightnessGo */
/* -------------------------------------------------------------------
Name: DISPATCH_BrightnessMenu -
Purpose: To show VD BRIGHTNESS Menu.
Passed: None.
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_BrightnessMenu (void)
{
#if (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_3)
// Nothing
#elif (OSD_CFG == OSD_BIT1611B)
// ICON of Window 3
OSD_FillCharAttr(OSD_WINDOW3_BASE + OSD_X_ICON,
1,
OSD3_COLOR_ICON );
// Show Icon
OSD_ShowChar(OSD_SUBMENU, OSD_X_ICON, OSD_Y_ICON, OSD_1B_BRIGHTNESS);
#elif (OSD_CFG == OSD_MTV121)
// Show Icon
OSD_ShowChar(OSD_SUBMENU, OSD_X_ICON, OSD_Y_ICON, OSD_CC_BRIGHTNESS_L);
OSD_ShowChar(OSD_SUBMENU, OSD_X_ICON+1, OSD_Y_ICON, OSD_CD_BRIGHTNESS_R);
#endif
// Show Title
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_TITLE,
OSD_Y_TITLE,
apbMainMenu[ bMenuCurrentItem ]);
// VD !
bIdx = (tsEYD.bBrightness - BRIGHTNESS_MIN) / BRIGHTNESS_STEP;
// Show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Progress Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
BRIGHTNESS_OSD_MIN,
BRIGHTNESS_OSD_MAX,
bIdx,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
bSystemState = SYSTEM_BRIGHTNESS_MENU;
} /* DISPATCH_BrightnessMenu */
#endif // DISPATCH_BRIGHTNESS
#endif
#if (PROJECT == DMO04012502) || \
(PROJECT == DMO04015200) || \
(PROJECT == DMO04081001) || \
(PROJECT == DMO04085200) || \
(PROJECT == DMO04092500) || \
(PROJECT == DMO04102500) || \
(PROJECT == DMO06015600)
#if (DISPATCH_CONTRAST)
/* -------------------------------------------------------------------
Name: DISPATCH_ContrastGo - DMO04015200/DMO04081001//
Purpose: To adjust VP CONTRAST.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_ContrastGo (void)
{
switch (bKey = KEY_BufferOut())
{
case KEY_STILL_POWER:
case KEY_IR_POWER:
POR_PowerOff();
break;
case KEY_UP:
case KEY_DOWN:
case KEY_IR_UP:
case KEY_IR_DOWN:
if ((bKey == KEY_DOWN) ||
(bKey == KEY_IR_DOWN) )
{
if (tsEGD.bContrast > CONTRAST_MIN)
tsEGD.bContrast -= CONTRAST_STEP;
}
else
{
if (tsEGD.bContrast < CONTRAST_MAX)
tsEGD.bContrast += CONTRAST_STEP;
}
// To backup
EEPROM_TxBurst(EGD_ADDR_CONTRAST,
sizeof(tsEGD.bContrast),
(UB8 *)&tsEGD.bContrast );
bIdx = (tsEGD.bContrast - CONTRAST_MIN) / CONTRAST_STEP;
// To adjust VP
VP_SetContrast(tsEGD.bContrast);
// To show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
CONTRAST_OSD_MIN,
CONTRAST_OSD_MAX,
bIdx,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
break;
case KEY_RELEASE_MENU:
case KEY_IR_MENU:
case KEY_RELEASE_SELECT:
case KEY_IR_SELECT:
MENU_EnableMenu(MENU_SUBMENU, OFF);
MENU_EnableMenu(MENU_MAINMENU, ON);
bSystemState = SYSTEM_MAIN_MENU;
break;
case KEY_UP_DOWN:
#if (YUV_GO_POOLING)
fYUV_Go_Pooling = ! fYUV_Go_Pooling;
if (fYUV_Go_Pooling)
OSD_ShowChar(OSD_SUBMENU, 0, 0, ' ');
else
OSD_ShowChar(OSD_SUBMENU, 0, 0, 'X');
#else
bSystemState = SYSTEM_RESET_MENU;
#endif
break;
default:
break;
} // switch KEY_BufferOut()
} /* DISPATCH_ContrastGo */
/* -------------------------------------------------------------------
Name: DISPATCH_ContrastMenu - DMO04081001/
Purpose:
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_ContrastMenu (void)
{
// ICON of Window 3
OSD_FillCharAttr(OSD_WINDOW3_BASE + OSD_X_ICON,
1,
OSD3_COLOR_ICON );
// Show Icon
OSD_ShowChar(OSD_SUBMENU, OSD_X_ICON, OSD_Y_ICON, OSD_17_CONTRAST);
// Show Title
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_TITLE,
OSD_Y_TITLE,
apbMainMenu[ bMenuCurrentItem ]);
// VP !
bIdx = (tsEGD.bContrast - CONTRAST_MIN) / CONTRAST_STEP;
// Show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
CONTRAST_OSD_MIN,
CONTRAST_OSD_MAX,
bIdx,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
bSystemState = SYSTEM_CONTRAST_MENU;
#if (YUV_GO_POOLING)
if (fYUV_Go_Pooling)
OSD_ShowChar(OSD_SUBMENU, 0, 0, ' ');
else
OSD_ShowChar(OSD_SUBMENU, 0, 0, 'X');
#endif
} /* DISPATCH_ContrastMenu */
#endif // DISPATCH_CONTRAST
#else
#if (DISPATCH_CONTRAST)
/* -------------------------------------------------------------------
Name: DISPATCH_ContrastGo -
Purpose: To adjust VD CONTRAST.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_ContrastGo (void)
{
switch (bKey = KEY_BufferOut())
{
case KEY_STILL_POWER:
case KEY_IR_POWER:
POR_PowerOff();
break;
case KEY_UP:
case KEY_DOWN:
case KEY_IR_UP:
case KEY_IR_DOWN:
if ((bKey == KEY_DOWN) ||
(bKey == KEY_IR_DOWN) )
{
if (tsEYD.bContrast > CONTRAST_MIN)
tsEYD.bContrast -= CONTRAST_STEP;
}
else
{
if (tsEYD.bContrast < CONTRAST_MAX)
tsEYD.bContrast += CONTRAST_STEP;
}
// To backup
EEPROM_TxBurst(EYD_ADDR_CONTRAST,
sizeof(tsEYD.bContrast),
(UB8 *)&tsEYD.bContrast );
bIdx = (tsEYD.bContrast - CONTRAST_MIN) / CONTRAST_STEP;
// To adjust VD
YUV_SetContrast(tsEYD.bContrast);
// To show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
CONTRAST_OSD_MIN,
CONTRAST_OSD_MAX,
bIdx,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
break;
case KEY_RELEASE_MENU:
case KEY_IR_MENU:
case KEY_RELEASE_SELECT:
case KEY_IR_SELECT:
MENU_EnableMenu(MENU_SUBMENU, OFF);
MENU_EnableMenu(MENU_MAINMENU, ON);
bSystemState = SYSTEM_MAIN_MENU;
break;
case KEY_UP_DOWN:
#if (YUV_GO_POOLING)
fYUV_Go_Pooling = ! fYUV_Go_Pooling;
if (fYUV_Go_Pooling)
OSD_ShowChar(OSD_SUBMENU, 0, 0, ' ');
else
OSD_ShowChar(OSD_SUBMENU, 0, 0, 'X');
#else
bSystemState = SYSTEM_RESET_MENU;
#endif
break;
default:
break;
} // switch KEY_BufferOut()
} /* DISPATCH_ContrastGo */
/* -------------------------------------------------------------------
Name: DISPATCH_ContrastMenu -
Purpose:
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_ContrastMenu (void)
{
#if (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_3)
// Nothing
#elif (OSD_CFG == OSD_BIT1611B)
// ICON of Window 3
OSD_FillCharAttr(OSD_WINDOW3_BASE + OSD_X_ICON,
1,
OSD3_COLOR_ICON );
// Show Icon
OSD_ShowChar(OSD_SUBMENU, OSD_X_ICON, OSD_Y_ICON, OSD_17_CONTRAST);
#elif (OSD_CFG == OSD_MTV121)
// Show Icon
OSD_ShowChar(OSD_SUBMENU, OSD_X_ICON, OSD_Y_ICON, OSD_D0_CONTRAST_L);
OSD_ShowChar(OSD_SUBMENU, OSD_X_ICON+1, OSD_Y_ICON, OSD_D1_CONTRAST_R);
#endif
// Show Title
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_TITLE,
OSD_Y_TITLE,
apbMainMenu[ bMenuCurrentItem ]);
// VD !
bIdx = (tsEYD.bContrast - CONTRAST_MIN) / CONTRAST_STEP;
// Show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
CONTRAST_OSD_MIN,
CONTRAST_OSD_MAX,
bIdx,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
bSystemState = SYSTEM_CONTRAST_MENU;
#if (YUV_GO_POOLING)
if (fYUV_Go_Pooling)
OSD_ShowChar(OSD_SUBMENU, 0, 0, ' ');
else
OSD_ShowChar(OSD_SUBMENU, 0, 0, 'X');
#endif
} /* DISPATCH_ContrastMenu */
#endif // DISPATCH_CONTRAST
#endif
#if (DISPATCH_DISPLAYMODE)
/* -------------------------------------------------------------------
Name: DISPATCH_DisplayModeGo -
Purpose: To adjust DISPLAY MODE of VP.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_DisplayModeGo (void)
{
switch (bKey = KEY_BufferOut())
{
case KEY_STILL_POWER:
case KEY_IR_POWER:
POR_PowerOff();
break;
case KEY_UP:
case KEY_DOWN:
case KEY_IR_UP:
case KEY_IR_DOWN:
OSD_ShowChar(OSD_SUBMENU,
OSD_X_DISPLAY + OSD_X_DISPLAY_STEP * tsEGD.bDisplay_Mode,
OSD_Y_DISPLAY,
OSD_ICON_CHECK_OFF);
if ((bKey == KEY_DOWN) ||
(bKey == KEY_IR_DOWN) )
{
tsEGD.bDisplay_Mode = (tsEGD.bDisplay_Mode + DISPLAY_MODE_SIZE - 1) %
DISPLAY_MODE_SIZE;
}
else
{
tsEGD.bDisplay_Mode = (tsEGD.bDisplay_Mode + 1) %
DISPLAY_MODE_SIZE;
}
// To backup
EEPROM_TxBurst(EGD_ADDR_DISPLAY_MODE,
sizeof(tsEGD.bDisplay_Mode),
(UB8 *)&tsEGD.bDisplay_Mode );
// To adjust VP
VP_DisplayMode(tsEGD.bDisplay_Mode);
OSD_ShowChar(OSD_SUBMENU,
OSD_X_DISPLAY + OSD_X_DISPLAY_STEP * tsEGD.bDisplay_Mode,
OSD_Y_DISPLAY,
OSD_ICON_CHECK_ON);
break;
case KEY_RELEASE_MENU:
case KEY_IR_MENU:
case KEY_RELEASE_SELECT:
case KEY_IR_SELECT:
MENU_EnableMenu(MENU_SUBMENU, OFF);
MENU_EnableMenu(MENU_MAINMENU, ON);
bSystemState = SYSTEM_MAIN_MENU;
break;
case KEY_UP_DOWN:
bSystemState = SYSTEM_RESET_MENU;
break;
default:
break;
} // switch KEY_BufferOut()
} /* DISPATCH_DisplayModeGo */
/* -------------------------------------------------------------------
Name: DISPATCH_DisplayModeMenu -
Purpose: To adjust DISPLAY MODE of VP.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_DisplayModeMenu (void)
{
// ICON of Window 3
OSD_FillCharAttr(OSD_WINDOW3_BASE + OSD_X_ICON,
1,
OSD3_COLOR_ICON_USER );
// Show Icon
OSD_ShowChar(OSD_SUBMENU, OSD_X_ICON, OSD_Y_ICON, OSD_7B_DISPLAY_MODE);
// Show Title
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_TITLE,
OSD_Y_TITLE,
apbMainMenu[ bMenuCurrentItem ]);
// Show Display Mode
for (bIdx = 0; bIdx < DISPLAY_MODE_SIZE; bIdx++)
{
OSD_ShowChar(OSD_SUBMENU,
OSD_X_DISPLAY + OSD_X_DISPLAY_STEP * bIdx,
OSD_Y_DISPLAY,
OSD_ICON_CHECK_OFF);
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_DISPLAY + OSD_X_DISPLAY_STEP * bIdx + 1,
OSD_Y_DISPLAY,
apbDISPLAY_MODE[ bIdx ]);
}
OSD_ShowChar(OSD_SUBMENU,
OSD_X_DISPLAY + OSD_X_DISPLAY_STEP * tsEGD.bDisplay_Mode,
OSD_Y_DISPLAY,
OSD_ICON_CHECK_ON);
bSystemState = SYSTEM_DISPLAY_MODE_MENU;
} /* DISPATCH_DisplayModeMenu */
#endif
#if (DISPATCH_HUE)
/* -------------------------------------------------------------------
Name: DISPATCH_HueGo -
Purpose: To adjust HUE of VD.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_HueGo (void)
{
switch (bKey = KEY_BufferOut())
{
case KEY_STILL_POWER:
case KEY_IR_POWER:
POR_PowerOff();
break;
case KEY_UP:
case KEY_DOWN:
case KEY_IR_UP:
case KEY_IR_DOWN:
if ((bKey == KEY_DOWN) ||
(bKey == KEY_IR_DOWN) )
{
if (tsEYD.bHue > HUE_MIN)
tsEYD.bHue -= HUE_STEP;
else
tsEYD.bHue = HUE_MAX;
}
else
{
if (tsEYD.bHue < HUE_MAX)
tsEYD.bHue += HUE_STEP;
else
tsEYD.bHue = HUE_MIN;
}
EEPROM_TxBurst(EYD_ADDR_HUE,
sizeof(tsEYD.bHue),
(UB8 *)&tsEYD.bHue );
bIdx = (tsEYD.bHue - HUE_MIN) / HUE_STEP;
// Set the new HUE phase (degree)
YUV_SetHue(tsEYD.bHue);
// To show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Track Bar
OSD_DspTrackBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
HUE_OSD_MIN,
HUE_OSD_MAX,
bIdx,
OSD_BAR_WIDTH );
break;
case KEY_RELEASE_MENU:
case KEY_IR_MENU:
case KEY_RELEASE_SELECT:
case KEY_IR_SELECT:
MENU_EnableMenu(MENU_SUBMENU, OFF);
MENU_EnableMenu(MENU_MAINMENU, ON);
bSystemState = SYSTEM_MAIN_MENU;
break;
case KEY_UP_DOWN:
// To clear Sub Menu
MENU_ClearMenu(MENU_SUBMENU);
// To disable BLANK COLOR !
VP_BlankColor(OFF);
bSystemState = SYSTEM_BURN_IN_MENU;
break;
default:
break;
} // switch KEY_BufferOut()
} /* DISPATCH_HueGo */
/* -------------------------------------------------------------------
Name: DISPATCH_HueMenu -
Purpose: To adjust HUE of VD.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_HueMenu (void)
{
#if (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_3)
// Nothing
#elif (OSD_CFG == OSD_BIT1611B)
// ICON of Window 3
OSD_FillCharAttr(OSD_WINDOW3_BASE + OSD_X_ICON,
1,
OSD3_COLOR_ICON );
// Show Icon
OSD_ShowChar(OSD_SUBMENU, OSD_X_ICON, OSD_Y_ICON, OSD_19_HUE);
#elif (OSD_CFG == OSD_MTV121)
// Nothing
#endif
// Show Title
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_TITLE,
OSD_Y_TITLE,
apbMainMenu[ bMenuCurrentItem ]);
bIdx = (tsEYD.bHue - HUE_MIN) / HUE_STEP;
// To show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Track Bar
OSD_DspTrackBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
HUE_OSD_MIN,
HUE_OSD_MAX,
bIdx,
OSD_BAR_WIDTH );
bSystemState = SYSTEM_HUE_MENU;
} /* DISPATCH_HueMenu */
#endif // DISPATCH_HUE
#if (DISPATCH_IMAGEFILTER)
/* -------------------------------------------------------------------
Name: DISPATCH_ImageFilterGo -
Purpose: To adjust Image Filter of VP.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_ImageFilterGo (void)
{
switch (bKey = KEY_BufferOut())
{
case KEY_STILL_POWER:
case KEY_IR_POWER:
POR_PowerOff();
break;
case KEY_UP:
case KEY_DOWN:
case KEY_IR_UP:
case KEY_IR_DOWN:
if ((bKey == KEY_DOWN) ||
(bKey == KEY_IR_DOWN) )
{
if (tsEGD.bImage_Filter > IMAGE_FILTER_MIN)
tsEGD.bImage_Filter -= IMAGE_FILTER_STEP;
}
else
{
if (tsEGD.bImage_Filter < IMAGE_FILTER_MAX)
tsEGD.bImage_Filter += IMAGE_FILTER_STEP;
}
// To backup
EEPROM_TxBurst(EGD_ADDR_IMAGE_FILTER,
sizeof(tsEGD.bImage_Filter),
(UB8 *)&tsEGD.bImage_Filter );
// To adjust VP
VP_SetImageFilter(tsEGD.bImage_Filter);
// Show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
tsEGD.bImage_Filter,
OSD_W_VALUE );
// To display Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
IMAGE_FILTER_OSD_MIN,
IMAGE_FILTER_OSD_MAX,
tsEGD.bImage_Filter,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
break;
case KEY_RELEASE_MENU:
case KEY_IR_MENU:
case KEY_RELEASE_SELECT:
case KEY_IR_SELECT:
MENU_EnableMenu(MENU_SUBMENU, OFF);
MENU_EnableMenu(MENU_MAINMENU, ON);
bSystemState = SYSTEM_MAIN_MENU;
break;
case KEY_UP_DOWN:
bSystemState = SYSTEM_RESET_MENU;
break;
default:
break;
} // switch KEY_BufferOut()
} /* DISPATCH_ImageFilterGo */
/* -------------------------------------------------------------------
Name: DISPATCH_ImageFilterMenu -
Purpose: To adjust IMAGE FILTER of VP.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_ImageFilterMenu (void)
{
#if (OSD_CFG == OSD_BIT1611B)
// ICON of Window 3
OSD_FillCharAttr(OSD_WINDOW3_BASE + OSD_X_ICON,
1,
OSD3_COLOR_ICON_USER );
// Show Icon
OSD_ShowChar(OSD_SUBMENU, OSD_X_ICON, OSD_Y_ICON, OSD_7D_IMAGE_FILTER);
#elif (OSD_CFG == OSD_MTV121)
// Nothing
#endif
// Show Title
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_TITLE,
OSD_Y_TITLE,
apbMainMenu[ bMenuCurrentItem ]);
// Show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
tsEGD.bImage_Filter,
OSD_W_VALUE );
// To display Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
IMAGE_FILTER_OSD_MIN,
IMAGE_FILTER_OSD_MAX,
tsEGD.bImage_Filter,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
bSystemState = SYSTEM_IMAGE_FILTER_MENU;
} /* DISPATCH_ImageFilterMenu */
#endif
#if (DISPATCH_RESET)
/* -------------------------------------------------------------------
Name: DISPATCH_ResetMenu -
Purpose:
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_ResetMenu (void)
{
// To enable BLANK COLOR
VP_BlankColor(ON);
OSD_ShowMsg(OSD_MESSAGE,
OSD_X_RESET,
OSD_Y_RESET,
abRESET );
// To show Sub Menu
MENU_EnableMenu(MENU_MESSAGE, ON);
TIMER_DelayMS(MENU_AUTO_OFF_3SEC);
// To reset EEPROM content !
EEPROM_Default();
// To keep original Video Source !
EEPROM_TxBurst(EYD_ADDR_YUV_ID,
sizeof(tsEYD.bYUV_ID),
(UB8 *)&tsEYD.bYUV_ID );
// To read EYD !
EEPROM_RxBurst(EYD_ADDR,
sizeof(tEYD),
(UB8 *)&tsEYD );
// To read EGD !
EEPROM_RxBurst(EGD_ADDR,
sizeof(tEGD),
(UB8 *)&tsEGD );
} /* DISPATCH_ResetMenu */
#endif // PROJECT
#if (DISPATCH_SHARPNESS)
/* -------------------------------------------------------------------
Name: DISPATCH_SharpnessGo -
Purpose: To adjust SHARPNESS of VD.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_SharpnessGo (void)
{
switch (bKey = KEY_BufferOut())
{
case KEY_STILL_POWER:
case KEY_IR_POWER:
POR_PowerOff();
break;
case KEY_UP:
case KEY_DOWN:
case KEY_IR_UP:
case KEY_IR_DOWN:
if (bColorStd == YUV_CS_SECAM)
return;
if ((bKey == KEY_DOWN) ||
(bKey == KEY_IR_DOWN) )
{
if (tsEYD.bSharpness > SHARPNESS_MIN)
tsEYD.bSharpness -= SHARPNESS_STEP;
}
else
{
if (tsEYD.bSharpness < SHARPNESS_MAX)
tsEYD.bSharpness += SHARPNESS_STEP;
}
// To backup
EEPROM_TxBurst(EYD_ADDR_SHARPNESS,
sizeof(tsEYD.bSharpness),
(UB8 *)&tsEYD.bSharpness );
// To adjust VD
YUV_SetSharpness(tsEYD.bSharpness);
// Show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
tsEYD.bSharpness,
OSD_W_VALUE );
// To display Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
SHARPNESS_OSD_MIN,
SHARPNESS_OSD_MAX,
tsEYD.bSharpness,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
break;
case KEY_RELEASE_MENU:
case KEY_IR_MENU:
case KEY_RELEASE_SELECT:
case KEY_IR_SELECT:
MENU_EnableMenu(MENU_SUBMENU, OFF);
MENU_EnableMenu(MENU_MAINMENU, ON);
bSystemState = SYSTEM_MAIN_MENU;
break;
case KEY_UP_DOWN:
bSystemState = SYSTEM_RESET_MENU;
break;
default:
break;
} // switch KEY_BufferOut()
} /* DISPATCH_SharpnessGo */
/* -------------------------------------------------------------------
Name: DISPATCH_SharpnessMenu -
Purpose: To adjust SHARPNESS of VD.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_SharpnessMenu (void)
{
#if (OSD_CFG == OSD_BIT1611B)
// ICON of Window 3
OSD_FillCharAttr(OSD_WINDOW3_BASE + OSD_X_ICON,
1,
OSD3_COLOR_ICON_USER );
// Show Icon
OSD_ShowChar(OSD_SUBMENU, OSD_X_ICON, OSD_Y_ICON, OSD_7E_SHARPNESS);
#elif (OSD_CFG == OSD_MTV121)
// Nothing
#endif
// Show Title
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_TITLE,
OSD_Y_TITLE,
apbMainMenu[ bMenuCurrentItem ]);
// Show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
tsEYD.bSharpness,
OSD_W_VALUE );
// To display Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
SHARPNESS_OSD_MIN,
SHARPNESS_OSD_MAX,
tsEYD.bSharpness,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
bSystemState = SYSTEM_SHARPNESS_MENU;
} /* DISPATCH_SharpnessMenu */
#endif
#if (DISPATCH_SATURATION)
/* -------------------------------------------------------------------
Name: DISPATCH_SaturationGo -
Purpose: To adjust SATURATION of VD.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_SaturationGo (void)
{
switch (bKey = KEY_BufferOut())
{
case KEY_STILL_POWER:
case KEY_IR_POWER:
POR_PowerOff();
break;
case KEY_UP:
case KEY_DOWN:
case KEY_IR_UP:
case KEY_IR_DOWN:
if ((bKey == KEY_DOWN) ||
(bKey == KEY_IR_DOWN) )
{
if (tsEYD.bSaturation > SATURATION_MIN)
tsEYD.bSaturation -= SATURATION_STEP;
}
else
{
if (tsEYD.bSaturation < SATURATION_MAX)
tsEYD.bSaturation += SATURATION_STEP;
}
// To backup
EEPROM_TxBurst(EYD_ADDR_SATURATION,
sizeof(tsEYD.bSaturation),
(UB8 *)&tsEYD.bSaturation );
// To adjust VD
YUV_SetSaturation(tsEYD.bSaturation);
// tsEYD.bSaturation = OSD.bSaturation * 8
bIdx = (tsEYD.bSaturation - SATURATION_MIN) / SATURATION_STEP;
// To show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
SATURATION_OSD_MIN,
SATURATION_OSD_MAX,
bIdx,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
break;
case KEY_RELEASE_MENU:
case KEY_IR_MENU:
case KEY_RELEASE_SELECT:
case KEY_IR_SELECT:
MENU_EnableMenu(MENU_SUBMENU, OFF);
MENU_EnableMenu(MENU_MAINMENU, ON);
bSystemState = SYSTEM_MAIN_MENU;
break;
case KEY_UP_DOWN:
bSystemState = SYSTEM_RESET_MENU;
break;
default:
break;
} // switch KEY_BufferOut()
} /* DISPATCH_SaturationGo */
/* -------------------------------------------------------------------
Name: DISPATCH_SaturationMenu -
Purpose:
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_SaturationMenu (void)
{
#if (MENU_STYLE_CFG == MENU_STYLE_SCROLLING_3)
// Nothing
#elif (OSD_CFG == OSD_BIT1611B)
// ICON of Window 3
OSD_FillCharAttr(OSD_WINDOW3_BASE + OSD_X_ICON,
1,
OSD3_COLOR_ICON );
// Show Icon
OSD_ShowChar(OSD_SUBMENU, OSD_X_ICON, OSD_Y_ICON, OSD_18_SATURATION);
#elif (OSD_CFG == OSD_MTV121)
// Nothing
#endif
// Show Title
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_TITLE,
OSD_Y_TITLE,
apbMainMenu[ bMenuCurrentItem ]);
bIdx = (tsEYD.bSaturation - SATURATION_MIN) / SATURATION_STEP;
// Show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
SATURATION_OSD_MIN,
SATURATION_OSD_MAX,
bIdx,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
bSystemState = SYSTEM_SATURATION_MENU;
} /* DISPATCH_SaturationMenu */
#endif // DISPATCH_SATURATION
#if (DISPATCH_TCON_MODE)
/* -------------------------------------------------------------------
Name: DISPATCH_TCON_ModeGo -
Purpose: To adjust TCON MODE of VP.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_TCON_ModeGo (void)
{
switch (bKey = KEY_BufferOut())
{
case KEY_STILL_POWER:
case KEY_IR_POWER:
POR_PowerOff();
break;
case KEY_UP:
case KEY_DOWN:
case KEY_IR_UP:
case KEY_IR_DOWN:
OSD_ShowChar(OSD_SUBMENU,
OSD_X_TCON + OSD_X_TCON_STEP * tsEGD.bTCON_Mode,
OSD_Y_TCON,
OSD_ICON_CHECK_OFF);
if ((bKey == KEY_DOWN) ||
(bKey == KEY_IR_DOWN) )
{
tsEGD.bTCON_Mode = (tsEGD.bTCON_Mode + TCON_MODE_SIZE - 1) % TCON_MODE_SIZE;
}
else
{
tsEGD.bTCON_Mode = (tsEGD.bTCON_Mode + 1) % TCON_MODE_SIZE;
}
// To backup
EEPROM_TxBurst(EGD_ADDR_TCON_MODE,
sizeof(tsEGD.bTCON_Mode),
(UB8 *)&tsEGD.bTCON_Mode );
// To adjust VP
VP_SetTCON_Mode(tsEGD.bTCON_Mode);
OSD_ShowChar(OSD_SUBMENU,
OSD_X_TCON + OSD_X_TCON_STEP * tsEGD.bTCON_Mode,
OSD_Y_TCON,
OSD_ICON_CHECK_ON);
break;
case KEY_RELEASE_MENU:
case KEY_IR_MENU:
case KEY_RELEASE_SELECT:
case KEY_IR_SELECT:
MENU_EnableMenu(MENU_SUBMENU, OFF);
MENU_EnableMenu(MENU_MAINMENU, ON);
bSystemState = SYSTEM_MAIN_MENU;
break;
case KEY_UP_DOWN:
bSystemState = SYSTEM_RESET_MENU;
break;
default:
break;
} // switch KEY_BufferOut()
} /* DISPATCH_TCON_ModeGo */
/* -------------------------------------------------------------------
Name: DISPATCH_TCON_ModeMenu -
Purpose: To adjust TCON MODE of VP.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_TCON_ModeMenu (void)
{
#if (OSD_CFG == OSD_BIT1611B)
// ICON of Window 3
OSD_FillCharAttr(OSD_WINDOW3_BASE + OSD_X_ICON,
1,
OSD3_COLOR_ICON );
#elif (OSD_CFG == OSD_MTV121)
// Nothing
#endif
// Show Title
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_TITLE,
OSD_Y_TITLE,
apbMainMenu[ bMenuCurrentItem ]);
// Show TCON Mode
for (bIdx = 0; bIdx < TCON_MODE_SIZE; bIdx++)
{
OSD_ShowChar(OSD_SUBMENU,
OSD_X_TCON + OSD_X_TCON_STEP * bIdx,
OSD_Y_TCON,
OSD_ICON_CHECK_OFF);
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_TCON + OSD_X_TCON_STEP * bIdx + 1,
OSD_Y_TCON,
apbTCON_MODE[ bIdx ]);
}
OSD_ShowChar(OSD_SUBMENU,
OSD_X_TCON + OSD_X_TCON_STEP * tsEGD.bTCON_Mode,
OSD_Y_TCON,
OSD_ICON_CHECK_ON);
bSystemState = SYSTEM_TCON_MODE_MENU;
} /* DISPATCH_TCON_ModeMenu */
#endif // DISPATCH_TCON_MODE
#if (DISPATCH_SKIN_TONE)
/* -------------------------------------------------------------------
Name: DISPATCH_Skin_ToneGo -
Purpose: To adjust Skin Tone of VD.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_Skin_ToneGo (void)
{
switch (bKey = KEY_BufferOut())
{
case KEY_STILL_POWER:
case KEY_IR_POWER:
POR_PowerOff();
break;
case KEY_UP:
case KEY_DOWN:
case KEY_IR_UP:
case KEY_IR_DOWN:
if ((bKey == KEY_DOWN) ||
(bKey == KEY_IR_DOWN) )
{
if (tsEYD.bSkin_Tone > SKIN_TONE_MIN)
tsEYD.bSkin_Tone -= SKIN_TONE_STEP;
}
else
{
if (tsEYD.bSkin_Tone < SKIN_TONE_MAX)
tsEYD.bSkin_Tone += SKIN_TONE_STEP;
}
// To backup
EEPROM_TxBurst(EYD_ADDR_SKIN_TONE,
sizeof(tsEYD.bSkin_Tone),
(UB8 *)&tsEYD.bSkin_Tone );
// To adjust VD
YUV_SetSkinTone(tsEYD.bSkin_Tone);
// To display Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
SKIN_TONE_OSD_MIN,
SKIN_TONE_OSD_MAX,
tsEYD.bSkin_Tone,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
// Show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
tsEYD.bSkin_Tone,
OSD_W_VALUE );
break;
case KEY_RELEASE_MENU:
case KEY_IR_MENU:
case KEY_RELEASE_SELECT:
case KEY_IR_SELECT:
MENU_EnableMenu(MENU_SUBMENU, OFF);
MENU_EnableMenu(MENU_MAINMENU, ON);
bSystemState = SYSTEM_MAIN_MENU;
break;
case KEY_UP_DOWN:
bSystemState = SYSTEM_RESET_MENU;
break;
default:
break;
} // switch KEY_BufferOut()
} /* DISPATCH_Skin_ToneGo */
/* -------------------------------------------------------------------
Name: DISPATCH_Skin_ToneMenu -
Purpose: To adjust Skin Tone of VD.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_Skin_ToneMenu (void)
{
// ICON of Window 3
OSD_FillCharAttr(OSD_WINDOW3_BASE + OSD_X_ICON,
1,
OSD3_COLOR_ICON );
// Show Title
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_TITLE,
OSD_Y_TITLE,
apbMainMenu[ bMenuCurrentItem ]);
// To display Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
SKIN_TONE_OSD_MIN,
SKIN_TONE_OSD_MAX,
tsEYD.bSkin_Tone,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
// Show Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
tsEYD.bSkin_Tone,
OSD_W_VALUE );
// To show Sub Menu
MENU_EnableMenu(MENU_SUBMENU, ON);
bSystemState = SYSTEM_SKIN_TONE_MENU;
} /* DISPATCH_Skin_ToneMenu */
#endif
/* -------------------------------------------------------------------
Name: DISPATCH_Init -
Purpose:
Passed: None.
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_Init (void)
{
bSystemState = SYSTEM_POWER_OFF;
} /* DISPATCH_Init */
#if (DISPATCH_VERSION)
/* -------------------------------------------------------------------
Name: DISPATCH_VersionMenu -
Purpose:
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_VersionMenu (void)
{
// To clear Sub Menu
MENU_ClearMenu(MENU_SUBMENU);
#if (OSD_CFG == OSD_BIT1611B)
// BiTEK user font for LOGO
OSD_FillCharCodeAttr(OSD_WINDOW3_BASE + OSD_X_LOGO,
1,
OSD_7F_BITEK,
OSD3_COLOR_USER );
#endif
// Show Copyright !
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_COPYRIGHT,
OSD_Y_COPYRIGHT,
CODE_COPYRIGHT );
// Show Date/Version !
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_DATE_VERSION,
OSD_Y_DATE_VERSION,
CODE_DATE_VERSION );
// To show Sub Menu
MENU_EnableMenu(MENU_SUBMENU, ON);
TIMER_DelayMS(MENU_AUTO_OFF_3SEC);
#if (OSD_CFG == OSD_BIT1611B)
// BiTEK user font for LOGO disappear !
OSD_FillCharCodeAttr(OSD_WINDOW3_BASE + OSD_X_LOGO,
1,
' ',
OSD3_COLOR_HILIGHT );
#endif
// OSD Auto OFF !
wMENU_Tick = MENU_AUTO_OFF_TIME;
} /* DISPATCH_VersionMenu */
#endif
#if (DISPATCH_VOLUME)
/* -------------------------------------------------------------------
Name: DISPATCH_VolumeGo -
Purpose: To adjust Audio Volume.
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_VolumeGo (void)
{
switch (bKey = KEY_BufferOut())
{
case KEY_STILL_POWER:
case KEY_IR_POWER:
POR_PowerOff();
break;
case KEY_UP:
case KEY_DOWN:
case KEY_IR_UP:
case KEY_IR_DOWN:
if ((bKey == KEY_DOWN) ||
(bKey == KEY_IR_DOWN) )
{
if (tsEGD.wVolume > VOLUME_MIN)
tsEGD.wVolume -= VOLUME_STEP;
}
else
{
if (tsEGD.wVolume < VOLUME_MAX)
tsEGD.wVolume += VOLUME_STEP;
}
// Backup Value
EEPROM_TxBurst(EGD_ADDR_VOLUME,
sizeof(tsEGD.wVolume),
(UB8 *)&tsEGD.wVolume );
// Adjust Audio Volume
AUDIO_SetVolume(tsEGD.wVolume);
bIdx = (tsEGD.wVolume - VOLUME_MIN) / VOLUME_STEP;
// Show OSD Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
VOLUME_OSD_MIN,
VOLUME_OSD_MAX,
bIdx,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
break;
case KEY_RELEASE_MENU:
case KEY_IR_MENU:
case KEY_RELEASE_SELECT:
case KEY_IR_SELECT:
MENU_EnableMenu(MENU_SUBMENU, OFF);
MENU_EnableMenu(MENU_MAINMENU, ON);
bSystemState = SYSTEM_MAIN_MENU;
break;
case KEY_UP_DOWN:
bSystemState = SYSTEM_RESET_MENU;
break;
default:
break;
} // switch KEY_BufferOut()
} /* DISPATCH_VolumeGo */
/* -------------------------------------------------------------------
Name: DISPATCH_VolumeMenu -
Purpose:
Passed:
Returns: None.
Notes:
------------------------------------------------------------------- */
void DISPATCH_VolumeMenu (void)
{
// Show Title
OSD_ShowMsg(OSD_SUBMENU,
OSD_X_TITLE,
OSD_Y_TITLE,
apbMainMenu[ bMenuCurrentItem ]);
bIdx = (tsEGD.wVolume - VOLUME_MIN) / VOLUME_STEP;
// Show OSD Value
OSD_ShowValue(OSD_SUBMENU,
OSD_SUBMENU_WIDTH - OSD_W_VALUE - 1,
OSD_Y_VALUE,
bIdx,
OSD_W_VALUE );
// To display Bar
OSD_DspProgressBar(OSD_SUBMENU,
OSD_X_BAR,
OSD_Y_BAR,
VOLUME_OSD_MIN,
VOLUME_OSD_MAX,
bIdx,
OSD_BAR_WIDTH,
OSD_STYLE_CFG );
bSystemState = SYSTEM_VOLUME_MENU;
} /* DISPATCH_VolumeMenu */
#endif
/* -------------------------------------------------------------------
Name: -
Purpose: .
Passed: None.
Returns: None.
Notes:
------------------------------------------------------------------- */
/* **********************************************************************
Description:
********************************************************************** */
/* %% End Of File %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */