From 145f9c6dca45a738ae028bd82004a605c5d5372a Mon Sep 17 00:00:00 2001 From: Rocky Wei Date: Wed, 30 Dec 2015 23:37:49 +0800 Subject: [PATCH 1/3] add allowsRotation to gamepad --- Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.h | 3 ++- Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.m | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.h b/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.h index 6363ad07..7859f25e 100644 --- a/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.h +++ b/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.h @@ -29,7 +29,8 @@ typedef enum { NSUInteger index; BOOL connected; - + BOOL allowsRotation; + JSObjectRef jsAxes; JSObjectRef jsButtons; } diff --git a/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.m b/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.m index 7a87ea90..e4d37b15 100644 --- a/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.m +++ b/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.m @@ -9,7 +9,7 @@ - (id)initWithController:(GCController *)controllerp atIndex:(NSUInteger)indexp controller = [controllerp retain]; index = indexp; connected = YES; - + allowsRotation = YES; controller.playerIndex = index; } return self; @@ -79,6 +79,7 @@ - (void)createWithJSObject:(JSObjectRef)obj scriptView:(EJJavaScriptView *)view else if( controller.microGamepad ) { GCMicroGamepad *gamepad = controller.microGamepad; gamepad.reportsAbsoluteDpadValues = YES; + gamepad.allowsRotation = allowsRotation; mapping[kEJGamepadButtonA] = gamepad.buttonA; mapping[kEJGamepadButtonX] = gamepad.buttonX; mapping[kEJGamepadButtonUp] = gamepad.dpad.up; @@ -204,6 +205,19 @@ - (JSObjectRef)jsObject { scriptView.exitOnMenuPress = JSValueToBoolean(ctx, value); } +EJ_BIND_GET(allowsRotation, ctx) { + return JSValueMakeBoolean(ctx, allowsRotation); +} + +EJ_BIND_SET(allowsRotation, ctx, value) { + if( controller.microGamepad ) { + allowsRotation = JSValueToBoolean(ctx, value); + GCMicroGamepad *gamepad = controller.microGamepad; + gamepad.allowsRotation = allowsRotation; + } +} + + @end From 9840947375728df253c34839e9f6c0dda521362b Mon Sep 17 00:00:00 2001 From: Rocky Wei Date: Wed, 30 Dec 2015 23:55:51 +0800 Subject: [PATCH 2/3] add conditional compilation flag TARGET_OS_TV --- .../Ejecta/EJUtils/Gamepad/EJBindingGamepad.h | 2 +- .../Ejecta/EJUtils/Gamepad/EJBindingGamepad.m | 21 ++++++++----------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.h b/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.h index 7859f25e..7e06de4d 100644 --- a/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.h +++ b/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.h @@ -29,7 +29,7 @@ typedef enum { NSUInteger index; BOOL connected; - BOOL allowsRotation; + BOOL allowsRotation; JSObjectRef jsAxes; JSObjectRef jsButtons; diff --git a/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.m b/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.m index e4d37b15..17fea5d6 100644 --- a/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.m +++ b/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.m @@ -9,7 +9,7 @@ - (id)initWithController:(GCController *)controllerp atIndex:(NSUInteger)indexp controller = [controllerp retain]; index = indexp; connected = YES; - allowsRotation = YES; + allowsRotation = YES; controller.playerIndex = index; } return self; @@ -75,11 +75,11 @@ - (void)createWithJSObject:(JSObjectRef)obj scriptView:(EJJavaScriptView *)view mapping[kEJGamepadButtonLeft] = gamepad.dpad.left; mapping[kEJGamepadButtonRight] = gamepad.dpad.right; } - #if TARGET_OS_TV + #if TARGET_OS_TV else if( controller.microGamepad ) { GCMicroGamepad *gamepad = controller.microGamepad; gamepad.reportsAbsoluteDpadValues = YES; - gamepad.allowsRotation = allowsRotation; + gamepad.allowsRotation = allowsRotation; mapping[kEJGamepadButtonA] = gamepad.buttonA; mapping[kEJGamepadButtonX] = gamepad.buttonX; mapping[kEJGamepadButtonUp] = gamepad.dpad.up; @@ -206,21 +206,18 @@ - (JSObjectRef)jsObject { } EJ_BIND_GET(allowsRotation, ctx) { - return JSValueMakeBoolean(ctx, allowsRotation); + return JSValueMakeBoolean(ctx, allowsRotation); } EJ_BIND_SET(allowsRotation, ctx, value) { - if( controller.microGamepad ) { - allowsRotation = JSValueToBoolean(ctx, value); - GCMicroGamepad *gamepad = controller.microGamepad; - gamepad.allowsRotation = allowsRotation; - } + if( controller.microGamepad ) { + allowsRotation = JSValueToBoolean(ctx, value); + GCMicroGamepad *gamepad = controller.microGamepad; + gamepad.allowsRotation = allowsRotation; + } } @end - - - From e6e6a390a131ac3e6e316a53c5ac68a2a03e07ec Mon Sep 17 00:00:00 2001 From: Rocky Wei Date: Wed, 30 Dec 2015 23:57:02 +0800 Subject: [PATCH 3/3] add conditional compilation flag TARGET_OS_TV --- Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.m b/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.m index 17fea5d6..d920db6c 100644 --- a/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.m +++ b/Source/Ejecta/EJUtils/Gamepad/EJBindingGamepad.m @@ -9,7 +9,7 @@ - (id)initWithController:(GCController *)controllerp atIndex:(NSUInteger)indexp controller = [controllerp retain]; index = indexp; connected = YES; - allowsRotation = YES; + allowsRotation = YES; controller.playerIndex = index; } return self;