Xbox360ControllerManager 0.0.1

Xbox360ControllerManager 0.0.1

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
释放最后发布2014年12月

未声明的用户维护。



  • halo

工作状态说明

正在进行工作。我已经与控制器建立基本的连接,目前正在对其抽象化,以便您可以将此Cocoa Pod集成到项目中。我不想让您处理IOHIDDevices,而是希望使用真正的控制器实例和适当的通知。

Xbox 360 控制器管理器

这是一个提供用于与Xbox输入设备(如控制器、乐器和鼓组)简单API的CocoaPod

需求

  • 您至少需要Mountain Lion。
  • 安装允许您将Xbox输入设备(控制器、乐器、鼓组)连接到Mac的驱动程序

现在您可以使用USB线缆设备开始了!如果您计划使用无线设备,您需要首先购买一个。

Xbox 360 Wireless Receiver

安装

前往cocoapods.org了解更多关于它是如何工作的。这里有一个简短说明

1. 在您的项目旁边下载repo

git clone git://github.com/halo/Xbox360ControllerManager.git ~/some/where

2. 在您的项目中创建一个Gemfile

source :rubygems

gem 'cocoapods'

3. 在您的项目中创建一个Podfile

platform  :osx
xcodeproj 'YourProject'

pod 'Xbox360ControllerManager', '0.0.1', :local => '~/some/where'

4. 如果您还没有安装bundler,请安装和运行它

gem install bundle
bundle install

4. 运行pod

pod install

用法

这将是应用程序代理的一个最小实现。

#import "AppDelegate.h"

#import "Xbox360Controller.h"
#import "Xbox360ControllerManager.h"

@implementation AppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
  // Start listening for device activity
  [Xbox360ControllerManager sharedInstance];
  // Register to the notifications
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(controllerAdded:) name:Xbox360ControllerAddedNotification object:NULL];
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(controllerRemoved:) name:Xbox360ControllerRemovedNotification object:NULL];
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(controllerActivity:) name:Xbox360ControllerActivityNotification object:NULL];
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(controllerUpdated:) name:Xbox360ControllerUpdatedNotification object:NULL];
  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(controllerAction:) name:Xbox360ControllerActionNotification object:NULL];
}

- (void) controllerAdded:(NSNotification*)notification {
  NSLog(@"You added a controller: %@", [notification object]);
}

- (void) controllerRemoved:(NSNotification*)notification {
  NSLog(@"You removed a controller: %@", [notification object]);
}

- (void) controllerActivity:(NSNotification*)notification {
  NSLog(@"You pressed some buttons: %@", [notification object]);
}

- (void) controllerUpdated:(NSNotification*)notification {
  Xbox360Controller *controller = [notification object];
  NSLog(@"Controller updated: %d", controller.leftStickHorizontal);
}

- (void) controllerAction:(NSNotification*)notification {
  NSLog(@"Controller action: %@", [notification object]);
}

@end

如果你对底层探索有一定的兴趣,也可以在调用 [Xbox360HIDManager sharedInstance] 之后,注册 Xbox360HIDAddedNotificationXbox360HIDRemovedNotificationXbox360HIDActivityNotification。这些将为你提供活动的 IOHIDDeviceRef

致谢

  • Colin Munro 是 Mac OS 驱动程序的杰出创意者。
  • Derek van Vliet 有一个令人鼓舞的项目,它与该项目有着相同的构想——还有项目名:)

许可证

MIT 2013 funkensturm。参见 MIT-LICENSE