cdrom: change pause timing again
[pcsx_rearmed.git] / libpcsxcore / plugins.h
index e3bffc7..4054bf6 100644 (file)
@@ -25,21 +25,10 @@ extern "C" {
 #endif\r
 \r
 #include "psxcommon.h"\r
+#include "psemu_plugin_defs.h"\r
 \r
 //#define ENABLE_SIO1API 1\r
 \r
-#ifndef _WIN32\r
-\r
-typedef void* HWND;\r
-#define CALLBACK\r
-\r
-#else\r
-\r
-#define WIN32_LEAN_AND_MEAN\r
-#include <windows.h>\r
-\r
-#endif\r
-\r
 typedef long (CALLBACK *GPUopen)(unsigned long *, char *, char *);\r
 typedef long (CALLBACK *SPUopen)(void);\r
 typedef long (CALLBACK *PADopen)(unsigned long *);\r
@@ -47,8 +36,6 @@ typedef long (CALLBACK *NETopen)(unsigned long *);
 typedef long (CALLBACK *SIO1open)(unsigned long *);\r
 \r
 #include "spu.h"\r
-\r
-#include "psemu_plugin_defs.h"\r
 #include "decode_xa.h"\r
 \r
 int LoadPlugins();\r
@@ -71,11 +58,8 @@ typedef void (CALLBACK* GPUwriteDataMem)(uint32_t *, int);
 typedef uint32_t (CALLBACK* GPUreadStatus)(void);\r
 typedef uint32_t (CALLBACK* GPUreadData)(void);\r
 typedef void (CALLBACK* GPUreadDataMem)(uint32_t *, int);\r
-typedef long (CALLBACK* GPUdmaChain)(uint32_t *,uint32_t);\r
+typedef long (CALLBACK* GPUdmaChain)(uint32_t *, uint32_t, uint32_t *, int32_t *);\r
 typedef void (CALLBACK* GPUupdateLace)(void);\r
-typedef long (CALLBACK* GPUconfigure)(void);\r
-typedef long (CALLBACK* GPUtest)(void);\r
-typedef void (CALLBACK* GPUabout)(void);\r
 typedef void (CALLBACK* GPUmakeSnapshot)(void);\r
 typedef void (CALLBACK* GPUkeypressed)(int);\r
 typedef void (CALLBACK* GPUdisplayText)(char *);\r
@@ -88,16 +72,13 @@ typedef struct {
 typedef long (CALLBACK* GPUfreeze)(uint32_t, GPUFreeze_t *);\r
 typedef long (CALLBACK* GPUgetScreenPic)(unsigned char *);\r
 typedef long (CALLBACK* GPUshowScreenPic)(unsigned char *);\r
-typedef void (CALLBACK* GPUclearDynarec)(void (CALLBACK *callback)(void));\r
 typedef void (CALLBACK* GPUvBlank)(int, int);\r
+typedef void (CALLBACK* GPUgetScreenInfo)(int *, int *);\r
 \r
 // GPU function pointers\r
 extern GPUupdateLace    GPU_updateLace;\r
 extern GPUinit          GPU_init;\r
 extern GPUshutdown      GPU_shutdown; \r
-extern GPUconfigure     GPU_configure;\r
-extern GPUtest          GPU_test;\r
-extern GPUabout         GPU_about;\r
 extern GPUopen          GPU_open;\r
 extern GPUclose         GPU_close;\r
 extern GPUreadStatus    GPU_readStatus;\r
@@ -113,8 +94,8 @@ extern GPUmakeSnapshot  GPU_makeSnapshot;
 extern GPUfreeze        GPU_freeze;\r
 extern GPUgetScreenPic  GPU_getScreenPic;\r
 extern GPUshowScreenPic GPU_showScreenPic;\r
-extern GPUclearDynarec  GPU_clearDynarec;\r
 extern GPUvBlank        GPU_vBlank;\r
+extern GPUgetScreenInfo GPU_getScreenInfo;\r
 \r
 // CD-ROM Functions\r
 typedef long (CALLBACK* CDRinit)(void);\r
@@ -125,7 +106,7 @@ typedef long (CALLBACK* CDRgetTN)(unsigned char *);
 typedef long (CALLBACK* CDRgetTD)(unsigned char, unsigned char *);\r
 typedef boolean (CALLBACK* CDRreadTrack)(unsigned char *);\r
 typedef unsigned char* (CALLBACK* CDRgetBuffer)(void);\r
-typedef unsigned char* (CALLBACK* CDRgetBufferSub)(void);\r
+typedef unsigned char* (CALLBACK* CDRgetBufferSub)(int sector);\r
 typedef long (CALLBACK* CDRconfigure)(void);\r
 typedef long (CALLBACK* CDRtest)(void);\r
 typedef void (CALLBACK* CDRabout)(void);\r
@@ -133,9 +114,9 @@ typedef long (CALLBACK* CDRplay)(unsigned char *);
 typedef long (CALLBACK* CDRstop)(void);\r
 typedef long (CALLBACK* CDRsetfilename)(char *);\r
 struct CdrStat {\r
-       uint32_t Type;\r
-       uint32_t Status;\r
-       unsigned char Time[3];\r
+       uint32_t Type; // DATA, CDDA\r
+       uint32_t Status; // same as cdr.StatP\r
+       unsigned char Time_[3]; // unused\r
 };\r
 typedef long (CALLBACK* CDRgetStatus)(struct CdrStat *);\r
 typedef char* (CALLBACK* CDRgetDriveLetter)(void);\r
@@ -152,6 +133,7 @@ struct SubQ {
 };\r
 typedef long (CALLBACK* CDRreadCDDA)(unsigned char, unsigned char, unsigned char, unsigned char *);\r
 typedef long (CALLBACK* CDRgetTE)(unsigned char, unsigned char *, unsigned char *, unsigned char *);\r
+typedef long (CALLBACK* CDRprefetch)(unsigned char, unsigned char, unsigned char);\r
 \r
 // CD-ROM function pointers\r
 extern CDRinit               CDR_init;\r
@@ -173,50 +155,47 @@ extern CDRabout              CDR_about;
 extern CDRsetfilename        CDR_setfilename;\r
 extern CDRreadCDDA           CDR_readCDDA;\r
 extern CDRgetTE              CDR_getTE;\r
+extern CDRprefetch           CDR_prefetch;\r
+\r
+long CALLBACK CDR__getStatus(struct CdrStat *stat);\r
 \r
 // SPU Functions\r
 typedef long (CALLBACK* SPUinit)(void);                                \r
 typedef long (CALLBACK* SPUshutdown)(void);    \r
 typedef long (CALLBACK* SPUclose)(void);                       \r
-typedef void (CALLBACK* SPUplaySample)(unsigned char);         \r
 typedef void (CALLBACK* SPUwriteRegister)(unsigned long, unsigned short, unsigned int);\r
-typedef unsigned short (CALLBACK* SPUreadRegister)(unsigned long);\r
-typedef void (CALLBACK* SPUwriteDMA)(unsigned short);\r
-typedef unsigned short (CALLBACK* SPUreadDMA)(void);\r
+typedef unsigned short (CALLBACK* SPUreadRegister)(unsigned long, unsigned int);\r
 typedef void (CALLBACK* SPUwriteDMAMem)(unsigned short *, int, unsigned int);\r
 typedef void (CALLBACK* SPUreadDMAMem)(unsigned short *, int, unsigned int);\r
-typedef void (CALLBACK* SPUplayADPCMchannel)(xa_decode_t *);\r
-typedef void (CALLBACK* SPUregisterCallback)(void (CALLBACK *callback)(void));\r
+typedef void (CALLBACK* SPUplayADPCMchannel)(xa_decode_t *, unsigned int, int);\r
+typedef void (CALLBACK* SPUregisterCallback)(void (CALLBACK *callback)(int));\r
 typedef void (CALLBACK* SPUregisterScheduleCb)(void (CALLBACK *callback)(unsigned int cycles_after));\r
-typedef long (CALLBACK* SPUconfigure)(void);\r
-typedef long (CALLBACK* SPUtest)(void);\r
-typedef void (CALLBACK* SPUabout)(void);\r
 typedef struct {\r
        unsigned char PluginName[8];\r
        uint32_t PluginVersion;\r
        uint32_t Size;\r
+} SPUFreezeHdr_t;\r
+typedef struct SPUFreeze {\r
+       unsigned char PluginName[8];\r
+       uint32_t PluginVersion;\r
+       uint32_t Size;\r
        unsigned char SPUPorts[0x200];\r
        unsigned char SPURam[0x80000];\r
        xa_decode_t xa;\r
-       unsigned char *SPUInfo;\r
+       unsigned char *unused;\r
 } SPUFreeze_t;\r
-typedef long (CALLBACK* SPUfreeze)(uint32_t, SPUFreeze_t *, uint32_t);\r
-typedef void (CALLBACK* SPUasync)(uint32_t, uint32_t);\r
-typedef int  (CALLBACK* SPUplayCDDAchannel)(short *, int);\r
+typedef long (CALLBACK* SPUfreeze)(unsigned int, struct SPUFreeze *, unsigned int);\r
+typedef void (CALLBACK* SPUasync)(unsigned int, unsigned int);\r
+typedef int  (CALLBACK* SPUplayCDDAchannel)(short *, int, unsigned int, int);\r
+typedef void (CALLBACK* SPUsetCDvol)(unsigned char, unsigned char, unsigned char, unsigned char, unsigned int);\r
 \r
 // SPU function pointers\r
-extern SPUconfigure        SPU_configure;\r
-extern SPUabout            SPU_about;\r
 extern SPUinit             SPU_init;\r
 extern SPUshutdown         SPU_shutdown;\r
-extern SPUtest             SPU_test;\r
 extern SPUopen             SPU_open;\r
 extern SPUclose            SPU_close;\r
-extern SPUplaySample       SPU_playSample;\r
 extern SPUwriteRegister    SPU_writeRegister;\r
 extern SPUreadRegister     SPU_readRegister;\r
-extern SPUwriteDMA         SPU_writeDMA;\r
-extern SPUreadDMA          SPU_readDMA;\r
 extern SPUwriteDMAMem      SPU_writeDMAMem;\r
 extern SPUreadDMAMem       SPU_readDMAMem;\r
 extern SPUplayADPCMchannel SPU_playADPCMchannel;\r
@@ -225,6 +204,7 @@ extern SPUregisterCallback SPU_registerCallback;
 extern SPUregisterScheduleCb SPU_registerScheduleCb;\r
 extern SPUasync            SPU_async;\r
 extern SPUplayCDDAchannel  SPU_playCDDAchannel;\r
+extern SPUsetCDvol         SPU_setCDvol;\r
 \r
 // PAD Functions\r
 typedef long (CALLBACK* PADconfigure)(void);\r
@@ -238,7 +218,7 @@ typedef long (CALLBACK* PADreadPort1)(PadDataS*);
 typedef long (CALLBACK* PADreadPort2)(PadDataS*);\r
 typedef long (CALLBACK* PADkeypressed)(void);\r
 typedef unsigned char (CALLBACK* PADstartPoll)(int);\r
-typedef unsigned char (CALLBACK* PADpoll)(unsigned char);\r
+typedef unsigned char (CALLBACK* PADpoll)(unsigned char, int *);\r
 typedef void (CALLBACK* PADsetSensitive)(int);\r
 \r
 // PAD function pointers\r
@@ -396,13 +376,18 @@ extern SIO1registerCallback   SIO1_registerCallback;
 \r
 #endif\r
 \r
-void CALLBACK clearDynarec(void);\r
-\r
 void SetIsoFile(const char *filename);\r
 const char *GetIsoFile(void);\r
 boolean UsingIso(void);\r
 void SetCdOpenCaseTime(s64 time);\r
 \r
+int padFreeze(void *f, int Mode);\r
+int padToggleAnalog(unsigned int index);\r
+\r
+extern void pl_gun_byte2(int port, unsigned char byte);\r
+extern void plat_trigger_vibrate(int pad, int low, int high);\r
+extern void plat_get_psx_resolution(int *xres, int *yres);\r
+\r
 #ifdef __cplusplus\r
 }\r
 #endif\r