📄 sh_scrt_api.h
字号:
}_VOBSUB_node;
typedef struct
{
_VOBSUB_Lang_st lang_pos[20]; //hsseo 20060530
UINT lang_total; //number of language
UINT selected_lang_num; // number of selected language
UINT palette[16];
UINT total_num; //total number of vobsub list
// UINT cur_num; //hsseo 20060601
UINT used_buf; //size of vobsub buf which have real vobsub data. If cur_buf_num is 1, used_buf is related with buf1
BOOL buf1_avail; //20060609
BOOL buf2_avail; //20060609
UINT cur_buf_num;
// UINT cur_write_num; //20060614 No need
// UINT cur_disp_num; //20060614 No need
//20060614
// UINT end_of_buf1_start;
UINT end_of_buf1;
UINT end_of_buf2;
// UINT end_of_buf2_end;
#if _APP_CAP_USE_VOBSUB_NEW_METHOD // cydrain 20060825
// cydrain 20060828
/* Divide 120K subtitle buffer into 4 blocks, each block 30K,
so each block can save all valid data in one FE dump.
Regard the 4 blocks as a FIFO list, and use corresponding method to manage it.
block_top: the index which point to the next empty block
block_bottom: list bottom index
block_used: how many blocks are used
block_offset: use block_bottom and block_offset can get the current VOBSUB data.
*/
UINT block_top;
UINT block_bottom;
UINT block_used;
UINT block_offset;
#endif
_VOBSUB_node* head_vobsub;
_VOBSUB_node* tail_vobsub;
_VOBSUB_node* cur_write_vobsub; //pointer to write
_VOBSUB_node* cur_disp_vobsub; // pointer to display
}_VOBSUB_Ctrl_st;
#endif
/*hsseo 20060617 VOBSUB*/
typedef struct
{
UINT command;
FS_File_t FileID;
BYTE4 fileType;
UINT writepos;
UINT filepos;
UINT num;
UINT filesize;
}_SUBREAD_Message_st;
typedef struct
{
BOOL isData;
UINT startIndex;
UINT middleIndex;
UINT endIndex;
UINT memNum;
}_VOB_Read_Unit_st;
#if 0 // cydrain 20060814, no use.
typedef struct
{
BOOL isData;
CHAR Lang[10];
UINT start_filepos;
}_VOB_Lang_filepos_st;
#endif
/* <<< @: 5009-xxx.HS SEO 060420: vobsub */
/***************************************************************************/
/*<<< @: 2005.12.19 : hs Seo :*/
//extern aviin_t *gAvi_HeaderHandle;
/*<<< @: 2005.12.19 : hs Seo :*/
#if 0
VOID SCRT_Ex_SndCmd(_SMI_Message_st message);
Subtitle_STATUS_et getSubtitleStatus(VOID);
ExSubtitle_STATUS_et getExSubtitleStatus(VOID);
//VOID SCRT_Ex_DivxSubtitle_Stop(VOID);
//VOID SCRT_DivxSubtitle_Stop(VOID);
BOOL _SH_AUD_getTrickMode( VOID );
VOID setSubtitleStatus(Subtitle_STATUS_et status);
VOID _SPD_ClearPts( VOID );
VOID _SPD_PutPts( UINT ptsptr, UINT pts, UINT vob_id);
BYTE1 GetOneDigit( BYTE1 *buffer );
VOID SCRT_Ex_ReleaseSema(VOID);
VOID SCRT_Ex_ResetSema(VOID);
VOID SCRT_Ex_GetSema(VOID);
VOID SCRT_Ex_DisplayOff(VOID);
VOID SCRT_Ex_TrickSndCmd( _SMI_Ctrl_st * smi_ctrl,_SMI_Message_st msg);
VOID SCRT_Ex_Add_One_Subtitle(UINT start_time, UINT end_time, CHAR* script);
VOID SCRT_Ex_Release_All_Subtitle(VOID);
VOID SCRT_Ex_Max_Start_Time(UINT *time,UINT *addr);
UINT SCRT_Ex_Max_End_Time(VOID);
VOID SCRT_Ex_Search_Subtitle(UINT vidpts);
VOID SCRT_Ex_Next_Subtitle(VOID);
UINT SCRT_Ex_Get_Subtitle_Start_Time(VOID);
UINT SCRT_Ex_Get_Subtitle_End_Time(VOID);
ULONG SCRT_Ex_Get_Subtitle_Start_PTS(VOID);
ULONG SCRT_Ex_Get_Subtitle_End_PTS(VOID);
VOID SCRT_Ex_Get_Cur_Subtitle_Script(CHAR* script);
UINT SCRT_Ex_TimeStrToInt(CHAR* time_str);
UINT SCRT_Ex_HexCharToInt(CHAR hex_char);
UINT SCRT_Ex_HexStrToInt(CHAR* hex_str);
ExSubtitle_Type_et SCRT_Ex_IsSyncTag(CHAR* start_address, BYTE4 file_type);
UINT SCRT_Ex_Get_PSB_Time(CHAR* start_address);
VOID SCRT_PSB_Parse(CHAR* start_address, UINT size);
UINT SCRT_Ex_Get_SRT_Time(CHAR* start_address);
VOID SCRT_SRT_Parse(CHAR* start_address,UINT size);
UINT SCRT_Ex_Get_TXT_Time(CHAR* start_address);
VOID SCRT_TXT_Parse(CHAR* start_address,UINT size);
UINT SCRT_Ex_Get_SSA_Time(CHAR* start_address);
VOID SCRT_SSA_Parse(CHAR* start_address,UINT size);
UINT SCRT_Ex_Get_SMI_Time(CHAR* start_address, UINT* index);
CHAR* SCRT_Ex_Get_SMI_Script(CHAR * start_address, UINT* num, BOOL* IsNBSP );
VOID SCRT_SMI_Parse(CHAR* start_address,UINT size);
UINT SCRT_Ex_Get_SUB_Time(CHAR* start_address, UINT *index);
VOID SCRT_SUB_Parse(CHAR* start_address,UINT size);
UINT SCRT_Idx_FindPalette(CHAR *start_address, UINT size);
VOID SCRT_Ex_PlayInTrickMode(UINT vidpts);
//vobsub
VOID SCRT_Idx_Parse(CHAR* start_address,UINT size, UINT FileID); /*hsseo 20060617 VOBSUB*/
VOID SCRT_DivxSubTitle_DeInit(VOID);
VOID SCRT_Ex_DivxSubtitle_DeInit(VOID);
BOOL SCRT_Ex_IsDisplayFlagOn(VOID);
BOOL SCRT_Ex_GetPresData(CHAR * script);
//vobsub
VOID SCRT_Ex_GetVobsubFilepos(UINT *a);
ULONG SCRT_Ex_Get_PreSmiPTS(VOID);
VOID SCRT_Ex_Set_PreSmiPTS(ULONG );
VOID SCRT_Ex_Update1msTimer(VOID);
BOOL iDISP_GetRefVideoPtm(GenPtm_st *pPtm);
BOOL SCRT_Ex_GetOSDSubtitleOnOFF(VOID);
UINT SCRT_GetNumSamplePerSec(VOID);
UINT SCRT_Get_gNumSamplePerSec(VOID);
/* <<< @: 5010-xxx.HS SEO 060306: blocking .sub of subpicture */
BYTE4 SCRT_Ex_GetFileType(VOID);
/* <<< @: 5010-xxx.HS SEO 060228 */
/* <<< @: 5010-xxx.HS SEO 060306: blocking .sub of subpicture */
BYTE4 SCRT_Check_Subtitle_format(CHAR * start_address, UINT size);
/* <<< @: 5010-xxx.HS SEO 060306 */
VOID SCRT_Ex_Init_PresUint(VOID); // cydrain 20060511
#endif
VOID SCRT_Ex_Add_One_Subtitle(UINT start_time, UINT end_time, CHAR* script);
VOID SCRT_Ex_Release_All_Subtitle(VOID);
VOID SCRT_Ex_Search_Subtitle(UINT vidpts);
VOID SCRT_Ex_Next_Subtitle(VOID);
UINT SCRT_Ex_Get_Subtitle_Start_Time(VOID);
UINT SCRT_Ex_Get_Subtitle_End_Time(VOID);
ULONG SCRT_Ex_Get_Subtitle_Start_PTS(VOID);
ULONG SCRT_Ex_Get_Subtitle_End_PTS(VOID);
VOID SCRT_Ex_Get_Cur_Subtitle_Script(CHAR* script);
UINT SCRT_Ex_TimeStrToInt(CHAR* time_str);
UINT SCRT_Ex_HexCharToInt(CHAR hex_char);
UINT SCRT_Ex_HexStrToInt(CHAR* hex_str);
ExSubtitle_Type_et SCRT_Ex_IsSyncTag(CHAR* start_address, BYTE4 file_type);
UINT SCRT_Ex_Get_PSB_Time(CHAR* start_address);
VOID SCRT_PSB_Parse(CHAR* start_address, UINT size);
UINT SCRT_Ex_Get_SRT_Time(CHAR* start_address);
VOID SCRT_SRT_Parse(CHAR* start_address,UINT size);
VOID SCRT_TXT_Parse(CHAR* start_address,UINT size);
UINT SCRT_Ex_Get_SSA_Time(CHAR* start_address);
VOID SCRT_SSA_Parse(CHAR* start_address,UINT size);
UINT SCRT_Ex_Get_SMI_Time(CHAR* start_address, UINT* index);
CHAR* SCRT_Ex_Get_SMI_Script(CHAR * start_address, UINT* num, BOOL* IsNBSP );
VOID SCRT_SMI_Parse(CHAR* start_address,UINT size);
VOID SCRT_SUB_Parse(CHAR* start_address,UINT size);
//VOID SCRT_Ex_PlayInTrickMode(UINT vidpts);
#if _APP_CAP_MMP_SUPPORT_EXT_SUBTITLE_FAST_SEARCH // cydrain 20060718
UINT SCRT_PSB_Parse_One_StartTime(CHAR * start_address, UINT size);
UINT SCRT_SRT_Parse_One_StartTime(CHAR * start_address, UINT size);
UINT SCRT_SSA_Parse_One_StartTime(CHAR * start_address, UINT size);
UINT SCRT_SMI_Parse_One_StartTime(CHAR * start_address, UINT size);
UINT SCRT_SUB_Parse_One_StartTime(CHAR * start_address, UINT size);
UINT SCRT_TXT_Parse_One_StartTime(CHAR * start_address, UINT size);
BOOL SCRT_Ex_Fast_Parse(UINT(* pParst_func)(CHAR *, UINT));
#endif
UINT SCRT_Get_gNumSamplePerSec(VOID);
UINT SCRT_GetNumSamplePerSec(VOID);
Subtitle_STATUS_et getSubtitleStatus(VOID);
VOID setSubtitleStatus(Subtitle_STATUS_et status);
VOID SCRT_set_rMIX_SP_CLUT(VOID);
VOID SCRT_DivxSubTitle_PreInit(VOID);
VOID SCRT_DivxSubTitleSndCmd(DivxSubTitle_Message_st message);
VOID SCRT_DivxSubTitle_Start(VOID);
VOID SCRT_DivxSubTitle_Continue(UINT _width,UINT _height, UINT vob_id);
VOID SCRT_DivxSubTitle_Stop(VOID);
VOID SH_SCRT_DivxSubTitle_Change(VOID);
VOID SCRT_DivxSubTitle_DeInit(VOID);
UINT SCRT_Ex_GetVobsubLangTotalNum(VOID);
//UINT SCRT_Ex_GetVobsubLangFilepos(UINT n); // cydrain 20060714, no use.
ExSubtitle_STATUS_et getExSubtitleStatus(VOID);
VOID setExSubtitleStatus(ExSubtitle_STATUS_et status);
VOID SCRT_Ex_SndCmd(_SMI_Message_st message);
VOID SCRT_Ex_DivxSubtitle_Start(CHAR *addr, UINT size);
VOID SCRT_Ex_DivxSubtitle_Stop(VOID);
VOID SCRT_Ex_DeleteTask(VOID);
VOID SCRT_Ex_DeleteMsgQ(VOID);
VOID SCRT_Ex_DeleteSema(VOID);
VOID SCRT_Ex_ReleaseSema(VOID);
VOID SCRT_Ex_ResetSema(VOID);
VOID SCRT_Ex_GetSema(VOID);
VOID SCRT_Ex_DisplayOn(VOID);
VOID SCRT_Ex_DisplayOff(VOID);
BOOL SCRT_Ex_getDisplayOnOff(VOID);
BOOL SCRT_Ex_GetOSDSubtitleOnOFF(VOID);
VOID SCRT_Ex_stateSubtitleOn(VOID);
VOID SCRT_Ex_stateSubtitleOff(VOID);
VOID SCRT_Ex_Set_ParseDone(BOOL value);
BOOL SCRT_Ex_Get_ParseDone(VOID);
void SCRT_Ex_DivxSubtitle_DeInit(void);
VOID SCRT_Ex_DivxSubtitle_Task(UCHAR argc, void *argv);
VOID SCRT_Ex_CreateMsgQ(VOID);
VOID SCRT_Ex_CreateSema(VOID);
VOID SCRT_Ex_CreateTask(VOID);
VOID SCRT_Ex_Init_PresUint(VOID);
void SCRT_Ex_DivxSubtitle_PreInit(void);
//VOID SCRT_Ex_FindLangStartPos(CHAR *start_address, UINT _filepos,UINT size, UINT* state); // cydrain 20060814, no use.
BOOL SCRT_ReadSubtitleFile( FS_File_t FileID, BYTE4 fileType , UINT read_filepos, UINT play_num, UINT read_type);
VOID SCRT_Ex_VobSub_Display(UCHAR *pstart, UINT spu_pts);
VOID SCRT_Ex_RestartTask(VOID);
BOOL SCRT_Ex_IsDisplayFlagOn(VOID);
VOID SCRT_Ex_Set_PresCount(VOID); //limeng 060404
VOID SCRT_Ex_TrickSndCmd( _SMI_Ctrl_st * smi_ctrl,_SMI_Message_st msg);
BYTE4 SCRT_Ex_GetFileType(VOID);
VOID SCRT_Ex_SetCurrentPTS(ULONG vidpts);
extern VOID SCRT_DivxSubTitle_Task(UCHAR , void *);
extern VOID SCRT_Ex_PlayInTrickMode(UINT vidpts);
extern VOID SCRT_Ex_RegistFilledCallback(VOID);
extern VOID _SPD_ClearPts(VOID);
extern BOOL _SH_AUD_getTrickMode(VOID);
#if 1//DIVX_SUBTITLE_CHUNK_MODE // cydrain 20060712
VOID SCRT_DivX_InternalSubTitle_PreInit(VOID);
VOID SCRT_DivX_InternalSubTitle_DeInit(VOID);
VOID SH_SCRT_DivX_InternalSubtitle_Change(VOID);
VOID SH_SCRT_DivX_InternalSubTitle_Stop(VOID);
VOID SH_SCRT_DivX_InternalSubTitle_PreInit(VOID);
VOID SH_SCRT_DivX_InternalSubTitle_DeInit(VOID);
VOID SH_SCRT_DivX_InternalSubTitle_RegistFilledCallback(VOID);
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -