aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2013-03-30 15:56:16 +0000
committerDimitri Sokolyuk <demon@dim13.org>2013-03-30 15:56:16 +0000
commitdf404c758c60445f4969e2b06f298ea103f0cfa5 (patch)
tree426b073e88596f5aa6a94114391fbed164442acf
parentfc662f10605584262446f5019273464ed92973c1 (diff)
fix event handing
-rw-r--r--spectrogram.c64
1 files changed, 28 insertions, 36 deletions
diff --git a/spectrogram.c b/spectrogram.c
index ec2e9ce..7e645e2 100644
--- a/spectrogram.c
+++ b/spectrogram.c
@@ -267,7 +267,6 @@ main(int argc, char **argv)
double *hamming;
int psize, ssize;
int width, height;
- int pressed = 0;
setenv("SDL_VIDEO_ALLOW_SCREENSAVER", "1", 0);
@@ -313,6 +312,8 @@ main(int argc, char **argv)
fft = init_fft(delta);
hamming = init_hamming(delta);
+ SDL_EventState(SDL_MOUSEMOTION, SDL_IGNORE);
+
sio_start(sio);
while (!die) {
@@ -326,53 +327,44 @@ main(int argc, char **argv)
dofft(fft, buffer, left, right, delta, hamming);
draw(left, right, ssize, resolution);
- SDL_PollEvent(&event);
- switch (event.type) {
- case SDL_QUIT:
- die = 1;
- break;
- case SDL_KEYDOWN:
- switch (event.key.keysym.sym) {
- case SDLK_q:
- die = 1;
- break;
- case SDLK_l:
- case SDLK_1:
- if (!pressed)
+ while (SDL_PollEvent(&event)) {
+ switch (event.type) {
+ case SDL_KEYDOWN:
+ switch (event.key.keysym.sym) {
+ case SDLK_q:
+ die = 1;
+ break;
+ case SDLK_l:
+ case SDLK_1:
flip_left ^= 1;
- break;
- case SDLK_r:
- case SDLK_2:
- if (!pressed)
+ break;
+ case SDLK_r:
+ case SDLK_2:
flip_right ^= 1;
- break;
- case SDLK_0:
- if (!pressed) {
+ break;
+ case SDLK_0:
flip_left ^= 1;
flip_right ^= 1;
- }
- break;
- case SDLK_f:
- if (!pressed)
+ break;
+ case SDLK_f:
screen = SDL_SetVideoMode(0, 0, 0,
screen->flags ^ SDL_FULLSCREEN);
if (!screen)
errx(1, "switch to full screen failed");
- break;
- case SDLK_d:
- if (!pressed)
+ break;
+ case SDLK_d:
discolight ^= 1;
- init_rect(width, height, ssize,
- !!discolight * ssize);
+ init_rect(width, height, ssize,
+ !!discolight * ssize);
+ break;
+ default:
+ break;
+ }
break;
- default:
+ case SDL_QUIT:
+ die = 1;
break;
}
- pressed = 1;
- break;
- case SDL_KEYUP:
- pressed = 0;
- break;
}
}