From 4701c2c4df86e966fb41b643b4b69f377340948d Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Mon, 15 Apr 2013 00:07:16 +0000 Subject: add framerate manager --- Makefile | 2 +- spectrogram.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 296f6e3..65182bb 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ PROG= spectrogram SRCS= spectrogram.c fft.c hsv2rgb.c HEADERS=fifo.h fft.h hsv2rgb.h -LIBS= sdl fftw3 +LIBS= sdl SDL_gfx fftw3 PCCF!= pkg-config --cflags ${LIBS} PCLA!= pkg-config --libs ${LIBS} CFLAGS+=${PCCF} diff --git a/spectrogram.c b/spectrogram.c index fa09f53..8f6a09a 100644 --- a/spectrogram.c +++ b/spectrogram.c @@ -29,7 +29,7 @@ #include #include -#include +#include #include "fft.h" #include "hsv2rgb.h" @@ -257,6 +257,7 @@ int main(int argc, char **argv) { SDL_Event event; + FPSmanager man; struct sio_hdl *sio; struct sio_par par; @@ -280,7 +281,7 @@ main(int argc, char **argv) signal(SIGINT, catch); atexit(SDL_Quit); - + sio = sio_open(NULL, SIO_REC, 0); if (!sio) errx(1, "cannot connect to sound server, is it running?"); @@ -290,6 +291,9 @@ main(int argc, char **argv) delta = par.round; resolution = par.rate / par.round / par.rchan; + SDL_initFramerate(&man); + SDL_setFramerate(&man, par.rate /par.round); + width = delta + 10; /* XXX */ height = 3 * width / 4; @@ -333,6 +337,8 @@ main(int argc, char **argv) dofft(fft, buffer, left, right, delta, hamming); draw(left, right, ssize, resolution); + SDL_framerateDelay(&man); + while (SDL_PollEvent(&event)) { switch (event.type) { case SDL_KEYDOWN: -- cgit v1.2.3