Make the bladesio1 driver work on OS X:

Fix a bug where the wrong plug-in was being used in place of sio1, causing PCSXR to complain.
Fix a bug where bladesio1's config window would cause PCSXR to crash.

git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@85936 e17a0e51-4ae3-4d35-97c3-1a29b211df97
This commit is contained in:
SND\MaddTheSane_cp 2013-07-09 09:33:55 +00:00
parent a2e6c179be
commit c6c9d266fa
4 changed files with 163 additions and 134 deletions

View File

@ -42,6 +42,13 @@ void gpuShowPic() {
}
void PADhandleKey(int key) {
//TODO: get these set up properly!
GPU_keypressed(key);
#ifdef ENABLE_SIO1API
SIO1_keypressed(key);
#endif
if (Config.UseNet) NET_keypressed(key);
}
long PAD1__open(void) {
@ -52,8 +59,6 @@ long PAD2__open(void) {
return PAD2_open(&gpuDisp);
}
void OnFile_Exit();
void SignalExit(int sig) {
ClosePlugins();
OnFile_Exit();
@ -88,6 +93,11 @@ int _OpenPlugins() {
if (ret < 0) { SysMessage("%s", _("Error Opening PAD2 Plugin")); return -1; }
PAD2_registerVibration(GPU_visualVibration);
PAD2_registerCursor(GPU_cursor);
#ifdef ENABLE_SIO1API
ret = SIO1_open(&gpuDisp);
if (ret < 0) { SysMessage("%s", _("Error opening SIO1 plugin!")); return -1; }
SIO1_registerCallback(SIO1irq);
#endif
if (Config.UseNet && !NetOpened) {
netInfo info;
@ -174,6 +184,10 @@ void ClosePlugins() {
if (ret < 0) { SysMessage("%s", _("Error Closing PAD2 Plugin")); return; }
ret = GPU_close();
if (ret < 0) { SysMessage("%s", _("Error Closing GPU Plugin")); return; }
#ifdef ENABLE_SIO1API
ret = SIO1_close();
if (ret < 0) { SysMessage(_("Error closing SIO1 plugin!")); return; }
#endif
if (Config.UseNet) {
NET_pause();
@ -188,6 +202,9 @@ void ResetPlugins() {
SPU_shutdown();
PAD1_shutdown();
PAD2_shutdown();
#ifdef ENABLE_SIO1API
SIO1_shutdown();
#endif
if (Config.UseNet) NET_shutdown();
ret = CDR_init();
@ -200,6 +217,11 @@ void ResetPlugins() {
if (ret < 0) { SysMessage(_("PAD1init error: %d"), ret); return; }
ret = PAD2_init(2);
if (ret < 0) { SysMessage(_("PAD2init error: %d"), ret); return; }
#ifdef ENABLE_SIO1API
ret = SIO1_init();
if (ret < 0) { SysMessage(_("SIO1init error: %d!"), ret); return; }
#endif
if (Config.UseNet) {
ret = NET_init();
if (ret < 0) { SysMessage(_("NETinit error: %d"), ret); return; }

View File

@ -36,7 +36,7 @@ const static int typeList[] = {PSE_LT_GPU, PSE_LT_SPU, PSE_LT_CDR, PSE_LT_PAD, P
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
pluginList = [[NSMutableArray alloc] initWithCapacity:20];
activeGpuPlugin = activeSpuPlugin = activeCdrPlugin = activePadPlugin = activeNetPlugin = nil;
activeGpuPlugin = activeSpuPlugin = activeCdrPlugin = activePadPlugin = activeNetPlugin = activeSIO1Plugin = nil;
missingPlugins = NO;
for (i = 0; i < sizeof(typeList) / sizeof(typeList[0]); i++) {
@ -200,7 +200,7 @@ const static int typeList[] = {PSE_LT_GPU, PSE_LT_SPU, PSE_LT_CDR, PSE_LT_PAD, P
case PSE_LT_SPU: return activeSpuPlugin; break;
case PSE_LT_PAD: return activePadPlugin; break;
case PSE_LT_NET: return activeNetPlugin; break;
case PSE_LT_SIO1: return activeNetPlugin; break;
case PSE_LT_SIO1: return activeSIO1Plugin; break;
}
return nil;

View File

@ -1315,103 +1315,13 @@
<reference key="parent" ref="497434569"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">224</int>
<reference key="object" ref="406789566"/>
<reference key="parent" ref="537116407"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">225</int>
<reference key="object" ref="462314221"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">226</int>
<reference key="object" ref="290329374"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">227</int>
<reference key="object" ref="885502674"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">228</int>
<reference key="object" ref="318007249"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">229</int>
<reference key="object" ref="666704347"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">230</int>
<reference key="object" ref="335368693"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">232</int>
<reference key="object" ref="380664884"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">233</int>
<reference key="object" ref="60527276"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">234</int>
<reference key="object" ref="145126621"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">235</int>
<reference key="object" ref="132721671"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">236</int>
<reference key="object" ref="89759382"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">237</int>
<reference key="object" ref="227679458"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">238</int>
<reference key="object" ref="887624534"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">239</int>
<reference key="object" ref="846592300"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">240</int>
<reference key="object" ref="513515301"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">241</int>
<reference key="object" ref="506743589"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">242</int>
<reference key="object" ref="919721277"/>
<int key="objectID">253</int>
<reference key="object" ref="1036876179"/>
<reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">243</int>
<reference key="object" ref="391278904"/>
<reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">244</int>
<reference key="object" ref="870181243"/>
<int key="objectID">246</int>
<reference key="object" ref="842829921"/>
<reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
@ -1420,18 +1330,8 @@
<reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">247</int>
<reference key="object" ref="290637930"/>
<reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">250</int>
<reference key="object" ref="900601962"/>
<reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">251</int>
<reference key="object" ref="427946131"/>
<int key="objectID">244</int>
<reference key="object" ref="870181243"/>
<reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
@ -1440,28 +1340,18 @@
<reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">253</int>
<reference key="object" ref="1036876179"/>
<int key="objectID">248</int>
<reference key="object" ref="447479180"/>
<reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">254</int>
<reference key="object" ref="245057345"/>
<reference key="parent" ref="45529240"/>
<int key="objectID">247</int>
<reference key="object" ref="290637930"/>
<reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">255</int>
<reference key="object" ref="997131426"/>
<reference key="parent" ref="83047673"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">256</int>
<reference key="object" ref="40692612"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">246</int>
<reference key="object" ref="842829921"/>
<int key="objectID">251</int>
<reference key="object" ref="427946131"/>
<reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
@ -1470,10 +1360,120 @@
<reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">248</int>
<reference key="object" ref="447479180"/>
<int key="objectID">243</int>
<reference key="object" ref="391278904"/>
<reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">250</int>
<reference key="object" ref="900601962"/>
<reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">242</int>
<reference key="object" ref="919721277"/>
<reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">256</int>
<reference key="object" ref="40692612"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">239</int>
<reference key="object" ref="846592300"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">233</int>
<reference key="object" ref="60527276"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">240</int>
<reference key="object" ref="513515301"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">238</int>
<reference key="object" ref="887624534"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">236</int>
<reference key="object" ref="89759382"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">234</int>
<reference key="object" ref="145126621"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">228</int>
<reference key="object" ref="318007249"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">227</int>
<reference key="object" ref="885502674"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">235</int>
<reference key="object" ref="132721671"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">230</int>
<reference key="object" ref="335368693"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">229</int>
<reference key="object" ref="666704347"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">237</int>
<reference key="object" ref="227679458"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">232</int>
<reference key="object" ref="380664884"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">226</int>
<reference key="object" ref="290329374"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">241</int>
<reference key="object" ref="506743589"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">225</int>
<reference key="object" ref="462314221"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">255</int>
<reference key="object" ref="997131426"/>
<reference key="parent" ref="83047673"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">254</int>
<reference key="object" ref="245057345"/>
<reference key="parent" ref="45529240"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">224</int>
<reference key="object" ref="406789566"/>
<reference key="parent" ref="537116407"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">

View File

@ -74,12 +74,19 @@ void AboutDlgProc()
void ConfDlgProc()
{
NSWindow *window;
if (windowController == nil) {
windowController = [[PluginConfigController alloc] initWithWindowNibName:@"Bladesio1PluginConfig"];
__block NSWindow *window;
__block PluginConfigController *tmpWindowController = nil;
//We need this block due to the xib's use of auto layout
dispatch_sync(dispatch_get_main_queue(), ^{
if (windowController == nil) {
tmpWindowController = [[PluginConfigController alloc] initWithWindowNibName:@"Bladesio1PluginConfig"];
}
window = [(windowController ? windowController : tmpWindowController) window];
});
if (!windowController) {
windowController = tmpWindowController;
}
window = [windowController window];
[windowController loadValues];