git » fp-git.git » commit dee5dfe

added test code

author ecalot
2004-06-29 18:40:51 UTC
committer ecalot
2004-06-29 18:40:51 UTC
parent 43bce62563bff3b0efa1eda81b9fe373a94c114d

added test code

FP/src/ker/kernel.c +98 -0

diff --git a/FP/src/ker/kernel.c b/FP/src/ker/kernel.c
index ddd2334..8230d59 100644
--- a/FP/src/ker/kernel.c
+++ b/FP/src/ker/kernel.c
@@ -87,3 +87,101 @@ int kernel(int optionflag,int level) {
 	return 0;
 }
 
+#if 0
+#include <stdio.h>
+#include <SDL/SDL.h>
+
+void quit()
+{
+	SDL_Quit();
+	exit(0);
+}
+
+/* Initialize SDL: */
+void init()
+{
+	if (SDL_Init(SDL_INIT_TIMER) == -1)
+	{
+		fprintf(stderr, "Unable to initialize SDL.");
+		exit(1);
+	}
+}
+
+/* Initialize screen: */
+void start_screen()
+{
+	SDL_Surface *screen;
+
+	screen = SDL_SetVideoMode(640, 480, 8, SDL_SWSURFACE);
+	if ( screen == NULL ) {
+		fprintf(stderr, "Unable to set 640x480 video: %s\n", SDL_GetError());
+		quit();
+	}
+}
+
+/* Event loop: */	
+void event_loop()
+{
+	SDL_Event event;
+	
+	while(SDL_WaitEvent(&event))
+	{
+		switch (event.type) {
+		case SDL_KEYDOWN:
+			fprintf(stderr, "The %s key was pressed!\n",
+			SDL_GetKeyName(event.key.keysym.sym));
+			break;
+		case SDL_KEYUP:
+			fprintf(stderr, "The %s key was unpressed!\n",
+			SDL_GetKeyName(event.key.keysym.sym));
+			break;	
+		case SDL_USEREVENT:
+			fprintf(stderr, "Timer event!\n");
+			break;
+		case SDL_QUIT:
+			fprintf(stderr, "Program exited normally.");
+			return;
+		}
+	}
+	fprintf(stderr, "Abnormal termination.");
+}
+
+Uint32 timer_callback(Uint32 interval, void *param)
+{
+	SDL_Event event;
+
+	/* Push a user-defined event on the event queue: */
+	event.type = SDL_USEREVENT;
+	event.user.code = 0;
+	event.user.data1 = NULL;
+	event.user.data2 = NULL;
+	SDL_PushEvent(&event);
+
+	return interval; /* Timer must raise an alarm again after 'interval' ms. */
+}
+
+SDL_TimerID start_timer()
+{
+	return SDL_AddTimer(83, timer_callback, NULL);
+}
+
+void stop_timer(SDL_TimerID id)
+{
+	SDL_RemoveTimer(id);
+}
+
+int main(int argc, char argv[])
+{
+	SDL_TimerID id;
+
+	init();
+	start_screen();
+	id = start_timer();
+
+	/* Main loop: */
+	event_loop();
+
+	stop_timer(id);
+	quit();
+}
+#endif