12class DvdFileStream :
public FileStream {
14 NW4R_UT_RTTI_DECL(DvdFileStream);
17 explicit DvdFileStream(s32 entrynum);
18 DvdFileStream(
const DVDFileInfo* pInfo,
bool close);
19 virtual ~DvdFileStream();
21 bool Open(s32 entrynum);
24 void SetPriority(s32 priority) {
30 virtual s32 Read(
void* pDst, ulong size);
31 virtual bool ReadAsync(
void* pDst, ulong size, StreamCallback pCallback,
34 virtual s32 Peek(
void* pDst, ulong size);
35 virtual bool PeekAsync(
void* pDst, ulong size, StreamCallback pCallback,
38 virtual void Seek(s32 offset, ulong origin);
40 virtual void Cancel();
41 virtual bool CancelAsync(StreamCallback pCallback,
44 virtual bool IsBusy()
const {
48 virtual ulong Tell()
const {
49 return mFilePosition.Tell();
51 virtual ulong GetSize()
const {
52 return mFilePosition.GetFileSize();
55 virtual bool CanAsync()
const {
58 virtual bool CanSeek()
const {
61 virtual bool CanRead()
const {
64 virtual bool CanWrite()
const {
67 virtual bool CanCancel()
const {
71 virtual ulong GetOffsetAlign()
const {
74 virtual ulong GetSizeAlign()
const {
77 virtual ulong GetBufferAlign()
const {
84 DvdFileStream* stream;
88 static void DvdAsyncCallback_(s32 result,
DVDFileInfo* pInfo);
92 ulong AdjustReadLength_(ulong len);
96 StreamCallback mCancelCallback;
98 volatile bool mIsCanceling;
101 volatile bool mIsBusy;
102 bool mCloseOnDestroyFlg;
103 bool mCloseEnableFlg;