mirror of https://github.com/PCSX2/pcsx2.git
60 lines
1.4 KiB
C
60 lines
1.4 KiB
C
#ifndef __LIBISO_H__
|
|
#define __LIBISO_H__
|
|
|
|
#ifdef __MSCW32__
|
|
#pragma warning(disable:4018)
|
|
#endif
|
|
|
|
#define CDVDdefs
|
|
#include "PS2Etypes.h"
|
|
#include "PS2Edefs.h"
|
|
|
|
#define ISOTYPE_ILLEGAL 0
|
|
#define ISOTYPE_CD 1
|
|
#define ISOTYPE_DVD 2
|
|
#define ISOTYPE_AUDIO 3
|
|
|
|
#define ISOFLAGS_Z 0x1
|
|
#define ISOFLAGS_Z2 0x2
|
|
#define ISOFLAGS_BLOCKDUMP 0x4
|
|
|
|
#define CD_FRAMESIZE_RAW 2352
|
|
#define DATA_SIZE (CD_FRAMESIZE_RAW-12)
|
|
|
|
#define itob(i) ((i)/10*16 + (i)%10) /* u_char to BCD */
|
|
#define btoi(b) ((b)/16*10 + (b)%16) /* BCD to u_char */
|
|
|
|
typedef struct {
|
|
char filename[256];
|
|
u32 type;
|
|
u32 flags;
|
|
u32 offset;
|
|
u32 blockofs;
|
|
u32 blocksize;
|
|
u32 blocks;
|
|
void *handle;
|
|
void *htable;
|
|
char *Ztable;
|
|
u32 *dtable;
|
|
int dtablesize;
|
|
char buffer[CD_FRAMESIZE_RAW * 10];
|
|
} isoFile;
|
|
|
|
|
|
isoFile *isoOpen(const char *filename);
|
|
isoFile *isoCreate(const char *filename, int mode);
|
|
int isoSetFormat(isoFile *iso, int blockofs, int blocksize, int blocks);
|
|
int isoDetect(isoFile *iso);
|
|
int isoReadBlock(isoFile *iso, char *dst, int lsn);
|
|
int isoWriteBlock(isoFile *iso, char *src, int lsn);
|
|
void isoClose(isoFile *iso);
|
|
|
|
void *_openfile(const char *filename, int flags);
|
|
u64 _tellfile(void *handle);
|
|
int _seekfile(void *handle, u64 offset, int whence);
|
|
int _readfile(void *handle, void *dst, int size);
|
|
int _writefile(void *handle, void *src, int size);
|
|
void _closefile(void *handle);
|
|
|
|
#endif /* __LIBISO_H__ */
|