📄 dr_prefetch_bdrom.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 dr_prefetch_bdrom.h
*
* DR Prefetch Class header file.
*
* $Id: dr_prefetch_bdrom.h,v 1.7 2007/01/26 20:49:07 rbehe Exp $
*/
#ifndef DR_PREFETCH_BDROM_H
#define DR_PREFETCH_BDROM_H
#include "dr_types.h"
#include "dr_prefetch.h"
#include "clpinfodb.h"
typedef struct tagBDROM_SPEEDCHANGE
{
BOOLEAN fReverse;
BYTE bDiscrete;
}BDROM_SPEEDCHANGE;
#ifdef __cplusplus
extern "C" {
#endif
/**************************
*
* CLASS DRPrefetch_BDROM
*
**************************/
class DRPrefetch_BDROM: public DRPrefetch
{
private:
ClpInfo m_clpInfo;
BDROM_SPEEDCHANGE m_BDspeed;
LocalContextManager m_lcManager;
ULONG m_playList_id;
ULONG m_playItem_id;
ULONG m_title_num;
DR_ERROR dataRetrieve(PLAYCMD playcmd);
DR_ERROR drGetKey(ULONG playList_id, ULONG playItem_id, ULONG cps_unit, ULONGLONG boFirst);
LONG GetAndSend(LOADER_FILE_HANDLE hFileHandle, ULONGLONG boFirst, ULONGLONG boLast, BOOLEAN fDataDiscontinuity, BOOLEAN fTrickPlay, PVOID pvContext);
DR_ERROR drSendSubtextInfo(UBYTE numFiles, UBYTE *font_names, ULONG tIn, PVOID pvContext);
#ifdef DRM_BDPLUS_SUPPORT
DR_ERROR drGetAndSendFixup(ClpInfo* clpInfo, ULONGLONG boCurrentPosition, ULONG ulbytesRead);
#endif
uint32 GetPlayRate(void);
PVOID GetContext(void);
PVOID GetNextContext(void);
public:
DRPrefetch_BDROM()
{
m_BDspeed.fReverse = FALSE;
m_BDspeed.bDiscrete = 0;
}
~DRPrefetch_BDROM()
{
Stop(TRUE);
m_lcManager.Delete();
}
void * operator new( size_t size )
{
return ( OS_MemAlloc(size) );
}
void operator delete( void * pvPFB )
{
OS_MemFree(pvPFB);
}
DR_ERROR Configure (LOADER_HANDLE prm_loader, cStream* prm_stream, DR_EVENT prm_event, PVOID prm_pContext)
{
DR_ERROR status;
m_lcManager.Allocate( (BYTE)(prm_stream->MaxStatus() + 2) );
status = DRPrefetch::Configure(prm_loader, prm_stream, prm_event, prm_pContext);
return(status);
}
DR_ERROR StopAtChangePoint(BOOLEAN fAngle, ULONG *ulAngleChangePointPTS, PVOID *pvContext);
};
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -