aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2013-04-15 00:07:16 +0000
committerDimitri Sokolyuk <demon@dim13.org>2013-04-15 00:07:16 +0000
commit4701c2c4df86e966fb41b643b4b69f377340948d (patch)
tree22eede4a28f4944c249c04e25b95662017ffb0c3
parent14245629d30645999a0e37ede4065840c74f37c3 (diff)
add framerate manager
-rw-r--r--Makefile2
-rw-r--r--spectrogram.c10
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 <signal.h>
#include <SDL.h>
-#include <SDL_thread.h>
+#include <SDL_framerate.h>
#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: