summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-07-09 09:33:55 +0000
committerSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-07-09 09:33:55 +0000
commitc6c9d266fad98310bb6f0118362d8dc7e60ecfae (patch)
treedf4f355d09afe3c1deb2a839d56dd1095e073209
parenta2e6c179be60efa937f1f51a45c53919bb44083d (diff)
downloadpcsxr-c6c9d266fad98310bb6f0118362d8dc7e60ecfae.tar.gz
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
-rwxr-xr-xmacosx/Plugin.c26
-rwxr-xr-xmacosx/PluginList.m4
-rw-r--r--macosx/plugins/Bladesio1/English.lproj/Bladesio1PluginConfig.xib176
-rwxr-xr-xmacosx/plugins/Bladesio1/macsrc/PluginConfigController.m17
4 files changed, 126 insertions, 97 deletions
diff --git a/macosx/Plugin.c b/macosx/Plugin.c
index bbfec3c8..e501a5f5 100755
--- a/macosx/Plugin.c
+++ b/macosx/Plugin.c
@@ -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; }
diff --git a/macosx/PluginList.m b/macosx/PluginList.m
index 621e7f3c..cd15da58 100755
--- a/macosx/PluginList.m
+++ b/macosx/PluginList.m
@@ -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;
diff --git a/macosx/plugins/Bladesio1/English.lproj/Bladesio1PluginConfig.xib b/macosx/plugins/Bladesio1/English.lproj/Bladesio1PluginConfig.xib
index 91239800..2ae3f8cf 100644
--- a/macosx/plugins/Bladesio1/English.lproj/Bladesio1PluginConfig.xib
+++ b/macosx/plugins/Bladesio1/English.lproj/Bladesio1PluginConfig.xib
@@ -1315,78 +1315,78 @@
<reference key="parent" ref="497434569"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">224</int>
- <reference key="object" ref="406789566"/>
- <reference key="parent" ref="537116407"/>
+ <int key="objectID">253</int>
+ <reference key="object" ref="1036876179"/>
+ <reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">225</int>
- <reference key="object" ref="462314221"/>
- <reference key="parent" ref="82652069"/>
+ <int key="objectID">246</int>
+ <reference key="object" ref="842829921"/>
+ <reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">226</int>
- <reference key="object" ref="290329374"/>
- <reference key="parent" ref="82652069"/>
+ <int key="objectID">245</int>
+ <reference key="object" ref="674129625"/>
+ <reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">227</int>
- <reference key="object" ref="885502674"/>
- <reference key="parent" ref="82652069"/>
+ <int key="objectID">244</int>
+ <reference key="object" ref="870181243"/>
+ <reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">228</int>
- <reference key="object" ref="318007249"/>
- <reference key="parent" ref="82652069"/>
+ <int key="objectID">252</int>
+ <reference key="object" ref="499697857"/>
+ <reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">229</int>
- <reference key="object" ref="666704347"/>
- <reference key="parent" ref="82652069"/>
+ <int key="objectID">248</int>
+ <reference key="object" ref="447479180"/>
+ <reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">230</int>
- <reference key="object" ref="335368693"/>
- <reference key="parent" ref="82652069"/>
+ <int key="objectID">247</int>
+ <reference key="object" ref="290637930"/>
+ <reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">232</int>
- <reference key="object" ref="380664884"/>
- <reference key="parent" ref="82652069"/>
+ <int key="objectID">251</int>
+ <reference key="object" ref="427946131"/>
+ <reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">233</int>
- <reference key="object" ref="60527276"/>
- <reference key="parent" ref="82652069"/>
+ <int key="objectID">249</int>
+ <reference key="object" ref="906287637"/>
+ <reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">234</int>
- <reference key="object" ref="145126621"/>
- <reference key="parent" ref="82652069"/>
+ <int key="objectID">243</int>
+ <reference key="object" ref="391278904"/>
+ <reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">235</int>
- <reference key="object" ref="132721671"/>
- <reference key="parent" ref="82652069"/>
+ <int key="objectID">250</int>
+ <reference key="object" ref="900601962"/>
+ <reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">236</int>
- <reference key="object" ref="89759382"/>
- <reference key="parent" ref="82652069"/>
+ <int key="objectID">242</int>
+ <reference key="object" ref="919721277"/>
+ <reference key="parent" ref="127793487"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">237</int>
- <reference key="object" ref="227679458"/>
+ <int key="objectID">256</int>
+ <reference key="object" ref="40692612"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">238</int>
- <reference key="object" ref="887624534"/>
+ <int key="objectID">239</int>
+ <reference key="object" ref="846592300"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">239</int>
- <reference key="object" ref="846592300"/>
+ <int key="objectID">233</int>
+ <reference key="object" ref="60527276"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
@@ -1395,84 +1395,84 @@
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">241</int>
- <reference key="object" ref="506743589"/>
+ <int key="objectID">238</int>
+ <reference key="object" ref="887624534"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">242</int>
- <reference key="object" ref="919721277"/>
- <reference key="parent" ref="127793487"/>
+ <int key="objectID">236</int>
+ <reference key="object" ref="89759382"/>
+ <reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">243</int>
- <reference key="object" ref="391278904"/>
- <reference key="parent" ref="127793487"/>
+ <int key="objectID">234</int>
+ <reference key="object" ref="145126621"/>
+ <reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">244</int>
- <reference key="object" ref="870181243"/>
- <reference key="parent" ref="127793487"/>
+ <int key="objectID">228</int>
+ <reference key="object" ref="318007249"/>
+ <reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">245</int>
- <reference key="object" ref="674129625"/>
- <reference key="parent" ref="127793487"/>
+ <int key="objectID">227</int>
+ <reference key="object" ref="885502674"/>
+ <reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">247</int>
- <reference key="object" ref="290637930"/>
- <reference key="parent" ref="127793487"/>
+ <int key="objectID">235</int>
+ <reference key="object" ref="132721671"/>
+ <reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">250</int>
- <reference key="object" ref="900601962"/>
- <reference key="parent" ref="127793487"/>
+ <int key="objectID">230</int>
+ <reference key="object" ref="335368693"/>
+ <reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">251</int>
- <reference key="object" ref="427946131"/>
- <reference key="parent" ref="127793487"/>
+ <int key="objectID">229</int>
+ <reference key="object" ref="666704347"/>
+ <reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">252</int>
- <reference key="object" ref="499697857"/>
- <reference key="parent" ref="127793487"/>
+ <int key="objectID">237</int>
+ <reference key="object" ref="227679458"/>
+ <reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">253</int>
- <reference key="object" ref="1036876179"/>
- <reference key="parent" ref="127793487"/>
+ <int key="objectID">232</int>
+ <reference key="object" ref="380664884"/>
+ <reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">254</int>
- <reference key="object" ref="245057345"/>
- <reference key="parent" ref="45529240"/>
+ <int key="objectID">226</int>
+ <reference key="object" ref="290329374"/>
+ <reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">255</int>
- <reference key="object" ref="997131426"/>
- <reference key="parent" ref="83047673"/>
+ <int key="objectID">241</int>
+ <reference key="object" ref="506743589"/>
+ <reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">256</int>
- <reference key="object" ref="40692612"/>
+ <int key="objectID">225</int>
+ <reference key="object" ref="462314221"/>
<reference key="parent" ref="82652069"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">246</int>
- <reference key="object" ref="842829921"/>
- <reference key="parent" ref="127793487"/>
+ <int key="objectID">255</int>
+ <reference key="object" ref="997131426"/>
+ <reference key="parent" ref="83047673"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">249</int>
- <reference key="object" ref="906287637"/>
- <reference key="parent" ref="127793487"/>
+ <int key="objectID">254</int>
+ <reference key="object" ref="245057345"/>
+ <reference key="parent" ref="45529240"/>
</object>
<object class="IBObjectRecord">
- <int key="objectID">248</int>
- <reference key="object" ref="447479180"/>
- <reference key="parent" ref="127793487"/>
+ <int key="objectID">224</int>
+ <reference key="object" ref="406789566"/>
+ <reference key="parent" ref="537116407"/>
</object>
</array>
</object>
diff --git a/macosx/plugins/Bladesio1/macsrc/PluginConfigController.m b/macosx/plugins/Bladesio1/macsrc/PluginConfigController.m
index dbc85174..b1b4c08e 100755
--- a/macosx/plugins/Bladesio1/macsrc/PluginConfigController.m
+++ b/macosx/plugins/Bladesio1/macsrc/PluginConfigController.m
@@ -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];