기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

먹어야 정상인데요....음...

/* Simple program:  Loop, watching keystrokes
   Note that you need to call SDL_PollEvent() or SDL_WaitEvent() to
   pump the event loop and catch keystrokes.
*/


/*

SDL for arm920t가 /root/g2player/install 디렉토리에 설치되어 잇을 경우

arm_sa_le-gcc -I. -I/root/g2player/install/include/SDL -D_REENTRANT  -c ckkey.c
arm_sa_le-gcc -I/root/g2player/install/include/SDL -D_REENTRANT -o ckkey  ckkey.o  -L/root/g2player/install/lib -Wl,-rpath,/root/g2player/install/lib -lSDL -lpthread
cp -a ckkey /root/mmsp2nfs/root

한꺼번에
arm_sa_le-gcc -I. -I/root/g2player/install/include/SDL -D_REENTRANT  -c ckkey.c;arm_sa_le-gcc -I/root/g2player/install/include/SDL -D_REENTRANT -o ckkey  ckkey.o  -L/root/g2player/install/lib -Wl,-rpath,/root/g2player/install/lib -lSDL -lpthread;cp -a ckkey /root/mmsp2nfs/root
*/

#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;
        
        int flags;

    flags = SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER;
    flags |= SDL_INIT_EVENTTHREAD; /* Not supported on win32 */

        /* Initialize SDL */
        if ( SDL_Init(flags) < 0 ) {
                fprintf(stderr, "Couldn't initialize SDL: %sn",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(480, 272, 0, videoflags) == NULL ) {
                fprintf(stderr, "Couldn't set 640x480 video mode: %sn",
                                                        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);
}



이 소스를 가지고 테스트해보세요. 예전 1차보드때서부터 테스트 sw로 사용했던겁니다.

오용석

2006.05.30 07:21:38
*.82.97.213

고도리님~ 감사합니다.

테스트해 보려믄 부대 들어가야해서 아직 못해봤습니다.
지금 휴가중이거든요~

바로바로 답변 주셔서 너무 감사드립니다~ ^^
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
6288 usb무선랜 관련 질문입니다<--완료 [2] 이상화 2006-05-27 1081
6287 sdl key 버튼 안 먹네요...[완료] [3] 오용석 2006-05-27 1066
6286 openssl 크로스 컴파일중에 대해 질문드립니다. <-- 완료 [4] 서연석 2006-05-28 1247
» [re] sdl key 버튼 안 먹네요... [1] 고현철 2006-05-28 1153
6284 무선랜 관련 에러 질문드립니다 <-[완료] [6] 이용휴 2006-05-30 1332
6283 질문입니다.<--완료 [5] 신재곤 2006-05-30 904
6282 [질문] jffs2 mount 에러 [2] 민세홍 2006-05-30 1490
6281 커널 2.6.13 컴파일 할때요<--완료 [7] 이상화 2006-05-31 1265
6280 2G SD카드 인식 [6] 김대영 2006-06-01 1743
6279 LCD인터페이스 질문입니다. <- 완료. [5] 한지훈 2006-06-02 1237
6278 [질문] jffs2 mount 에러 2 [1] 민세홍 2006-06-02 1555
6277 고현철님 또 질문있습니다 ㅜㅜ [2] 이상화 2006-06-02 1044
6276 현철님 그문서 어디에있나여??ㅋ portmap설치하는거욤..^^;<--[완료] [3] 이용휴 2006-06-21 1307
6275 s3c2440a칩 문의 [1] 김창식 2006-06-22 1322
6274 timer에 대한 질문입니다. - 완료 서연석 2006-06-23 1101
6273 [re] timer에 대한 질문입니다. [2] 고현철 2006-06-23 1320
6272 [질문] 양산시의 Nand 퓨징에 관해서... [6] 이재훈 2006-06-24 3024
6271 사용한 lcd 사양좀 부탁드립니다. [3] 김창식 2006-06-24 949
6270 madplay SDL_Thread 사용하기 질문요...[완료] [2] 오용석 2006-06-25 1299
6269 컴파일러 옵션....? [2] 윤현승 2006-06-26 1048

사용자 로그인