From b045f00d217c11c1ecf6635fdbf18d5f20a109f4 Mon Sep 17 00:00:00 2001 From: Michiel Van Der Kolk Date: Sun, 20 Mar 2005 23:06:47 +0000 Subject: [PATCH] Alpha sound driver for rockboy, should work in theory, but in practice, it doesn't. disabled by default with a define. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6218 a1c6a512-1295-4272-9138-f99709370657 --- apps/plugins/rockboy/Makefile | 2 +- apps/plugins/rockboy/main.c | 2 +- apps/plugins/rockboy/{nosound.c => rbsound.c} | 10 +++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) rename apps/plugins/rockboy/{nosound.c => rbsound.c} (66%) diff --git a/apps/plugins/rockboy/Makefile b/apps/plugins/rockboy/Makefile index c24a325820..020d67bec8 100644 --- a/apps/plugins/rockboy/Makefile +++ b/apps/plugins/rockboy/Makefile @@ -19,7 +19,7 @@ endif LINKFILE := $(OBJDIR)/link.lds DEPFILE = $(OBJDIR)/dep-rockboy SRC = cpu.c emu.c events.c exports.c fastmem.c hw.c lcd.c lcdc.c loader.c \ - main.c mem.c nosound.c rccmds.c rcvars.c rtc.c save.c sound.c split.c \ + main.c mem.c rbsound.c rccmds.c rcvars.c rtc.c save.c sound.c split.c \ sys_rockbox.c rockboy.c menu.c #CFLAGS += -DGRAYSCALE diff --git a/apps/plugins/rockboy/main.c b/apps/plugins/rockboy/main.c index 77e9bc9ea0..175ae78d86 100644 --- a/apps/plugins/rockboy/main.c +++ b/apps/plugins/rockboy/main.c @@ -75,7 +75,7 @@ int gnuboy_main(char *rom) // FIXME - make interface modules responsible for atexit() PUTS("Init video"); vid_init(); - PUTS("Init sound (nosound)"); + PUTS("Init sound"); pcm_init(); PUTS("Loading rom"); loader_init(rom); diff --git a/apps/plugins/rockboy/nosound.c b/apps/plugins/rockboy/rbsound.c similarity index 66% rename from apps/plugins/rockboy/nosound.c rename to apps/plugins/rockboy/rbsound.c index a0c9b17f15..6d1b24fd9a 100644 --- a/apps/plugins/rockboy/nosound.c +++ b/apps/plugins/rockboy/rbsound.c @@ -20,7 +20,8 @@ rcvar_t pcm_exports[] = void pcm_init(void) { - pcm.hz = 11025; + pcm.hz = 44100; + pcm.stereo = 1; pcm.buf = buf; pcm.len = sizeof buf; pcm.pos = 0; @@ -33,8 +34,15 @@ void pcm_close(void) int pcm_submit(void) { +#ifdef RBSOUND + rb->pcm_play_data(pcm.buf,pcm.pos,NULL); + while(rb->pcm_is_playing()); /* spinlock */ + pcm.pos = 0; + return 1; +#else pcm.pos = 0; return 0; +#endif }