ObjFW  Diff

Differences From Artifact [c99ef75558]:

To Artifact [5bb1d1d168]:


21
22
23
24
25
26
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
60
61
62
63
64
65
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41




















42
43
44
45
46
47
48







+



+
+








-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-








#import "OFApplication.h"
#import "OFColor.h"
#import "OFDictionary.h"
#import "OFMethodSignature.h"
#import "OFSet.h"
#import "OFStdIOStream.h"
#import "OFThread.h"
#import "OFValue.h"

#import "OTTestCase.h"

#import "OFGameController.h"

#import "OTAssertionFailedException.h"
#import "OTTestSkippedException.h"

#ifdef OF_IOS
# include <CoreFoundation/CoreFoundation.h>
#endif

#ifdef OF_WII
# define asm __asm__
# include <gccore.h>
# include <wiiuse/wpad.h>
# undef asm
#endif

#ifdef OF_NINTENDO_DS
# define asm __asm__
# include <nds.h>
# undef asm
#endif

#ifdef OF_NINTENDO_3DS
/* Newer versions of libctru started using id as a parameter name. */
# define id id_3ds
# include <3ds.h>
# undef id
#endif

#ifdef OF_NINTENDO_SWITCH
# define id nx_id
# include <switch.h>
# undef id

static OFDate *lastConsoleUpdate;

113
114
115
116
117
118
119
120

121
122
123

124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
96
97
98
99
100
101
102

103



104























105
106
107
108
109
110
111







-
+
-
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-







		[OFApplication terminateWithStatus: 1];
	}

	[[OFFileManager defaultManager] changeCurrentDirectoryPath:
	    [OFString stringWithUTF8String: (const char *)resourcesPath]];

	CFRelease(resourcesURL);
#elif defined(OF_WII)
#elif defined(OF_WII) || defined(OF_NINTENDO_DS) || defined(OF_NINTENDO_3DS)
	GXRModeObj *mode;
	void *nextFB;

	[OFStdIOStream setUpConsole];
	VIDEO_Init();
	WPAD_Init();

	mode = VIDEO_GetPreferredMode(NULL);
	nextFB = MEM_K0_TO_K1(SYS_AllocateFramebuffer(mode));
	VIDEO_Configure(mode);
	VIDEO_SetNextFramebuffer(nextFB);
	VIDEO_SetBlack(FALSE);
	VIDEO_Flush();

	VIDEO_WaitVSync();
	if (mode->viTVMode & VI_NON_INTERLACE)
		VIDEO_WaitVSync();

	CON_InitEx(mode, 2, 2, mode->fbWidth - 4, mode->xfbHeight - 4);
	VIDEO_ClearFrameBuffer(mode, nextFB, COLOR_BLACK);
#elif defined(OF_NINTENDO_DS)
	consoleDemoInit();
#elif defined(OF_NINTENDO_3DS)
	gfxInitDefault();
	atexit(gfxExit);

	consoleInit(GFX_TOP, NULL);
#elif defined(OF_NINTENDO_SWITCH)
	consoleInit(NULL);
	padConfigureInput(1, HidNpadStyleSet_NpadStandard);
	updateConsole(true);
#endif
}

307
308
309
310
311
312
313
314

315
316
317
318
319
320


321
322
323

324
325

326
327
328
329

330
331
332
333
334


335
336

337
338
339
340

341
342
343
344
345
346

347
348
349
350
351
352
353
354
265
266
267
268
269
270
271

272
273
274
275
276


277
278



279


280




281



282

283
284
285

286




287


288



289

290
291
292
293
294
295
296







-
+




-
-
+
+
-
-
-
+
-
-
+
-
-
-
-
+
-
-
-

-
+
+

-
+
-
-
-
-
+
-
-

-
-
-
+
-







		if (description != nil)
			[OFStdOut writeLine: description];

		break;
	}

	if (status == StatusFailed) {
#if defined(OF_WII)
#if defined(OF_WII) || defined(OF_NINTENDO_DS) || defined(OF_NINTENDO_3DS)
		[OFStdOut setForegroundColor: [OFColor silver]];
		[OFStdOut writeLine: @"Press A to continue"];

		for (;;) {
			WPAD_ScanPads();

			void *pool = objc_autoreleasePoolPush();
			OFGameController *controller =
			if (WPAD_ButtonsDown(0) & WPAD_BUTTON_A)
				break;

			    [[OFGameController controllers] objectAtIndex: 0];
			VIDEO_WaitVSync();
		}

#elif defined(OF_NINTENDO_DS)
		[OFStdOut setForegroundColor: [OFColor silver]];
		[OFStdOut writeLine: @"Press A to continue"];

			[controller retrieveState];
		for (;;) {
			swiWaitForVBlank();
			scanKeys();

			if (keysDown() & KEY_A)
			if ([controller.pressedButtons containsObject:
			    OFGameControllerEastButton])
				break;
		}

#elif defined(OF_NINTENDO_3DS)
		[OFStdOut setForegroundColor: [OFColor silver]];
		[OFStdOut writeLine: @"Press A to continue"];

			[OFThread waitForVerticalBlank];
		for (;;) {
			hidScanInput();

			if (hidKeysDown() & KEY_A)
				break;

			objc_autoreleasePoolPop(pool);
			gspWaitForVBlank();
		}
#elif defined(OF_NINTENDO_SWITCH)
		[OFStdOut setForegroundColor: [OFColor silver]];
		[OFStdOut writeLine: @"Press A to continue"];

		while (appletMainLoop()) {
			PadState pad;
595
596
597
598
599
600
601
602

603

604




605
606
607
608


609
610

611
612
613
614



615
616
617
618



619
620
621
622



623
624

625
626
627
628

629
630
631
632
633
634

635
636
637
638
639
640
641
642
643
644
645
646
537
538
539
540
541
542
543

544
545
546

547
548
549
550
551
552


553
554


555
556



557
558
559




560
561
562




563
564
565
566

567




568


569



570

571
572
573
574
575
576
577
578
579
580
581







-
+

+
-
+
+
+
+


-
-
+
+
-
-
+

-
-
-
+
+
+
-
-
-
-
+
+
+
-
-
-
-
+
+
+

-
+
-
-
-
-
+
-
-

-
-
-
+
-











#endif
	[OFStdOut writeFormat: @"%zu", numSkipped];
	[OFStdOut setForegroundColor: [OFColor purple]];
	[OFStdOut writeFormat: @" test%s skipped\n",
			       (numSkipped != 1 ? "s" : "")];
	[OFStdOut reset];

#if defined(OF_WII)
#if defined(OF_WII) || defined(OF_NINTENDO_DS) || defined(OF_NINTENDO_3DS)
	[OFStdOut setForegroundColor: [OFColor silver]];
# ifdef OF_WII
	[OFStdOut writeLine: @"Press home button to exit"];
	[OFStdOut writeLine: @"Press Home button to exit"];
# else
	[OFStdOut writeLine: @"Press Start button to exit"];
# endif

	for (;;) {
		WPAD_ScanPads();

		void *pool = objc_autoreleasePoolPush();
		OFGameController *controller =
		if (WPAD_ButtonsDown(0) & WPAD_BUTTON_HOME)
			break;
		    [[OFGameController controllers] objectAtIndex: 0];

		VIDEO_WaitVSync();
	}
#elif defined(OF_NINTENDO_DS)
		[controller retrieveState];

# ifdef OF_WII
	[OFStdOut setForegroundColor: [OFColor silver]];
	[OFStdOut writeLine: @"Press start button to exit"];

	for (;;) {
		if ([controller.pressedButtons containsObject:
		    OFGameControllerHomeButton])
# else
		swiWaitForVBlank();
		scanKeys();

		if (keysDown() & KEY_START)
		if ([controller.pressedButtons containsObject:
		    OFGameControllerStartButton])
# endif
			break;
	}

#elif defined(OF_NINTENDO_3DS)
	[OFStdOut setForegroundColor: [OFColor silver]];
	[OFStdOut writeLine: @"Press start button to exit"];

		[OFThread waitForVerticalBlank];
	for (;;) {
		hidScanInput();

		if (hidKeysDown() & KEY_START)
			break;

		objc_autoreleasePoolPop(pool);
		gspWaitForVBlank();
	}
#elif defined(OF_NINTENDO_SWITCH)
	while (appletMainLoop())
		updateConsole(true);

	consoleExit(NULL);
#endif

	[OFApplication terminateWithStatus: (int)numFailed];
}
@end