Mercurial > sdl-ios-xcode
view test/checkkeys.c @ 1031:3cf036d8861f
Date: Sun, 16 Jan 2005 19:20:15 +0100
From: Stephane Marchesin
To: Kirill Ponomarew
Subject: [SDL] Problem on x86_64 with latest CVS (Re: sdl12 with gcc-2.95)
>-I../../src -I../../src/main/freebsd -I../../src/audio
>-I../../src/video -I../../src/video/XFree86/extensions
>-I../../src/events -I../../src/joystick -I../../src/cdrom
>-I../../src/thread -I../../src/timer -I../../src/endian
>-I../../src/file -I../../src/thread -MT SDL_endian.lo -MD -MP -MF
>.deps/SDL_endian.Tpo -c SDL_endian.c -fPIC -DPIC -o
>.libs/SDL_endian.o
>{standard input}: Assembler messages:
>{standard input}:144: Error: suffix or operands invalid for `xchg'
>*** Error code 1
>
That's a totally different problem. This was introduced in CVS 4 days ago :
http://www.libsdl.org/cgi/cvsweb.cgi/SDL12/include/SDL_endian.h.diff?r1=1.11\
&r2=1.12
Just revert this patch.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 18 Jan 2005 18:40:48 +0000 |
parents | 806fcbde0af3 |
children | be9c9c8f6d53 |
line wrap: on
line source
/* Simple program: Loop, watching keystrokes Note that you need to call SDL_PollEvent() or SDL_WaitEvent() to pump the event loop and catch keystrokes. */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include "SDL.h" static void print_modifiers(void) { int mod; printf(" modifiers:"); mod = SDL_GetModState(); if(!mod) { printf(" (none)"); return; } if(mod & KMOD_LSHIFT) printf(" LSHIFT"); if(mod & KMOD_RSHIFT) printf(" RSHIFT"); if(mod & KMOD_LCTRL) printf(" LCTRL"); if(mod & KMOD_RCTRL) printf(" RCTRL"); if(mod & KMOD_LALT) printf(" LALT"); if(mod & KMOD_RALT) printf(" RALT"); if(mod & KMOD_LMETA) printf(" LMETA"); if(mod & KMOD_RMETA) printf(" RMETA"); if(mod & KMOD_NUM) printf(" NUM"); if(mod & KMOD_CAPS) printf(" CAPS"); if(mod & KMOD_MODE) printf(" MODE"); } static void PrintKey(SDL_keysym *sym, int pressed) { /* Print the keycode, name and state */ if ( sym->sym ) { printf("Key %s: %d-%s ", pressed ? "pressed" : "released", sym->sym, SDL_GetKeyName(sym->sym)); } else { printf("Unknown Key (scancode = %d) %s ", sym->scancode, pressed ? "pressed" : "released"); } /* Print the translated character, if one exists */ if ( sym->unicode ) { /* Is it a control-character? */ if ( sym->unicode < ' ' ) { printf(" (^%c)", sym->unicode+'@'); } else { #ifdef UNICODE printf(" (%c)", sym->unicode); #else /* This is a Latin-1 program, so only show 8-bits */ if ( !(sym->unicode & 0xFF00) ) printf(" (%c)", sym->unicode); #endif } } print_modifiers(); printf("\n"); } int main(int argc, char *argv[]) { SDL_Event event; int done; Uint32 videoflags; /* Initialize SDL */ if ( SDL_Init(SDL_INIT_VIDEO) < 0 ) { fprintf(stderr, "Couldn't initialize SDL: %s\n",SDL_GetError()); exit(1); } atexit(SDL_Quit); videoflags = SDL_SWSURFACE; while( argc > 1 ) { --argc; if ( argv[argc] && !strcmp(argv[argc], "-fullscreen") ) { videoflags |= SDL_FULLSCREEN; } else { fprintf(stderr, "Usage: %s [-fullscreen]\n", argv[0]); exit(1); } } /* Set 640x480 video mode */ if ( SDL_SetVideoMode(640, 480, 0, videoflags) == NULL ) { fprintf(stderr, "Couldn't set 640x480 video mode: %s\n", SDL_GetError()); exit(2); } /* Enable UNICODE translation for keyboard input */ SDL_EnableUNICODE(1); /* Enable auto repeat for keyboard input */ SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY, SDL_DEFAULT_REPEAT_INTERVAL); /* Watch keystrokes */ done = 0; while ( !done ) { /* Check for events */ SDL_WaitEvent(&event); switch (event.type) { case SDL_KEYDOWN: PrintKey(&event.key.keysym, 1); break; case SDL_KEYUP: PrintKey(&event.key.keysym, 0); break; case SDL_MOUSEBUTTONDOWN: /* Any button press quits the app... */ case SDL_QUIT: done = 1; break; default: break; } } return(0); }