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.