📄 osddsply.c
字号:
#define OSDDSPLY_MAIN_FILE
#include "winav.h"
#include "ctkav.h"
#include "comdef.h"
#include "input.h"
#include "osddsply.h"
#include "osd.h"
#include "osdnd.h"
#include "setup.h"
#include "cc.h"
#include "gdi.h"
#include "fontindex.h" //++CoCo2.37P
#include "osdfont.h"
#include "navigate.h"
#include "linear.h"
#include "infofilter.h"
#include "mmanager.h"
#include "cell.h"
#include "dvdinfo.h"
#include "utl.h"
#include "hal.h"
#include "navigate.h"
#include "notransl.h"
#include "convchar.h"
#define OSDDSPLY_MAIN_FILE
//#include "string.lan"
#include "OSDString\\strextrn.h"
//CoCo1.0, add independent Navigator UI
#ifdef SUPPORT_INDEPENDENT_NAVIGATOR
#ifndef NO_DVD_DISPLAY_UI //++CoCo2.37p
DISPLAYMODE OSDDSPLYDVDMode[OSDDSPLY_DVD_DISPLAY_NUM+1] = {
{OSDDSPLY_MODE_NONE, OSDDSPLY_BACKGROUND_NONE},
{OSDDSPLY_MODE_DVD_TITLE_ELAPSED, OSDDSPLY_BACKGROUND_LD_GENERAL},
{OSDDSPLY_MODE_DVD_TITLE_REMAIN, OSDDSPLY_BACKGROUND_LD_GENERAL},
{OSDDSPLY_MODE_DVD_CHAPTER_ELAPSED, OSDDSPLY_BACKGROUND_LD_GENERAL},
{OSDDSPLY_MODE_DVD_CHAPTER_REMAIN, OSDDSPLY_BACKGROUND_LD_GENERAL},
{OSDDSPLY_MODE_DVD_VIRTUAL_PANEL, OSDDSPLY_BACKGROUND_VP_DVD}};
#endif //#ifndef NO_DVD_DISPLAY_UI //++CoCo2.37p
#else
#ifndef NO_DVD_DISPLAY_UI //++CoCo2.37p
DISPLAYMODE OSDDSPLYDVDMode[OSDDSPLY_DVD_DISPLAY_NUM+1] = {
{OSDDSPLY_MODE_NONE, OSDDSPLY_BACKGROUND_NONE},
{OSDDSPLY_MODE_DVD_TITLE_ELAPSED, OSDDSPLY_BACKGROUND_LD_GENERAL},
{OSDDSPLY_MODE_DVD_TITLE_REMAIN, OSDDSPLY_BACKGROUND_LD_GENERAL},
{OSDDSPLY_MODE_DVD_CHAPTER_ELAPSED, OSDDSPLY_BACKGROUND_LD_GENERAL},
{OSDDSPLY_MODE_DVD_CHAPTER_REMAIN, OSDDSPLY_BACKGROUND_LD_GENERAL},
{OSDDSPLY_MODE_DVD_VIRTUAL_PANEL, OSDDSPLY_BACKGROUND_VP_DVD},
{OSDDSPLY_MODE_DVD_NAVIGATOR, OSDDSPLY_BACKGROUND_NAVIGATOR}};
#endif //#ifndef NO_DVD_DISPLAY_UI //++CoCo2.37p
#endif //SUPPORT_INDEPENDENT_NAVIGATOR
#ifndef NO_VCD_DISPLAY_UI //++CoCo2.37p
DISPLAYMODE OSDDSPLYVCDMode[OSDDSPLY_VCD_DISPLAY_NUM+1] = {
{OSDDSPLY_MODE_NONE, OSDDSPLY_BACKGROUND_NONE},
{OSDDSPLY_MODE_VCD_SINGLE_ELAPSED, OSDDSPLY_BACKGROUND_LD_GENERAL},
{OSDDSPLY_MODE_VCD_SINGLE_REMAIN, OSDDSPLY_BACKGROUND_LD_GENERAL},
{OSDDSPLY_MODE_VCD_TOTAL_ELAPSED, OSDDSPLY_BACKGROUND_LD_GENERAL},
{OSDDSPLY_MODE_VCD_TOTAL_REMAIN, OSDDSPLY_BACKGROUND_LD_GENERAL}};
#endif //#ifndef NO_VCD_DISPLAY_UI //++CoCo2.37p
DISPLAYMODE OSDDSPLYJPEGMode[OSDDSPLY_JPEG_DISPLAY_NUM+1] = {
{OSDDSPLY_MODE_NONE, OSDDSPLY_BACKGROUND_NONE},
{OSDDSPLY_MODE_JPEG_LD, OSDDSPLY_BACKGROUND_LD_GENERAL},
{OSDDSPLY_MODE_JPEG_VIRTUAL_PANEL, OSDDSPLY_BACKGROUND_VP_JPEG}};
DISPLAYMODE OSDDSPLYCDROMAVMode[OSDDSPLY_CDROM_AV_DISPLAY_NUM+1] = {
{OSDDSPLY_MODE_NONE, OSDDSPLY_BACKGROUND_NONE},
{OSDDSPLY_MODE_JPEG_LD, OSDDSPLY_BACKGROUND_LD_GENERAL}};
DISPLAYMODE OSDDSPLYCDROMDIVXMode[OSDDSPLY_CDROM_DIVX_DISPLAY_NUM+1] = {
{OSDDSPLY_MODE_NONE, OSDDSPLY_BACKGROUND_NONE},
{OSDDSPLY_MODE_CDROM_MOTION_ELAPSED, OSDDSPLY_BACKGROUND_LD_GENERAL},
#ifdef OSDDSPLY_SUPPORT_SHOW_REMAIN_TIME_FOR_DIVX
{OSDDSPLY_MODE_CDROM_MOTION_REMAIN, OSDDSPLY_BACKGROUND_LD_GENERAL},
#endif //OSDDSPLY_SUPPORT_SHOW_REMAIN_TIME_FOR_DIVX
{OSDDSPLY_MODE_DIVX_VIRTUAL_PANEL, OSDDSPLY_BACKGROUND_VP_DIVX}};
DISPLAYMODE OSDDSPLYCDROMAudioMode[OSDDSPLY_CDROM_AUDIO_DISPLAY_NUM+1] = {
{OSDDSPLY_MODE_NONE, OSDDSPLY_BACKGROUND_NONE},
{OSDDSPLY_MODE_CDROM_AUDIO, OSDDSPLY_BACKGROUND_LD_GENERAL}};
//***************************************************************************
//Navigator data structure
//***************************************************************************
#ifdef SUPPORT_NAVIGATOR //CoCo1.07, support Navigator UI
BYTE OSDDSPLYNGPopUpMenu[] = {KEY_RIGHT, KEY_PLAY, KEY_ENTER};
NAVIGATOR OSDDSPLYNavigator[] = {
{OSDDSPLY_NAVIGATOR_ICON_TITLE, OSDDSPLY_NAVIGATOR_ICON_ATTRIBUTE_POPUP_MENU, OSDDSPLYNGPopUpMenu, OSDDSPLY_NAVIGATOR_MENU_TITLE_START_H, OSDDSPLY_NAVIGATOR_MENU_TITLE_START_V},
{OSDDSPLY_NAVIGATOR_ICON_CHAPTER, OSDDSPLY_NAVIGATOR_ICON_ATTRIBUTE_POPUP_MENU, OSDDSPLYNGPopUpMenu, OSDDSPLY_NAVIGATOR_MENU_CHAPTER_START_H, OSDDSPLY_NAVIGATOR_MENU_CHAPTER_START_V},
{OSDDSPLY_NAVIGATOR_ICON_AUDIO, OSDDSPLY_NAVIGATOR_ICON_ATTRIBUTE_POPUP_MENU, OSDDSPLYNGPopUpMenu, OSDDSPLY_NAVIGATOR_MENU_AUDIO_START_H, OSDDSPLY_NAVIGATOR_MENU_AUDIO_START_V},
{OSDDSPLY_NAVIGATOR_ICON_SPST1, OSDDSPLY_NAVIGATOR_ICON_ATTRIBUTE_POPUP_MENU, OSDDSPLYNGPopUpMenu, OSDDSPLY_NAVIGATOR_MENU_SPST1_START_H, OSDDSPLY_NAVIGATOR_MENU_SPST1_START_V},
{OSDDSPLY_NAVIGATOR_ICON_SPST2, OSDDSPLY_NAVIGATOR_ICON_ATTRIBUTE_POPUP_MENU, OSDDSPLYNGPopUpMenu, OSDDSPLY_NAVIGATOR_MENU_SPST2_START_H, OSDDSPLY_NAVIGATOR_MENU_SPST2_START_V},
// wyc2.17-909S, update for language study modification.
#if (SLOW_MODE_CONFIG == NORMAL_SLOW_MODE)
{OSDDSPLY_NAVIGATOR_ICON_ANGLE, OSDDSPLY_NAVIGATOR_ICON_ATTRIBUTE_POPUP_MENU, OSDDSPLYNGPopUpMenu, OSDDSPLY_NAVIGATOR_MENU_ANGLE_START_H, OSDDSPLY_NAVIGATOR_MENU_ANGLE_START_V},
#endif
{OSDDSPLY_NAVIGATOR_ICON_REPEAT, OSDDSPLY_NAVIGATOR_ICON_ATTRIBUTE_POPUP_MENU, OSDDSPLYNGPopUpMenu, OSDDSPLY_NAVIGATOR_MENU_REPEAT_START_H, OSDDSPLY_NAVIGATOR_MENU_REPEAT_START_V}
#if (SLOW_MODE_CONFIG != NORMAL_SLOW_MODE)
,{OSDDSPLY_NAVIGATOR_ICON_REPEATAB, OSDDSPLY_NAVIGATOR_ICON_ATTRIBUTE_BUTTON, NULL, OSDDSPLY_NAVIGATOR_MENU_REPEATAB_START_H, OSDDSPLY_NAVIGATOR_MENU_REPEATAB_START_V},
{OSDDSPLY_NAVIGATOR_ICON_SLOW, OSDDSPLY_NAVIGATOR_ICON_ATTRIBUTE_BUTTON, NULL, OSDDSPLY_NAVIGATOR_MENU_SLOW_START_H, OSDDSPLY_NAVIGATOR_MENU_SLOW_START_V}
#endif //SLOW_MODE_CONFIG
};
BYTE OSDDSPLYNGBGPalette[] = {
OSDDSPLY_NG_PALETTE_ENTRY_ICON_TITLE_BACKGROUND,
OSDDSPLY_NG_PALETTE_ENTRY_ICON_CHAPTER_BACKGROUND,
OSDDSPLY_NG_PALETTE_ENTRY_ICON_AUDIO_BACKGROUND,
OSDDSPLY_NG_PALETTE_ENTRY_ICON_SPST1_BACKGROUND,
OSDDSPLY_NG_PALETTE_ENTRY_ICON_SPST2_BACKGROUND,
// wyc2.17-909S, update for language study modification.
#if (SLOW_MODE_CONFIG == NORMAL_SLOW_MODE)
OSDDSPLY_NG_PALETTE_ENTRY_ICON_ANGLE_BACKGROUND,
#endif
OSDDSPLY_NG_PALETTE_ENTRY_ICON_REPEAT_BACKGROUND
#if (SLOW_MODE_CONFIG != NORMAL_SLOW_MODE)
,OSDDSPLY_NG_PALETTE_ENTRY_ICON_REPEATAB_BACKGROUND,
OSDDSPLY_NG_PALETTE_ENTRY_ICON_SLOW_BACKGROUND
#endif //SLOW_MODE_CONFIG
};
#ifdef SUPPORT_SEPARATOR
BYTE _bOSDDSPLYNGSeparator[] = {5};
#endif //SUPPORT_SEPARATOR
#endif //SUPPORT_NAVIGATOR
//Initialize palette for line display
DWORD OSDDSPLYLDBackground[] = {OSDDSPLY_LD_PALETTE_COLOR_GENERAL_BACKGROUND_1, OSDDSPLY_LD_PALETTE_COLOR_GENERAL_BACKGROUND_2, OSDDSPLY_LD_PALETTE_COLOR_GENERAL_BACKGROUND_3, OSDDSPLY_LD_PALETTE_COLOR_GENERAL_BACKGROUND_4};
DWORD OSDDSPLYLDTitleItem[] = {OSDDSPLY_LD_PALETTE_COLOR_REGION_TITLE_ITEM_1, OSDDSPLY_LD_PALETTE_COLOR_REGION_TITLE_ITEM_2, OSDDSPLY_LD_PALETTE_COLOR_REGION_TITLE_ITEM_3, OSDDSPLY_LD_PALETTE_COLOR_REGION_TITLE_ITEM_4};
DWORD OSDDSPLYLDChapterItem[] = {OSDDSPLY_LD_PALETTE_COLOR_REGION_CHAPTER_ITEM_1, OSDDSPLY_LD_PALETTE_COLOR_REGION_CHAPTER_ITEM_2, OSDDSPLY_LD_PALETTE_COLOR_REGION_CHAPTER_ITEM_3, OSDDSPLY_LD_PALETTE_COLOR_REGION_CHAPTER_ITEM_4};
DWORD OSDDSPLYLDProgramStatus[] = {OSDDSPLY_LD_PALETTE_COLOR_REGION_PROGRAM_STATUS_1, OSDDSPLY_LD_PALETTE_COLOR_REGION_PROGRAM_STATUS_2, OSDDSPLY_LD_PALETTE_COLOR_REGION_PROGRAM_STATUS_3, OSDDSPLY_LD_PALETTE_COLOR_REGION_PROGRAM_STATUS_4};
DWORD OSDDSPLYLDFileNameItem[] = {OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NAME_ITEM_TEXT_1, OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NAME_ITEM_TEXT_2, OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NAME_ITEM_TEXT_3, OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NAME_ITEM_TEXT_4};
DWORD OSDDSPLYLDFileNumItem[] = {OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NUM_ITEM_TEXT_1, OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NUM_ITEM_TEXT_2, OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NUM_ITEM_TEXT_3, OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NUM_ITEM_TEXT_4};
DWORD OSDDSPLYLDTitleInfo[] = {OSDDSPLY_LD_PALETTE_COLOR_REGION_TITLE_INFO_1, OSDDSPLY_LD_PALETTE_COLOR_REGION_TITLE_INFO_2, OSDDSPLY_LD_PALETTE_COLOR_REGION_TITLE_INFO_3, OSDDSPLY_LD_PALETTE_COLOR_REGION_TITLE_INFO_4};
DWORD OSDDSPLYLDChapterInfo[] = {OSDDSPLY_LD_PALETTE_COLOR_REGION_CHAPTER_INFO_1, OSDDSPLY_LD_PALETTE_COLOR_REGION_CHAPTER_INFO_2, OSDDSPLY_LD_PALETTE_COLOR_REGION_CHAPTER_INFO_3, OSDDSPLY_LD_PALETTE_COLOR_REGION_CHAPTER_INFO_4};
DWORD OSDDSPLYLDTimeInfo[] = {OSDDSPLY_LD_PALETTE_COLOR_REGION_TIME_INFO_1, OSDDSPLY_LD_PALETTE_COLOR_REGION_TIME_INFO_2, OSDDSPLY_LD_PALETTE_COLOR_REGION_TIME_INFO_3, OSDDSPLY_LD_PALETTE_COLOR_REGION_TIME_INFO_4};
DWORD OSDDSPLYLDFileNameInfo[] = {OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NAME_INFO_1, OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NAME_INFO_2, OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NAME_INFO_3, OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NAME_INFO_4};
DWORD OSDDSPLYLDFileNumInfo[] = {OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NUM_INFO_1, OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NUM_INFO_2, OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NUM_INFO_3, OSDDSPLY_LD_PALETTE_COLOR_REGION_FILE_NUM_INFO_4};
DWORD OSDDSPLYLDBackgroundFrame[] = {OSDDSPLY_LD_PALETTE_COLOR_GENERAL_BACKGROUND_FRAME_1, OSDDSPLY_LD_PALETTE_COLOR_GENERAL_BACKGROUND_FRAME_2, OSDDSPLY_LD_PALETTE_COLOR_GENERAL_BACKGROUND_FRAME_3, OSDDSPLY_LD_PALETTE_COLOR_GENERAL_BACKGROUND_FRAME_4};
DWORD OSDDSPLYLDMenu[] = {OSDDSPLY_LD_PALETTE_COLOR_REGION_MENU_1, OSDDSPLY_LD_PALETTE_COLOR_REGION_MENU_2, OSDDSPLY_LD_PALETTE_COLOR_REGION_MENU_3, OSDDSPLY_LD_PALETTE_COLOR_REGION_MENU_4};
//Initialize palette for virtual panel
DWORD OSDDSPLYVPBackground[] = {OSDDSPLY_VP_PALETTE_COLOR_GENERAL_BACKGROUND_1, OSDDSPLY_VP_PALETTE_COLOR_GENERAL_BACKGROUND_2, OSDDSPLY_VP_PALETTE_COLOR_GENERAL_BACKGROUND_3, OSDDSPLY_VP_PALETTE_COLOR_GENERAL_BACKGROUND_4};
DWORD OSDDSPLYVPTitleItem[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_TITLE_ITEM_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_TITLE_ITEM_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_TITLE_ITEM_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_TITLE_ITEM_4};
DWORD OSDDSPLYVPChapterItem[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_CHAPTER_ITEM_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_CHAPTER_ITEM_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_CHAPTER_ITEM_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_CHAPTER_ITEM_4};
DWORD OSDDSPLYVPSubtitleItem[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_SUBTITLE_ITEM_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_SUBTITLE_ITEM_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_SUBTITLE_ITEM_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_SUBTITLE_ITEM_4};
DWORD OSDDSPLYVPASTItem[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_AST_ITEM_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_AST_ITEM_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_AST_ITEM_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_AST_ITEM_4};
DWORD OSDDSPLYVPTVItem[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_TV_ITEM_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_TV_ITEM_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_TV_ITEM_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_TV_ITEM_4};
DWORD OSDDSPLYVPAngleItem[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_ANGLE_ITEM_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_ANGLE_ITEM_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_ANGLE_ITEM_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_ANGLE_ITEM_4};
DWORD OSDDSPLYVPFileNameItem[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NAME_ITEM_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NAME_ITEM_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NAME_ITEM_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NAME_ITEM_4};
DWORD OSDDSPLYVPFileNumItem[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NUM_ITEM_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NUM_ITEM_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NUM_ITEM_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NUM_ITEM_4};
DWORD OSDDSPLYVPResolutionItem[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_RESOLUTION_ITEM_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_RESOLUTION_ITEM_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_RESOLUTION_ITEM_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_RESOLUTION_ITEM_4};
DWORD OSDDSPLYVPDateItem[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_DATE_ITEM_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_DATE_ITEM_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_DATE_ITEM_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_DATE_ITEM_4};
DWORD OSDDSPLYVPProgramStatus[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_PROGRAM_STATUS_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_PROGRAM_STATUS_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_PROGRAM_STATUS_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_PROGRAM_STATUS_4};
DWORD OSDDSPLYVPPlayStatus[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_PLAY_STATUS_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_PLAY_STATUS_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_PLAY_STATUS_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_PLAY_STATUS_4};
DWORD OSDDSPLYVPRepeatStatus[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_REPEAT_STATUS_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_REPEAT_STATUS_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_REPEAT_STATUS_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_REPEAT_STATUS_4};
DWORD OSDDSPLYVPTitleInfo[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_TITLE_INFO_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_TITLE_INFO_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_TITLE_INFO_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_TITLE_INFO_4};
DWORD OSDDSPLYVPChapterInfo[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_CHAPTER_INFO_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_CHAPTER_INFO_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_CHAPTER_INFO_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_CHAPTER_INFO_4};
DWORD OSDDSPLYVPTime[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_TIME_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_TIME_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_TIME_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_TIME_4};
DWORD OSDDSPLYVPSubtitleInfo[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_SUBTITLE_INFO_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_SUBTITLE_INFO_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_SUBTITLE_INFO_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_SUBTITLE_INFO_4};
DWORD OSDDSPLYVPASTInfo[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_AST_INFO_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_AST_INFO_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_AST_INFO_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_AST_INFO_4};
DWORD OSDDSPLYVPTVInfo[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_TV_INFO_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_TV_INFO_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_TV_INFO_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_TV_INFO_4};
DWORD OSDDSPLYVPAngleInfo[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_ANGLE_INFO_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_ANGLE_INFO_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_ANGLE_INFO_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_ANGLE_INFO_4};
DWORD OSDDSPLYVPMenu[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_MENU_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_MENU_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_MENU_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_MENU_4};
DWORD OSDDSPLYVPFileNameInfo[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NAME_INFO_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NAME_INFO_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NAME_INFO_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NAME_INFO_4};
DWORD OSDDSPLYVPFileNumInfo[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NUM_INFO_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NUM_INFO_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NUM_INFO_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_FILE_NUM_INFO_4};
DWORD OSDDSPLYVPResolutionInfo[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_RESOLUTION_INFO_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_RESOLUTION_INFO_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_RESOLUTION_INFO_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_RESOLUTION_INFO_4};
DWORD OSDDSPLYVPDateInfo[] = {OSDDSPLY_VP_PALETTE_COLOR_REGION_DATE_INFO_1, OSDDSPLY_VP_PALETTE_COLOR_REGION_DATE_INFO_2, OSDDSPLY_VP_PALETTE_COLOR_REGION_DATE_INFO_3, OSDDSPLY_VP_PALETTE_COLOR_REGION_DATE_INFO_4};
BYTE _bOSDDSPLYCursorIconIndex;
WORD _wOSDDSPLYCursorMenuIndex;
BYTE _bOSDDSPLYCursorPos;
WORD _wOSDDSPLYTotalSetting;
WORD _wOSDDSPLYMaxItem;
WORD _bOSDDSPLYMenuStartV;
BYTE _bOSDDSPLYMenuHasUpArrow;
BYTE _bOSDDSPLYMenuHasDownArrow;
WORD _wOSDDSPLYStartDrawItem;
WORD _wOSDDSPLYCurrentSettingIndex;
WORD _wOSDDSPLYMaxWidth;
BYTE _bOSDDSPLYReDrawMainFrame;
BYTE _bOSDDSPLYTipDisplayed;
DWORD _dwOSDDSPLYDisplayStartTime;
BYTE _bOSDDSPLYEnterTimeMode;
WORD _wOSDDSPLYWidth;
#ifdef SUPPORT_INDEPENDENT_NAVIGATOR //CoCo1.0, Navigator UI
BYTE _bNavigatorUI = FALSE;
#endif
//***************************************************************************
#ifdef SUPPORT_NAVIGATOR //CoCo1.07, support Navigator UI
// CoCo1.06, include bitmap and palette.DWORD _aNAV_Audio[]={#include "bmp/NG_Audio.txt"};DWORD _aNAV_Angle[]={#include "bmp/NG_Angle.txt"};DWORD _aNAV_Chap[]={#include "bmp/NG_Chap.txt"};DWORD _aNAV_Rep[]={#include "bmp/NG_Rep.txt"};DWORD _aNAV_Sub1[]={#include "bmp/NG_Sub1.txt"};DWORD _aNAV_Sub2[]= {#include "bmp/NG_Sub2.txt"};DWORD _aNAV_Title[]={#include "bmp/NG_Title.txt"};
DWORD _aNAV_RepeatAB[]=
{
#include "bmp/NG_RepAB.txt"
};
DWORD _aNAV_Slow[]=
{
#include "bmp/NG_Slow.txt"
};DWORD * _aNavigatorBMPArray[OSDDSPLY_MAX_NAVIGATOR_BMP_NUM] = { _aNAV_Audio, // 0 _aNAV_Angle, // 1 _aNAV_Chap, // 2 _aNAV_Rep, // 3 _aNAV_Sub1, // 4 _aNAV_Sub2, // 5 _aNAV_Title, // 6
_aNAV_RepeatAB, // 7
_aNAV_Slow // 8};
DWORD Palette_Navigator[]= // Palette 2 data, for button bitmap{#include "bmp/PalNG.txt" // bit 8/24 indicate Mix_Enable};
GDI_PALETTE_INFO __PaletteInfo_Navigator = {GDI_BITMAP_PALETTE_INDEX_START, PAL_ADDR, Palette_Navigator};
#endif //SUPPORT_NAVIGATOR
//Temp variables
BYTE _bOSDDSPLYTemp;
WORD _wOSDDSPLYTemp;
//DISPLAYMODE *pOSDDSPTypeMode = OSDDSPLYDVDMode;
DISPLAYMODE *pOSDDSPTypeMode;
PARM_FRAME _OSDDSPLYFrame;
PARM_BITMAP_COPY _OSDDSPLYBitmapCopy;
PARM_DRAW_BITMAP _OSDDSPLYDrawBitmap;
BYTE _bOSDDSPLYMode = 0;
BYTE _bOSDDSPLYNum;
WORD _wOSDDSPLYHPos;
PARM_DRAW_STRING _OSDDSPLYStringAttr;
WORD _wOSDDSPLYInfo;
PARM_RECT _OSDDSPLYRect;
BYTE _bOSDDSPLYTitleMenuMode = FALSE;
BYTE _bOSDDSPLYLDTitleMenuMode = FALSE;
extern CHAR __cJPEGFMTExifDate[11];
extern BYTE __bNVPlayMode;
extern BYTE __bDomain;
//***************************************************************************
// Function : OSDDSPLY_Update
// Abstract : This function is the entry of the Display mode UI. Any message
// : needs to be showed at Display mode can use this function.
// Arguments : bMessage: the message.
// : wParam: the parameter.
// Return : TRUE: the message is processed by Display mode.
// : FALSE: the message is not processed by Display mode.
// Side Effect : none.
// Notes :
//***************************************************************************
BYTE OSDDSPLY_Update(BYTE bMessage, WORD wParam)
{
_wOSDDSPLYInfo = wParam; //Save the parameter for later usage.
if (bMessage == MSG_DISPLAY)
{
if (wParam == OSD_EXIT_UI)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -