From 43cd2e73225cd66e61d1e9754afcaa7eca02fcb7 Mon Sep 17 00:00:00 2001 From: John Tsiombikas Date: Fri, 1 Feb 2019 15:58:24 +0200 Subject: [PATCH] controls --- src/audio.h | 1 + src/main.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/src/audio.h b/src/audio.h index 9268627..961cb9e 100644 --- a/src/audio.h +++ b/src/audio.h @@ -14,6 +14,7 @@ void audio_resume(void); void audio_stop(void); int audio_isplaying(void); +/* audio volume: 0-255 */ void audio_volume(int vol); #endif /* AUDIO_H_ */ diff --git a/src/main.c b/src/main.c index 4395af6..f62fdac 100644 --- a/src/main.c +++ b/src/main.c @@ -1,6 +1,8 @@ #include #include #include +#include +#include #include "aufile.h" #include "audio.h" @@ -10,6 +12,9 @@ static int play_file(const char *fname); static int cbfunc(void *buf, int size, void *cls); static void print_usage(const char *argv0); +static int vol = 220; +static int quit; + int main(int argc, char **argv) { int i; @@ -17,6 +22,7 @@ int main(int argc, char **argv) if(audio_init() == -1) { return 1; } + audio_volume(vol); for(i=1; irate, au->bits, au->chan); - while(audio_isplaying()); + while(audio_isplaying()) { + if(kbhit()) { + int c = getch(); + switch(c) { + case 27: + audio_stop(); + quit = 1; + goto end; + + case ' ': + paused = !paused; + if(paused) { + audio_pause(); + printf("pause\n"); + } else { + audio_resume(); + printf("resume\n"); + } + break; + + case '=': + vol += 32; + if(vol > 255) vol = 255; + audio_volume(vol); + printf("volume: %d%%\n", 101 * vol / 256); + break; + + case '-': + vol -= 32; + if(vol < 0) vol = 0; + audio_volume(vol); + printf("volume: %d%%\n", 101 * vol / 256); + break; + + default: + break; + } + } + + _disable(); + if(dbg_cur_offs != prev) { + prev = dbg_cur_offs; + _enable(); + + printf("%3d%% - offs: %lu/%lu\n", 100 * prev / au->size, prev, au->size); + } else { + _enable(); + } + + } +end: au_close(au); #ifdef DBG_PRELOAD free(dbg_samples); -- 1.7.10.4