summaryrefslogtreecommitdiff
path: root/macosx/plugins/DFInput/macsrc
diff options
context:
space:
mode:
authorSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-08-22 23:53:37 +0000
committerSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-08-22 23:53:37 +0000
commit531ad373b2c22e00a341a6635023cf8949571bd5 (patch)
tree029961f0aa19ec396f6d7cc09f3ff93987c9aa62 /macosx/plugins/DFInput/macsrc
parent9628a367530657e7fefb17be0a125dbe3f5d7614 (diff)
downloadpcsxr-531ad373b2c22e00a341a6635023cf8949571bd5.tar.gz
Moving most of the OS X preferences to auto layout, and all to 10.7.
Changing some lists of independent checkbox buttons to matrices. Fix a discrepancy between SDL versions 1.2 and 2.0 APIs in OS X's input preferences. git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@86849 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'macosx/plugins/DFInput/macsrc')
-rwxr-xr-xmacosx/plugins/DFInput/macsrc/ControllerList.m4
-rwxr-xr-xmacosx/plugins/DFInput/macsrc/PadController.m51
-rwxr-xr-xmacosx/plugins/DFInput/macsrc/PadView.m9
-rwxr-xr-xmacosx/plugins/DFInput/macsrc/cfg.c5
4 files changed, 52 insertions, 17 deletions
diff --git a/macosx/plugins/DFInput/macsrc/ControllerList.m b/macosx/plugins/DFInput/macsrc/ControllerList.m
index a1d4deed..41b38e2f 100755
--- a/macosx/plugins/DFInput/macsrc/ControllerList.m
+++ b/macosx/plugins/DFInput/macsrc/ControllerList.m
@@ -29,7 +29,9 @@ static int currentController;
- (id)initWithConfig
{
- if (!(self = [super init])) return nil;
+ if (self = [super init]) {
+
+ }
return self;
}
diff --git a/macosx/plugins/DFInput/macsrc/PadController.m b/macosx/plugins/DFInput/macsrc/PadController.m
index e3942158..1a4997c6 100755
--- a/macosx/plugins/DFInput/macsrc/PadController.m
+++ b/macosx/plugins/DFInput/macsrc/PadController.m
@@ -24,12 +24,22 @@
#include "pad.h"
#import "ARCBridge.h"
+static inline void RunOnMainThreadSync(dispatch_block_t block)
+{
+ if ([NSThread isMainThread]) {
+ block();
+ } else {
+ dispatch_sync(dispatch_get_main_queue(), block);
+ }
+}
+
static NSWindow *padWindow = nil;
static PadController *padController = nil;
#define APP_ID @"net.pcsxr.DFInputPlugin"
-void DoAbout() {
+void DoAbout()
+{
// Get parent application instance
NSApplication *app = [NSApplication sharedApplication];
NSBundle *bundle = [NSBundle bundleWithIdentifier:APP_ID];
@@ -65,19 +75,26 @@ void DoAbout() {
RELEASEOBJ(infoPaneDict);
}
-long DoConfiguration() {
- SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_NOPARACHUTE);
- LoadPADConfig();
-
- if (padWindow == nil) {
- if (padController == nil) {
- padController = [[PadController alloc] initWithWindowNibName:@"NetPcsxrHIDInputPluginMain"];
+long DoConfiguration()
+{
+ RunOnMainThreadSync(^{
+#if SDL_VERSION_ATLEAST(2, 0, 0)
+ SDL_InitSubSystem(SDL_INIT_JOYSTICK);
+#else
+ SDL_Init(SDL_INIT_JOYSTICK | SDL_INIT_NOPARACHUTE);
+#endif
+ LoadPADConfig();
+
+ if (padWindow == nil) {
+ if (padController == nil) {
+ padController = [[PadController alloc] initWithWindowNibName:@"NetPcsxrHIDInputPluginMain"];
+ }
+ padWindow = [padController window];
}
- padWindow = [padController window];
- }
-
- [padWindow center];
- [padWindow makeKeyAndOrderFront:nil];
+
+ [padWindow center];
+ [padWindow makeKeyAndOrderFront:nil];
+ });
return 0;
}
@@ -86,14 +103,22 @@ long DoConfiguration() {
- (IBAction)cancel:(id)sender
{
+#if SDL_VERSION_ATLEAST(2, 0, 0)
+ SDL_QuitSubSystem(SDL_INIT_JOYSTICK);
+#else
SDL_Quit();
+#endif
[self close];
}
- (IBAction)ok:(id)sender
{
SavePADConfig();
+#if SDL_VERSION_ATLEAST(2, 0, 0)
+ SDL_QuitSubSystem(SDL_INIT_JOYSTICK);
+#else
SDL_Quit();
+#endif
[self close];
}
diff --git a/macosx/plugins/DFInput/macsrc/PadView.m b/macosx/plugins/DFInput/macsrc/PadView.m
index e883a84f..f0fb801e 100755
--- a/macosx/plugins/DFInput/macsrc/PadView.m
+++ b/macosx/plugins/DFInput/macsrc/PadView.m
@@ -70,7 +70,14 @@
[deviceMenu addItemWithTitle:@"(Keyboard only)"];
for (i = 0; i < SDL_NumJoysticks(); i++) {
- NSMenuItem * joystickItem = [[NSMenuItem alloc] initWithTitle:@(SDL_JoystickName(i)) action:NULL keyEquivalent:@""];
+ NSMenuItem *joystickItem = nil;
+#if SDL_VERSION_ATLEAST(2, 0, 0)
+ SDL_Joystick *tmpJoy = SDL_JoystickOpen(i);
+ joystickItem = [[NSMenuItem alloc] initWithTitle:@(SDL_JoystickName(tmpJoy)) action:NULL keyEquivalent:@""];
+ SDL_JoystickClose(tmpJoy);
+#else
+ joystickItem = [[NSMenuItem alloc] initWithTitle:@(SDL_JoystickName(i)) action:NULL keyEquivalent:@""];
+#endif
[joystickItem setTag:i + 1];
[[deviceMenu menu] addItem:joystickItem];
RELEASEOBJ(joystickItem);
diff --git a/macosx/plugins/DFInput/macsrc/cfg.c b/macosx/plugins/DFInput/macsrc/cfg.c
index 33013c44..b9d1e7c6 100755
--- a/macosx/plugins/DFInput/macsrc/cfg.c
+++ b/macosx/plugins/DFInput/macsrc/cfg.c
@@ -17,6 +17,7 @@
*/
#include "pad.h"
+#include <sys/param.h>
GLOBALDATA g;
@@ -114,7 +115,7 @@ static void SetDefaultConfig() {
void LoadPADConfig() {
FILE *fp;
- char buf[256];
+ char buf[PATH_MAX];
int current, a, b, c;
SetDefaultConfig();
@@ -276,7 +277,7 @@ void LoadPADConfig() {
void SavePADConfig() {
FILE *fp;
int i;
- char buf[256];
+ char buf[PATH_MAX];
sprintf(buf, "%s/Library/Preferences/net.pcsxr.DFInput.plist", getenv("HOME"));