📄 bdrom_app.cpp
字号:
{
/* Player is surround capable for Dolby Lossless */
regAudioCapability |= 0x00008000;
}
else
{
/* Player is stereo capable for Dolby Lossless */
regAudioCapability |= 0x00004000;
}
}
/* Check TextST Unsupported Languages capability */
if ( (iconfigTextSTCapable & TEXTST_CAPABLE_UNSUPPORTED_LANG) != TEXTST_CAPABLE_INVALID)
{
regTextSTCapability |= 0x00010000;
}
/* Check TextST User style change capability */
if ( (iconfigTextSTCapable & TEXTST_CAPABLE_USER_STYLE_CHANGE) != TEXTST_CAPABLE_INVALID)
{
regTextSTCapability |= 0x00008000;
}
/* Check TextST text flow and align capability */
if ( (iconfigTextSTCapable & TEXTST_CAPABLE_TEXT_FLOW_ALIGN) != TEXTST_CAPABLE_INVALID)
{
regTextSTCapability |= 0x00004000;
}
/* Check TextST outline border capability */
if ( (iconfigTextSTCapable & TEXTST_CAPABLE_OUTLINE_BORDER) != TEXTST_CAPABLE_INVALID)
{
regTextSTCapability |= 0x00002000;
}
/* Check TextST inline style change capability */
if ( (iconfigTextSTCapable & TEXTST_CAPABLE_INLINE_STYLE) != TEXTST_CAPABLE_INVALID)
{
regTextSTCapability |= 0x00001000;
}
/* Check TextST BIG5 encoding capability */
if ( (iconfigTextSTCapable & TEXTST_CAPABLE_BIG5) != TEXTST_CAPABLE_INVALID)
{
regTextSTCapability |= 0x00000080;
}
/* Check TextST CN-GB encoding capability */
if ( (iconfigTextSTCapable & TEXTST_CAPABLE_CN_GB) != TEXTST_CAPABLE_INVALID)
{
regTextSTCapability |= 0x00000040;
}
/* Check TextST GB18030-2000 encoding capability */
if ( (iconfigTextSTCapable & TEXTST_CAPABLE_GB18030_2000) != TEXTST_CAPABLE_INVALID)
{
regTextSTCapability |= 0x00000020;
}
/* Check TextST EUC-KR encoding capability */
if ( (iconfigTextSTCapable & TEXTST_CAPABLE_EUC_KR) != TEXTST_CAPABLE_INVALID)
{
regTextSTCapability |= 0x00000010;
}
/* Check TextST Shift JIS encoding capability */
if ( (iconfigTextSTCapable & TEXTST_CAPABLE_SHIFT_JIS) != TEXTST_CAPABLE_INVALID)
{
regTextSTCapability |= 0x00000008;
}
/* Configure the BDROM Navigator with player's audio capabilites */
if (ModMgrConfigAudioCapability(regAudioCapability) != MODMGR_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("bdromappLoadPlayerCapabilities: failed to set audio capabilites!\n"));
return (OS_FAILURE);
}
/* Configure the BDROM Navigator with player's text subtitle capabilites */
if (ModMgrConfigTextSTCapability(regTextSTCapability) != MODMGR_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("bdromappLoadPlayerCapabilities: failed to set textst capabilites!\n"));
return (OS_FAILURE);
}
/* Configure the BDROM Navigator with player version
*
* BD-ROM Player which complies with BD-ROM Profile 1 without functions indicated
* by Note1 in Annex D
*
* BD-ROM Player which complies with System Description Blu-ray Disc Read-Only Format,
* Part 3: Audio Visual Basic Specifications Version 1.0
*/
if (ModMgrConfigPlayerVersion(BDROM_PROFILE_1_WITHOUT_OPTIONAL_FEATURES) != MODMGR_SUCCESS)
{
DBGPRINT(DBG_ON(DBG_ERROR), ("bdromappLoadPlayerCapabilities: failed to set player version!\n"));
return (OS_FAILURE);
}
/*
* Set language capabilities. For now, allow only english. This will
* need to be updated. Decision of what languages are supported should be
* moved to the PE.
*/
ModMgrConfigPSRValue(48, 0x00000000);
ModMgrConfigPSRValue(49, 0x00000000);
ModMgrConfigPSRValue(50, 0x00000000);
ModMgrConfigPSRValue(51, 0x00020000);
ModMgrConfigPSRValue(52, 0x00000000);
ModMgrConfigPSRValue(53, 0x00000000);
ModMgrConfigPSRValue(54, 0x00000000);
ModMgrConfigPSRValue(55, 0x00000000);
ModMgrConfigPSRValue(56, 0x00000000);
ModMgrConfigPSRValue(57, 0x00000000);
ModMgrConfigPSRValue(58, 0x00000000);
ModMgrConfigPSRValue(59, 0x00000000);
ModMgrConfigPSRValue(60, 0x00000000);
ModMgrConfigPSRValue(61, 0x00000000);
return (OS_OK);
}
/**
* bdromappMapLanguageCode -- Map a language code to the corresponding language code
* defined in ISO 639-2.
*
* @param
* ucLangCode -- language code
*
* @retval
* corresponding language code defined in ISO 639-2, coded according to ISO 646
*/
static int bdromappMapLanguageCode(UCHAR ucLangCode)
{
int iso_langcode;
switch (ucLangCode)
{
case 1:
iso_langcode = 0x00656e67; /* English */
break;
case 2:
iso_langcode = 0x00667261; /* French */
break;
case 3:
iso_langcode = 0x00737061; /* Spanish */
break;
case 4:
iso_langcode = 0x00697461; /* Italian */
break;
case 5:
iso_langcode = 0x00676572; /* German */
break;
case 6:
iso_langcode = 0x00647574; /* Dutch */
break;
case 7:
iso_langcode = 0x00706f72; /* Portuguese */
break;
case 8:
iso_langcode = 0x00636869; /* Chinese */
break;
case 9:
iso_langcode = 0x006a706e; /* Japanese */
break;
case 10:
iso_langcode = 0x00746861; /* Thai */
break;
case 11:
iso_langcode = 0x00737665; /* Swedish */
break;
case 12:
iso_langcode = 0x006e6f72; /* Norwegain */
break;
case 13:
iso_langcode = 0x0064616e; /* Danish */
break;
case 14:
iso_langcode = 0x0066696e; /* Finnish */
break;
case 15:
iso_langcode = 0x00686562; /* Hebrew */
break;
case 17:
iso_langcode = 0x00616172; /* Afar */
break;
case 18:
iso_langcode = 0x0061626b; /* Abkhazian */
break;
case 19:
iso_langcode = 0x00616672; /* Afrikaans */
break;
case 20:
iso_langcode = 0x00617261; /* Arabic */
break;
case 22:
iso_langcode = 0x0061736d; /* Assamese */
break;
case 23:
iso_langcode = 0x0061796d; /* Aymara */
break;
case 24:
iso_langcode = 0x00617a65; /* Azebraijani */
break;
case 25:
iso_langcode = 0x0062616b; /* Bashkir */
break;
case 26:
iso_langcode = 0x0062656c; /* Byelorussian */
break;
case 27:
iso_langcode = 0x0062756c; /* Bulgarian */
break;
case 28:
iso_langcode = 0x00626968; /* Bihari */
break;
case 29:
iso_langcode = 0x00626973; /* Bislama */
break;
case 30:
iso_langcode = 0x0062656e; /* Bengali */
break;
case 31:
iso_langcode = 0x00746962; /* Tibetan */
break;
case 32:
iso_langcode = 0x00627265; /* Breton */
break;
case 33:
iso_langcode = 0x00636174; /* Catalan */
break;
case 34:
iso_langcode = 0x00636f73; /* Corsican */
break;
case 35:
iso_langcode = 0x00636573; /* Czech */
break;
case 36:
iso_langcode = 0x0063796d; /* Welsh */
break;
case 38:
iso_langcode = 0x00656c6c; /* Greek */
break;
case 39:
iso_langcode = 0x0065706f; /* Esperanto */
break;
case 40:
iso_langcode = 0x00657374; /* Estonian */
break;
case 41:
iso_langcode = 0x00657573; /* Basque */
break;
case 42:
iso_langcode = 0x00666173; /* Persian */
break;
case 43:
iso_langcode = 0x0066696a; /* Fiji */
break;
case 44:
iso_langcode = 0x0066616f; /* Faeroese */
break;
case 45:
iso_langcode = 0x00667279; /* Frisian */
break;
case 46:
iso_langcode = 0x00676169; /* Irish */
break;
case 47:
iso_langcode = 0x00676165; /* Scots Gaelic */
break;
case 48:
iso_langcode = 0x00676c67; /* Gallegan */
break;
case 49:
iso_langcode = 0x0067726e; /* Guarani */
break;
case 50:
iso_langcode = 0x0067756a; /* Gujarati */
break;
case 51:
iso_langcode = 0x00686175; /* Hausa */
break;
case 52:
iso_langcode = 0x0068696e; /* Hindi */
break;
case 54:
iso_langcode = 0x0068756e; /* Hungarian */
break;
case 55:
iso_langcode = 0x00687965; /* Armenian */
break;
case 56:
iso_langcode = 0x00696e61; /* Interlingua */
break;
case 57:
iso_langcode = 0x00696e65; /* Interlingue */
break;
case 58:
iso_langcode = 0x0069706b; /* Inupiak */
break;
case 59:
iso_langcode = 0x00696e64; /* Indonesian */
break;
case 60:
iso_langcode = 0x00696365; /* Icelandic */
break;
case 61:
iso_langcode = 0x00796964; /* Yiddish */
break;
case 62:
iso_langcode = 0x006a6177; /* Javanese */
break;
case 63:
iso_langcode = 0x006b6174; /* Georgian */
break;
case 64:
iso_langcode = 0x006b617a; /* Kazakh */
break;
case 65:
iso_langcode = 0x006b616c; /* Greenlandic */
break;
case 67:
iso_langcode = 0x006b616e; /* Kannada */
break;
case 68:
iso_langcode = 0x006b6f72; /* Korean */
break;
case 69:
iso_langcode = 0x006b6173; /* Kashmiri */
break;
case 70:
iso_langcode = 0x006b7572; /* Kurdish */
break;
case 71:
iso_langcode = 0x006b7972; /* Kirghiz */
break;
case 72:
iso_langcode = 0x006c6174; /* Latin */
break;
case 73:
iso_langcode = 0x006c696e; /* Lingala */
break;
case 74:
iso_langcode = 0x006c616f; /* Lao */
break;
case 75:
iso_langcode = 0x006c6974; /* Lithuanian */
break;
case 76:
iso_langcode = 0x006c6176; /* Latvian */
break;
case 77:
iso_langcode = 0x006d6c67; /* Malagasy */
break;
case 78:
iso_langcode = 0x006d616f; /* Maori */
break;
case 79:
iso_langcode = 0x006d616b; /* Macedonian */
break;
case 80:
iso_langcode = 0x006d616c; /* Malayalam */
break;
case 81:
iso_langcode = 0x006d6f6e; /* Mongolian */
break;
case 82:
iso_langcode = 0x006d6f6c; /* Moldavian */
break;
case 83:
iso_langcode = 0x006d6172; /* Marathi */
break;
case 84:
iso_langcode = 0x006d6179; /* Malay */
break;
case 85:
iso_langcode = 0x006d6c74; /* Maltese */
break;
case 86:
iso_langcode = 0x006d7961; /* Burmese */
break;
case 87:
iso_langcode = 0x006e6175; /* Nauru */
break;
case 88:
iso_langcode = 0x006e6570; /* Nepali */
break;
case 90:
iso_langcode = 0x006f726d; /* Oromo */
break;
case 91:
iso_langcode = 0x006f7269; /* Oriya */
break;
case 92:
iso_langcode = 0x0070616e; /* Panjabi */
break;
case 93:
iso_langcode = 0x00706f6c; /* Polish */
break;
case 94:
iso_langcode = 0x00707573; /* Pashto */
break;
case 95:
iso_langcode = 0x00706f72; /* Potuguese */
break;
case 96:
iso_langcode = 0x00717565; /* Quechua */
break;
case 97:
iso_langcode = 0x00726f68; /* Rhaeto-Romance */
break;
case 99:
iso_langcode = 0x00726f6e; /* Romanian */
break;
case 100:
iso_langcode = 0x00727573; /* Russian */
break;
case 101:
iso_langcode = 0x006b696e; /* Kinyarwanda */
break;
case 102:
iso_langcode = 0x0073616e; /* Sanskrit */
break;
case 103:
iso_langcode = 0x00736e64; /* Sindhi */
break;
case 104:
iso_langcode = 0x00736167; /* Sango */
break;
case 105:
iso_langcode = 0x00736372; /* Serbo-Croatian */
break;
case 106:
iso_langcode = 0x0073696e; /* Singhalese */
break;
case 107:
iso_langcode = 0x00736c6b; /* Slovak */
break;
case 108:
iso_langcode = 0x00736c6b; /* Slovenian */
break;
case 109:
iso_langcode = 0x00736d6f; /* Samoan */
break;
case 110:
iso_langcode = 0x00736e61; /* Shona */
break;
case 111:
iso_langcode = 0x00736f6d; /* Somali */
break;
case 112:
iso_langcode = 0x00737169; /* Albanian */
break;
case 114:
iso_langcode = 0x00737377; /* Siswant */
break;
case 116:
iso_langcode = 0x0073756e; /* Sudanese */
break;
case 117:
iso_langcode = 0x00737761; /* Swahili */
break;
case 118:
iso_langcode = 0x0074616d; /* Tamil */
break;
case 119:
iso_langcode = 0x0074656c; /* Telugu */
break;
case 120:
iso_langcode = 0x0074676b; /* Tajik */
break;
case 121:
iso_langcode = 0x00746972; /* Tigrinya */
break;
case 122:
iso_langcode = 0x0074756b; /* Turkmen */
break;
case 123:
iso_langcode = 0x0074676c; /* Tagalog */
break;
case 125:
iso_langcode = 0x00746f67; /* Tonga */
break;
case 126:
iso_langcode = 0x00747572; /* Turkish */
break;
case 127:
iso_langcode = 0x0074736f; /* Tsonga */
break;
case 128:
iso_langcode = 0x00746174; /* Tatar */
break;
case 129:
iso_langcode = 0x00747769; /* Twi */
break;
case 130:
iso_langcode = 0x00756b72; /* Ukrainian */
break;
case 131:
iso_langcode = 0x00757264; /* Urdu */
break;
case 132:
iso_langcode = 0x00757a62; /* Uzbek */
break;
case 133:
iso_langcode = 0x00766965; /* Vietnamese */
break;
case 134:
iso_langcode = 0x00766f; /* Volapuk */
break;
case 135:
iso_langcode = 0x00776f6c; /* Wolof */
break;
case 136:
iso_langcode = 0x0078686f; /* Xhosa */
break;
case 137:
iso_langcode = 0x00796f72; /* Yoruba */
break;
case 138:
iso_langcode = 0x007a756c; /* Zulu */
break;
default:
iso_langcode = 0xffffffff;
break;
}
return (iso_langcode);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -