📄 psl_types.h
字号:
/*****************************************************************************
******************************************************************************
** **
** Copyright (c) 2005 Videon Central, Inc. **
** All rights reserved. **
** **
** The computer program contained herein contains proprietary information **
** which is the property of Videon Central, Inc. The program may be used **
** and/or copied only with the written permission of Videon Central, Inc. **
** or in accordance with the terms and conditions stipulated in the **
** agreement/contract under which the programs have been supplied. **
** **
******************************************************************************
*****************************************************************************/
/**
* @file psl_types.h
*
* $Revision: 1.6 $
*
* Private data types shared by all modules of the PSL.
*
*/
#ifndef PSL_TYPES_H
#define PSL_TYPES_H
#ifdef __cplusplus
extern "C" {
#endif
#include "vdvd_types.h"
#include "deal_general.h"
#include "osapi.h"
/* Language names */
static const char LANGUAGE_CONST[140][18] =
{
"English", "French", "Spanish",
"Italian", "German", "Dutch", "Portuguese",
"Chinese", "Japanese", "Thai", "Swedish",
"No", "Danish", "Finnish", "Hebrew",
"Others", "Afar", "Ab", "Afrikaans",
"Amharic", "Arabic", "Assamese", "Aymara",
"Az", "Bashkir", "Be", "Bulgarian",
"Bihari", "Bislama", "Bengali", "Tibetan",
"Breton", "Catalan", "Corsican", "Czech",
"Welsh", "Bhutani", "Greek", "Esperanto",
"Estonian", "Basque", "Persian", "Fiji",
"Faroese", "Frisian", "Irish", "Gd",
"Galician", "Guarani", "Gujarati", "Hausa",
"Hindi", "Croatian", "Hungarian","Armenian",
"Ia", "Ie", "Inupiak", "In",
"Icelandic","Yiddish", "Javanese", "Georgian",
"Kazakh", "Kl", "Km", "Kannada",
"Korean", "Kashmiri", "Kurdish", "Kirghiz",
"Latin", "Lingala", "Laothian", "Lt",
"Latvian", "Malagasy", "Maori", "Mk",
"Ml", "Mn", "Mo", "Marathi",
"Malay", "Maltese", "Burmese", "Nauru",
"Nepali", "Occitan", "Oromo", "Oriya",
"Punjabi", "Polish", "Pashto", "Portuguese",
"Quechua", "Rm", "Kirundi", "Romanian",
"Russian", "Rw", "Sanskrit", "Sindhi",
"Sangro", "Sh", "Si", "Slovak",
"Slovenian","Samoan", "Shona", "Somali",
"Albanian", "Serbian", "Siswati", "Sesotho",
"Su", "Swahili", "Tamil", "Telugu",
"Tajik", "Tigrinya", "Turkmen", "Tagalog",
"Setswana", "Tonga", "Turkish", "Tsonga",
"Tatar", "Twi", "Ukrainian","Urdu",
"Uzbek", "Vi", "Volapuk", "Wolof",
"Xhosa", "Yoruba", "Zulu"
};
/* User generated commands */
typedef enum
{
PSL_USER_CMD_POWER = 0,
PSL_USER_CMD_PLAY,
PSL_USER_CMD_STOP,
PSL_USER_CMD_PAUSE_ON,
PSL_USER_CMD_PAUSE_OFF,
PSL_USER_CMD_EJECT,
PSL_USER_CMD_DIGIT,
PSL_USER_CMD_UP,
PSL_USER_CMD_DOWN,
PSL_USER_CMD_LEFT,
PSL_USER_CMD_RIGHT,
PSL_USER_CMD_SELECT,
PSL_USER_CMD_SKIP_NEXT,
PSL_USER_CMD_SKIP_PREV,
PSL_USER_CMD_FWD_PLAY,
PSL_USER_CMD_BWD_PLAY,
PSL_USER_CMD_STEP_FWD,
PSL_USER_CMD_VOL_UP,
PSL_USER_CMD_VOL_DOWN,
PSL_USER_CMD_VOL_MUTE,
PSL_USER_CMD_REPEAT,
PSL_USER_CMD_REPEAT_AB,
PSL_USER_CMD_ANGLE,
PSL_USER_CMD_AUDIO,
PSL_USER_CMD_MENU,
PSL_USER_CMD_TITLE,
PSL_USER_CMD_CHAPTER_SEARCH,
PSL_USER_CMD_TITLE_SEARCH,
PSL_USER_CMD_TIME_SEARCH,
PSL_USER_CMD_SUBTITLE,
PSL_USER_CMD_PARENTAL_PLAY,
PSL_USER_CMD_STILL_OFF
} PSL_USER_CMD;
/* Possible interfaces */
typedef enum
{
PSL_INTERFACE_NONE = 0x00, /* No interface */
PSL_INTERFACE_TIMEDISPLAY = 0x01, /* Time Display */
PSL_INTERFACE_STATUS = 0x02, /* Status menu */
PSL_INTERFACE_SETUP = 0x04, /* Setup Menu */
PSL_INTERFACE_PARENTAL = 0x08, /* Parental prohibit */
PSL_INTERFACE_CDDA = 0x10, /* CDDA Display */
PSL_INTERFACE_ICON = 0x20, /* Icon */
PSL_INTERFACE_INFO = 0x40 /* Info message */
} PSL_INTERFACE;
/* Button types */
typedef enum
{
PSL_BUTTON_TAB,
PSL_BUTTON_LABEL,
PSL_BUTTON_SETTING,
PSL_BUTTON_OPTION,
PSL_BUTTON_PWD,
PSL_BUTTON_EXIT
} PSL_BUTTON_TYPE;
/* Time display modes */
typedef enum
{
PSL_TIME_CHAPTER = 0, /* Time into chapter */
PSL_TIME_CHAPTER_REMAIN, /* Time remaining in chapter */
PSL_TIME_TITLE, /* Time into title */
PSL_TIME_TITLE_REMAIN /* Time remaining in title */
} PSL_TIME_MODE;
/* Status modes */
typedef enum
{
PSL_STATUS_MODE_NONE = 0,
PSL_STATUS_MODE_SUBTITLE,
PSL_STATUS_MODE_AUDIO,
PSL_STATUS_MODE_ANGLE,
PSL_STATUS_MODE_REPEAT,
PSL_STATUS_MODE_SEARCH_TITLE,
PSL_STATUS_MODE_SEARCH_CHAPTER,
PSL_STATUS_MODE_SEARCH_TIME_HOUR,
PSL_STATUS_MODE_SEARCH_TIME_MIN,
PSL_STATUS_MODE_SEARCH_TIME_SEC,
PSL_STATUS_MODE_CHAPTER_SKIP
} PSL_STATUS_MODE;
/* Icon */
typedef struct tagPSL_ICON
{
ULONG ulX;
ULONG ulY;
PVOID pvImage;
} PSL_ICON;
/* Icon data */
typedef struct tagPSL_ICON_DATA
{
PSL_ICON *pActiveIcon;
DEAL_HANDLE hDeal;
OS_TIMER_ID Timer;
} PSL_ICON_DATA;
/* OSD Button */
typedef struct tagPSL_BUTTON
{
ULONG ulX; /* X-coord for button */
ULONG ulY; /* Y-coord for button */
BOOLEAN fSelected; /* Set when button is selected */
PSL_BUTTON_TYPE tButtonType; /* Button type */
PVOID pDataFunction; /* Function pointer that gets fired when button is pressed */
ULONG ulInfo; /* Parameter passed to function when button is pressed */
PVOID pvButtonDrawInfo; /* Information used to draw the button */
USHORT usNumSubButtons; /* Number of sub-buttons for this button */
tagPSL_BUTTON *pSubButton; /* List of sub-buttons */
tagPSL_BUTTON *pLeftButton; /* Pointer to button to jump to when left is pressed */
tagPSL_BUTTON *pRightButton; /* Pointer to button to jump to when right is pressed */
tagPSL_BUTTON *pAboveButton; /* Pointer to button to jump to when up is pressed */
tagPSL_BUTTON *pBelowButton; /* Pointer to button to jump to when down is pressed */
tagPSL_BUTTON *pSelectButton; /* Pointer to button to jump to when select is pressed */
} PSL_BUTTON;
/* Status information */
typedef struct tagPSL_STATUS_INFO
{
USHORT usTitle; /* title number */
USHORT usChapter; /* chapter number */
ULONG ulTime; /* time in sec */
USHORT usTimeHour; /* hour setting for time search */
USHORT usTimeMin; /* min setting for time search */
USHORT usTimeSec; /* sec setting for time search */
USHORT usPlayStatus; /* play status */
USHORT tTimeMode; /* Mode to display time in */
USHORT usSubtitleLang; /* subtitle language code */
USHORT usSubtitleStream; /* subtitle stream */
USHORT usAvailableSubtitleStreams; /* number of subtitle streams available */
USHORT usAngleNumber; /* angle number */
USHORT usAvailableAngles; /* number of angles available */
USHORT usAudioStream; /* audio stream number */
USHORT usAvailableAudioStreams; /* number of audio streams available */
} PSL_STATUS_INFO;
/* Status display */
typedef struct tagPSL_STATUS_DISPLAY
{
USHORT usNumberOfDisplays; /* Number of displays in the menu */
USHORT usCurrentDisplay; /* Current display of status menu */
USHORT *pusNumButtons; /* Number of buttons in each display */
PSL_BUTTON **pButton; /* Pointer to table of buttons used for status menu */
OS_TIMER_ID Timer; /* Timer to update the time continuously */
PSL_STATUS_INFO StatusInfo; /* Available status information */
DEAL_HANDLE hDeal; /* Handle to DEAL that the status menu uses */
} PSL_STATUS_DISPLAY;
/* Status Menu */
typedef struct tagPSL_STATUS_MENU
{
USHORT usNumberOfModes; /* Number of status modes in the menu */
PSL_STATUS_INFO StatusInfo; /* Status information */
PSL_STATUS_MODE tCurrentMode; /* Current status mode */
USHORT *pusNumButtons; /* Number of buttons in each mode */
PSL_BUTTON **pButton; /* Pointer to table of buttons used for status menu */
OS_TIMER_ID Timer; /* Timer for menu to timeout */
DEAL_HANDLE hDeal; /* Handle to DEAL that the status menu uses */
} PSL_STATUS_MENU;
/* Setup Menu */
typedef struct tagPSL_SETUP_MENU
{
USHORT usNumberOfTabs; /* Number of tabs in the menu */
PSL_BUTTON *pTab; /* List of menu tabs */
PSL_BUTTON *pActiveTab; /* Pointer to active tab in the menu */
PSL_BUTTON *pActiveButton; /* Pointer to active button in the menu */
DEAL_HANDLE hDeal; /* Handle to DEAL that the menu uses */
} PSL_SETUP_MENU;
/* Parental Control Data */
typedef struct tagPSL_PARENTAL_CONTROL
{
USHORT usMode;
PSL_BUTTON Button[2];
} PSL_PARENTAL_CONTROL;
/**
* PSL Handle, shared by all modules of the PSL
*/
typedef struct tagPSL_HANDLE
{
VDVD_USER_CONFIG user_config;
ULONG ulActiveInterface;
DEAL_HANDLE hDeal;
OS_TIMER_ID Timer;
PSL_SETUP_MENU *pSetupMenu;
PSL_STATUS_MENU *pStatusMenu;
PSL_STATUS_DISPLAY *pStatusDisplay;
PSL_STATUS_DISPLAY *pCddaGui;
PSL_ICON_DATA *pIconData;
PSL_PARENTAL_CONTROL *pParentalControl;
BOOLEAN powerState;
OS_SEM_ID sem_synch;
} PSL_HANDLE;
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -