ObjFW  Diff

Differences From Artifact [da7170251e]:

To Artifact [747d91c177]:


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;

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
154
155
156
157
158
159
160
161
104
105
106
107
108
109
110

111



112























113
114
115
116
117
118
119







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







		[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
}

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

355
356
357
358
359
360
361
362
273
274
275
276
277
278
279

280
281
282
283
284


285
286



287


288




289



290

291
292
293

294




295


296



297

298
299
300
301
302
303
304







-
+




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

-
+
+

-
+
-
-
-
-
+
-
-

-
-
-
+
-







		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;
589
590
591
592
593
594
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
531
532
533
534
535
536
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







-
+

+
-
+
+
+
+


-
-
+
+
-
-
+

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

-
+
-
-
-
-
+
-
-

-
-
-
+
-











	[OFStdOut setForegroundColor: [OFColor fuchsia]];
	[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