27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
#define asm __asm__
#include <nds.h>
#undef asm
static OFArray OF_GENERIC(OFGameController *) *controllers;
static void
initControllers(void)
{
void *pool = objc_autoreleasePoolPush();
controllers = [[OFArray alloc] initWithObject:
[[[OFNintendoDSGameController alloc] init] autorelease]];
objc_autoreleasePoolPop(pool);
}
@implementation OFNintendoDSGameController
+ (OFArray OF_GENERIC(OFGameController *) *)controllers
{
static OFOnceControl onceControl = OFOnceControlInitValue;
OFOnce(&onceControl, initControllers);
return [[controllers retain] autorelease];
}
- (instancetype)init
{
self = [super init];
@try {
|
|
|
|
>
>
>
>
<
<
<
<
<
<
|
|
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
#define asm __asm__
#include <nds.h>
#undef asm
static OFArray OF_GENERIC(OFGameController *) *controllers;
@implementation OFNintendoDSGameController
+ (void)initialize
{
void *pool;
if (self != [OFNintendoDSGameController class])
return;
pool = objc_autoreleasePoolPush();
controllers = [[OFArray alloc] initWithObject:
[[[OFNintendoDSGameController alloc] init] autorelease]];
objc_autoreleasePoolPop(pool);
}
+ (OFArray OF_GENERIC(OFGameController *) *)controllers
{
return controllers;
}
- (instancetype)init
{
self = [super init];
@try {
|