Create Xref-Html Frames                    Remove All Frames
file:/home/jivera/wd/pcsx/plugins.h        (Tue Nov 25 22:46:14 2003 )


   1: /*  Pcsx - Pc Psx Emulator
   2:  *  Copyright (C) 1999-2003  Pcsx Team
   3:  *
   4:  *  This program is free software; you can redistribute it and/or modify
   5:  *  it under the terms of the GNU General Public License as published by
   6:  *  the Free Software Foundation; either version 2 of the License, or
   7:  *  (at your option) any later version.
   8:  *
   9:  *  This program is distributed in the hope that it will be useful,
  10:  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  11:  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12:  *  GNU General Public License for more details.
  13:  *
  14:  *  You should have received a copy of the GNU General Public License
  15:  *  along with this program; if not, write to the Free Software
  16:  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  17:  */
  18: 
  19: #ifndef __PLUGINS_H__
  20: #define __PLUGINS_H__
  21: 
  22: #if defined (__WIN32__)
  23: #include "Win32/plugin.h"
  24: #elif defined(__LINUX__) || defined(__MACOSX__)
  25: typedef void* HWND;
  26: #define CALLBACK
  27: #include "Linux/Plugin.h"
  28: #elif defined(__DREAMCAST__)
  29: typedef void* HWND;
  30: #define CALLBACK
  31: #include "Dreamcast/Plugin.h"
  32: #endif
  33: 
  34: #include "PSEmu_Plugin_Defs.h"
  35: #include "Decode_XA.h"
  36: 
  37: int  LoadPlugins();
  38: void ReleasePlugins();
  39: int  OpenPlugins();
  40: void ClosePlugins();
  41: void ResetPlugins();
  42: 
  43: 
  44: typedef unsigned long (CALLBACK* PSEgetLibType)(void);
  45: typedef unsigned long (CALLBACK* PSEgetLibVersion)(void);
  46: typedef char *(CALLBACK* PSEgetLibName)(void);
  47: 
  48: ///GPU PLUGIN STUFF 
  49: typedef long (CALLBACK* GPUinit)(void);
  50: typedef long (CALLBACK* GPUshutdown)(void);
  51: typedef long (CALLBACK* GPUclose)(void);
  52: typedef void (CALLBACK* GPUwriteStatus)(unsigned long);
  53: typedef void (CALLBACK* GPUwriteData)(unsigned long);
  54: typedef void (CALLBACK* GPUwriteDataMem)(unsigned long *, int);
  55: typedef unsigned long (CALLBACK* GPUreadStatus)(void);
  56: typedef unsigned long (CALLBACK* GPUreadData)(void);
  57: typedef void (CALLBACK* GPUreadDataMem)(unsigned long *, int);
  58: typedef long (CALLBACK* GPUdmaChain)(unsigned long *,unsigned long);
  59: typedef void (CALLBACK* GPUupdateLace)(void);
  60: typedef long (CALLBACK* GPUconfigure)(void);
  61: typedef long (CALLBACK* GPUtest)(void);
  62: typedef void (CALLBACK* GPUabout)(void);
  63: typedef void (CALLBACK* GPUmakeSnapshot)(void);
  64: typedef void (CALLBACK* GPUkeypressed)(int);
  65: typedef void (CALLBACK* GPUdisplayText)(char *);
  66: typedef struct {
  67:         unsigned long ulFreezeVersion;
  68:         unsigned long ulStatus;
  69:         unsigned long ulControl[256];
  70:         unsigned char psxVRam[1024*512*2];
  71: } GPUFreeze_t;
  72: typedef long (CALLBACK* GPUfreeze)(unsigned long, GPUFreeze_t *);
  73: typedef long (CALLBACK* GPUgetScreenPic)(unsigned char *);
  74: typedef long (CALLBACK* GPUshowScreenPic)(unsigned char *);
  75: typedef void (CALLBACK* GPUclearDynarec)(void (CALLBACK *callback)(void));
  76: 
  77: //plugin stuff From Shadow
  78: // *** walking in the valley of your darking soul i realize that i was alone
  79: //Gpu function pointers
  80: GPUupdateLace    GPU_updateLace;
  81: GPUinit          GPU_init;
  82: GPUshutdown      GPU_shutdown; 
  83: GPUconfigure     GPU_configure;
  84: GPUtest          GPU_test;
  85: GPUabout         GPU_about;
  86: GPUopen          GPU_open;
  87: GPUclose         GPU_close;
  88: GPUreadStatus    GPU_readStatus;
  89: GPUreadData      GPU_readData;
  90: GPUreadDataMem   GPU_readDataMem;
  91: GPUwriteStatus   GPU_writeStatus; 
  92: GPUwriteData     GPU_writeData;
  93: GPUwriteDataMem  GPU_writeDataMem;
  94: GPUdmaChain      GPU_dmaChain;
  95: GPUkeypressed    GPU_keypressed;
  96: GPUdisplayText   GPU_displayText;
  97: GPUmakeSnapshot  GPU_makeSnapshot;
  98: GPUfreeze        GPU_freeze;
  99: GPUgetScreenPic  GPU_getScreenPic;
 100: GPUshowScreenPic GPU_showScreenPic;
 101: GPUclearDynarec  GPU_clearDynarec;
 102: 
 103: //cd rom plugin ;)
 104: typedef long (CALLBACK* CDRinit)(void);
 105: typedef long (CALLBACK* CDRshutdown)(void);
 106: typedef long (CALLBACK* CDRopen)(void);
 107: typedef long (CALLBACK* CDRclose)(void);
 108: typedef long (CALLBACK* CDRgetTN)(unsigned char *);
 109: typedef long (CALLBACK* CDRgetTD)(unsigned char , unsigned char *);
 110: typedef long (CALLBACK* CDRreadTrack)(unsigned char *);
 111: typedef unsigned char * (CALLBACK* CDRgetBuffer)(void);
 112: typedef long (CALLBACK* CDRconfigure)(void);
 113: typedef long (CALLBACK* CDRtest)(void);
 114: typedef void (CALLBACK* CDRabout)(void);
 115: typedef long (CALLBACK* CDRplay)(unsigned char *);
 116: typedef long (CALLBACK* CDRstop)(void);
 117: struct CdrStat {
 118:         unsigned long Type;
 119:         unsigned long Status;
 120:         unsigned char Time[3];
 121: };
 122: typedef long (CALLBACK* CDRgetStatus)(struct CdrStat *);
 123: typedef char* (CALLBACK* CDRgetDriveLetter)(void);
 124: struct SubQ {
 125:         char res0[11];
 126:         unsigned char ControlAndADR;
 127:         unsigned char TrackNumber;
 128:         unsigned char IndexNumber;
 129:         unsigned char TrackRelativeAddress[3];
 130:         unsigned char Filler;
 131:         unsigned char AbsoluteAddress[3];
 132:         char res1[72];
 133: };
 134: typedef unsigned char* (CALLBACK* CDRgetBufferSub)(void);
 135: 
 136: //cd rom function pointers 
 137: CDRinit               CDR_init;
 138: CDRshutdown           CDR_shutdown;
 139: CDRopen               CDR_open;
 140: CDRclose              CDR_close; 
 141: CDRtest               CDR_test;
 142: CDRgetTN              CDR_getTN;
 143: CDRgetTD              CDR_getTD;
 144: CDRreadTrack          CDR_readTrack;
 145: CDRgetBuffer          CDR_getBuffer;
 146: CDRplay               CDR_play;
 147: CDRstop               CDR_stop;
 148: CDRgetStatus          CDR_getStatus;
 149: CDRgetDriveLetter     CDR_getDriveLetter;
 150: CDRgetBufferSub       CDR_getBufferSub;
 151: CDRconfigure          CDR_configure;
 152: CDRabout              CDR_about;
 153: 
 154: // spu plugin
 155: typedef long (CALLBACK* SPUinit)(void);                         
 156: typedef long (CALLBACK* SPUshutdown)(void);     
 157: typedef long (CALLBACK* SPUclose)(void);                        
 158: typedef void (CALLBACK* SPUplaySample)(unsigned char);          
 159: typedef void (CALLBACK* SPUstartChannels1)(unsigned short);     
 160: typedef void (CALLBACK* SPUstartChannels2)(unsigned short);
 161: typedef void (CALLBACK* SPUstopChannels1)(unsigned short);      
 162: typedef void (CALLBACK* SPUstopChannels2)(unsigned short);      
 163: typedef void (CALLBACK* SPUputOne)(unsigned long,unsigned short);                       
 164: typedef unsigned short (CALLBACK* SPUgetOne)(unsigned long);                    
 165: typedef void (CALLBACK* SPUsetAddr)(unsigned char, unsigned short);                     
 166: typedef void (CALLBACK* SPUsetPitch)(unsigned char, unsigned short);            
 167: typedef void (CALLBACK* SPUsetVolumeL)(unsigned char, short );          
 168: typedef void (CALLBACK* SPUsetVolumeR)(unsigned char, short );          
 169: //psemu pro 2 functions from now..
 170: typedef void (CALLBACK* SPUwriteRegister)(unsigned long, unsigned short);       
 171: typedef unsigned short (CALLBACK* SPUreadRegister)(unsigned long);              
 172: typedef void (CALLBACK* SPUwriteDMA)(unsigned short);
 173: typedef unsigned short (CALLBACK* SPUreadDMA)(void);
 174: typedef void (CALLBACK* SPUwriteDMAMem)(unsigned short *, int);
 175: typedef void (CALLBACK* SPUreadDMAMem)(unsigned short *, int);
 176: typedef void (CALLBACK* SPUplayADPCMchannel)(xa_decode_t *);
 177: typedef void (CALLBACK* SPUregisterCallback)(void (CALLBACK *callback)(void));
 178: typedef long (CALLBACK* SPUconfigure)(void);
 179: typedef long (CALLBACK* SPUtest)(void);                 
 180: typedef void (CALLBACK* SPUabout)(void);
 181: typedef struct {
 182:         unsigned char PluginName[8];
 183:         unsigned long PluginVersion;
 184:         unsigned long Size;
 185:         unsigned char SPUPorts[0x200];
 186:         unsigned char SPURam[0x80000];
 187:         xa_decode_t xa;
 188:         unsigned char *SPUInfo;
 189: } SPUFreeze_t;
 190: typedef long (CALLBACK* SPUfreeze)(unsigned long, SPUFreeze_t *);
 191: typedef void (CALLBACK* SPUasync)(unsigned long);
 192: 
 193: //SPU POINTERS
 194: SPUconfigure        SPU_configure;
 195: SPUabout            SPU_about;
 196: SPUinit             SPU_init;
 197: SPUshutdown         SPU_shutdown;
 198: SPUtest             SPU_test;
 199: SPUopen             SPU_open;
 200: SPUclose            SPU_close;
 201: SPUplaySample       SPU_playSample;
 202: SPUstartChannels1   SPU_startChannels1;
 203: SPUstartChannels2   SPU_startChannels2;
 204: SPUstopChannels1    SPU_stopChannels1;
 205: SPUstopChannels2    SPU_stopChannels2;
 206: SPUputOne           SPU_putOne;
 207: SPUgetOne           SPU_getOne;
 208: SPUsetAddr          SPU_setAddr;
 209: SPUsetPitch         SPU_setPitch;
 210: SPUsetVolumeL       SPU_setVolumeL;
 211: SPUsetVolumeR       SPU_setVolumeR;
 212: SPUwriteRegister    SPU_writeRegister;
 213: SPUreadRegister     SPU_readRegister;
 214: SPUwriteDMA         SPU_writeDMA;
 215: SPUreadDMA          SPU_readDMA;
 216: SPUwriteDMAMem      SPU_writeDMAMem;
 217: SPUreadDMAMem       SPU_readDMAMem;
 218: SPUplayADPCMchannel SPU_playADPCMchannel;
 219: SPUfreeze           SPU_freeze;
 220: SPUregisterCallback SPU_registerCallback;
 221: SPUasync            SPU_async;
 222: 
 223: // PAD Functions
 224: 
 225: typedef long (CALLBACK* PADconfigure)(void);
 226: typedef void (CALLBACK* PADabout)(void);
 227: typedef long (CALLBACK* PADinit)(long);
 228: typedef long (CALLBACK* PADshutdown)(void);     
 229: typedef long (CALLBACK* PADtest)(void);         
 230: typedef long (CALLBACK* PADclose)(void);
 231: typedef long (CALLBACK* PADquery)(void);
 232: typedef long (CALLBACK* PADreadPort1)(PadDataS*);
 233: typedef long (CALLBACK* PADreadPort2)(PadDataS*);
 234: typedef long (CALLBACK* PADkeypressed)(void);
 235: typedef unsigned char (CALLBACK* PADstartPoll)(int);
 236: typedef unsigned char (CALLBACK* PADpoll)(unsigned char);
 237: typedef void (CALLBACK* PADsetSensitive)(int);
 238: 
 239: //PAD POINTERS
 240: PADconfigure        PAD1_configure;
 241: PADabout            PAD1_about;
 242: PADinit             PAD1_init;
 243: PADshutdown         PAD1_shutdown;
 244: PADtest             PAD1_test;
 245: PADopen             PAD1_open;
 246: PADclose            PAD1_close;
 247: PADquery                        PAD1_query;
 248: PADreadPort1            PAD1_readPort1;
 249: PADkeypressed           PAD1_keypressed;
 250: PADstartPoll        PAD1_startPoll;
 251: PADpoll             PAD1_poll;
 252: PADsetSensitive     PAD1_setSensitive;
 253: 
 254: PADconfigure        PAD2_configure;
 255: PADabout            PAD2_about;
 256: PADinit             PAD2_init;
 257: PADshutdown         PAD2_shutdown;
 258: PADtest             PAD2_test;
 259: PADopen             PAD2_open;
 260: PADclose            PAD2_close;
 261: PADquery            PAD2_query;
 262: PADreadPort2            PAD2_readPort2;
 263: PADkeypressed           PAD2_keypressed;
 264: PADstartPoll        PAD2_startPoll;
 265: PADpoll             PAD2_poll;
 266: PADsetSensitive     PAD2_setSensitive;
 267: 
 268: // NET plugin
 269: 
 270: typedef long (CALLBACK* NETinit)(void);
 271: typedef long (CALLBACK* NETshutdown)(void);
 272: typedef long (CALLBACK* NETclose)(void);
 273: typedef long (CALLBACK* NETconfigure)(void);
 274: typedef long (CALLBACK* NETtest)(void);
 275: typedef void (CALLBACK* NETabout)(void);
 276: typedef void (CALLBACK* NETpause)(void);
 277: typedef void (CALLBACK* NETresume)(void);
 278: typedef long (CALLBACK* NETqueryPlayer)(void);
 279: typedef long (CALLBACK* NETsendData)(void *, int, int);
 280: typedef long (CALLBACK* NETrecvData)(void *, int, int);
 281: typedef long (CALLBACK* NETsendPadData)(void *, int);
 282: typedef long (CALLBACK* NETrecvPadData)(void *, int);
 283: 
 284: typedef struct {
 285:         char EmuName[32];
 286:         char CdromID[9];        // ie. 'SCPH12345', no \0 trailing character
 287:         char CdromLabel[11];
 288:         void *psxMem;
 289:         GPUshowScreenPic GPU_showScreenPic;
 290:         GPUdisplayText GPU_displayText;
 291:         PADsetSensitive PAD_setSensitive;
 292:         char GPUpath[256];      // paths must be absolute
 293:         char SPUpath[256];
 294:         char CDRpath[256];
 295:         char MCD1path[256];
 296:         char MCD2path[256];
 297:         char BIOSpath[256];     // 'HLE' for internal bios
 298:         char Unused[1024];
 299: } netInfo;
 300: 
 301: typedef long (CALLBACK* NETsetInfo)(netInfo *);
 302: typedef long (CALLBACK* NETkeypressed)(int)
 303: ;
 304: 
 305: 
 306: // NET function pointers 
 307: NETinit               NET_init;
 308: NETshutdown           NET_shutdown;
 309: NETopen               NET_open;
 310: NETclose              NET_close; 
 311: NETtest               NET_test;
 312: NETconfigure          NET_configure;
 313: NETabout              NET_about;
 314: NETpause              NET_pause;
 315: NETresume             NET_resume;
 316: NETqueryPlayer        NET_queryPlayer;
 317: NETsendData           NET_sendData;
 318: NETrecvData           NET_recvData;
 319: NETsendPadData        NET_sendPadData;
 320: NETrecvPadData        NET_recvPadData;
 321: NETsetInfo            NET_setInfo;
 322: NETkeypressed         NET_keypressed;
 323: 
 324: int LoadCDRplugin(char *CDRdll);
 325: int LoadGPUplugin(char *GPUdll);
 326: int LoadSPUplugin(char *SPUdll);
 327: int LoadPAD1plugin(char *PAD1dll);
 328: int LoadPAD2plugin(char *PAD2dll);
 329: int LoadNETplugin(char *NETdll);
 330: 
 331: void CALLBACK clearDynarec(void);
 332: 
 333: #endif /* __PLUGINS_H__ */
 334: /* arch-tag: Matthew Dempsky Wed Oct 15 10:35:05 CST 2003 (plugins.h)
 335:  */
 336: 








































Html form generated by Xrefactory version 1.6.4 on Fri Dec 12 20:52:56 2003
Trial version.