pcsx2/plugins/CDVDiso/src/CDVDiso.h

133 lines
3.2 KiB
C

/* CDVDiso
* Copyright (C) 2002-2004 CDVDiso Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifdef _MSC_VER
#pragma warning(disable:4018)
#endif
#include "PS2Etypes.h"
#include "PS2Edefs.h"
#include "libiso.h"
#ifdef __cplusplus
#ifdef _MSC_VER
#define EXPORT_C(type) extern "C" __declspec(dllexport) type CALLBACK
#else
#define EXPORT_C(type) extern "C" type
#endif
#else
#ifdef _MSC_VER
#define EXPORT_C(type) __declspec(dllexport) type __stdcall
#else
#define EXPORT_C(type) type
#endif
#endif
EXPORT_C(u32) PS2EgetLibType();
EXPORT_C(u32) PS2EgetLibVersion2(u32 type);
EXPORT_C(char*) PS2EgetLibName();
EXPORT_C(s32) CDVDinit();
EXPORT_C(s32) CDVDopen(const char* pTitleFilename);
EXPORT_C(void) CDVDclose();
EXPORT_C(void) CDVDshutdown();
EXPORT_C(s32) CDVDreadTrack(u32 lsn, int mode);
// return can be NULL (for async modes)
EXPORT_C(u8*) CDVDgetBuffer();
EXPORT_C(s32) CDVDreadSubQ(u32 lsn, cdvdSubQ* subq);//read subq from disc (only cds have subq data)
EXPORT_C(s32) CDVDgetTN(cdvdTN *Buffer); //disk information
EXPORT_C(s32) CDVDgetTD(u8 Track, cdvdTD *Buffer); //track info: min,sec,frame,type
EXPORT_C(s32) CDVDgetTOC(void* toc); //gets ps2 style toc from disc
EXPORT_C(s32) CDVDgetDiskType(); //CDVD_TYPE_xxxx
EXPORT_C(s32) CDVDgetTrayStatus(); //CDVD_TRAY_xxxx
EXPORT_C(s32) CDVDctrlTrayOpen(); //open disc tray
EXPORT_C(s32) CDVDctrlTrayClose(); //close disc tray
// extended funcs
EXPORT_C(void) CDVDconfigure();
EXPORT_C(void) CDVDabout();
EXPORT_C(s32) CDVDtest();
EXPORT_C(void) CDVDnewDiskCB(void (*callback)());
#define CDVD_LOG __Log
extern FILE *cdvdLog;
void __Log(char *fmt, ...);
#define VERBOSE 1
#define DEV_DEF ""
#define CDDEV_DEF "/dev/cdrom"
typedef struct
{
int slsn;
int elsn;
#ifdef _WINDOWS_
HANDLE handle;
#else
FILE *handle;
#endif
} _cdIso;
extern _cdIso cdIso[8];
#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 */
#define MSF2SECT(m,s,f) (((m)*60+(s)-2)*75+(f))
extern char IsoFile[256];
extern char IsoCWD[256];
extern char CdDev[256];
extern int BlockDump;
extern isoFile *fdump;
extern isoFile *iso;
extern u8 cdbuffer[];
extern u8 *pbuffer;
extern int cdblocksize;
extern int cdblockofs;
extern int cdoffset;
extern int cdtype;
extern int cdblocks;
extern int Zmode; // 1 Z - 2 bz2
extern int fmode; // 0 - file / 1 - Zfile
extern char *Ztable;
extern char *methods[];
void UpdateZmode();
void CfgOpenFile();
void SysMessage(char *fmt, ...);