X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=src%2Fevents.scm;h=716425b5de8b805e3d56f64a3234d6d0153ae9b7;hb=525f2b2cd2b56afe6eca25a67ebb93eed3f69403;hp=dfe9e60c8afde01c0d91b272b6b4632b9ef109d4;hpb=9d5134f4fb73e3d534b5c3daed943c26b15c2e3f;p=gacela.git diff --git a/src/events.scm b/src/events.scm index dfe9e60..716425b 100644 --- a/src/events.scm +++ b/src/events.scm @@ -18,7 +18,7 @@ (define-module (gacela events) #:use-module (gacela sdl) #:export (process-events - quit? + quit-signal? key? key-pressed? key-released?)) @@ -49,12 +49,15 @@ (define (process-screen-events events) (set! quit-signal #f) + (process-screen-events-recursive events)) + +(define (process-screen-events-recursive events) (cond ((not (null? events)) (let ((event (car events))) (cond ((= (assoc-ref event 'type) SDL_QUIT) (set! quit-signal #t)))) - (process-screen-events (cdr events))))) + (process-screen-events-recursive (cdr events))))) -(define (quit?) +(define (quit-signal?) quit-signal) @@ -66,11 +69,14 @@ (define (process-keyboard-events events) (clear-key-state) + (process-keyboard-events-recursive events)) + +(define (process-keyboard-events-recursive events) (cond ((not (null? events)) (let ((event (car events))) (cond ((= (assoc-ref event 'type) SDL_KEYDOWN) (key-press (assoc-ref event 'key.keysym.sym))) ((= (assoc-ref event 'type) SDL_KEYUP) (key-release (assoc-ref event 'key.keysym.sym))))) - (process-keyboard-events (cdr events))))) + (process-keyboard-events-recursive (cdr events))))) (define (key? key) (hash-ref keymap (get-keycode key)))