aboutsummaryrefslogtreecommitdiffstats
path: root/demos/modules/gaudio/play-wave/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'demos/modules/gaudio/play-wave/main.c')
-rw-r--r--demos/modules/gaudio/play-wave/main.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/demos/modules/gaudio/play-wave/main.c b/demos/modules/gaudio/play-wave/main.c
index f15ec7a1..888e4c8e 100644
--- a/demos/modules/gaudio/play-wave/main.c
+++ b/demos/modules/gaudio/play-wave/main.c
@@ -52,7 +52,7 @@ int main(void) {
uint32_t frequency;
ArrayDataFormat datafmt;
uint32_t len;
- GAudioData *paud;
+ GDataBuffer *pd;
// Initialise everything
gfxInit();
@@ -64,11 +64,12 @@ int main(void) {
// Allocate audio buffers - 4 x 512 byte buffers.
// You may need to increase this for slower cpu's.
// You may be able to decrease this for low latency operating systems.
- if (!gaudioAllocBuffers(4, 512)) {
+ if (!gfxBufferAlloc(4, 512)) {
errmsg = "Err: No Memory";
goto theend;
}
+repeatplay:
// Open the wave file
if (!(f = gfileOpen("allwrong.wav", "r"))) {
errmsg = "Err: Open WAV";
@@ -164,20 +165,20 @@ int main(void) {
gdispDrawString(0, gdispGetHeight()/2, "Playing...", font, Yellow);
while(toplay) {
// Get a buffer to put the data into
- paud = gaudioGetBuffer(TIME_INFINITE); // This should never fail as we are waiting forever
+ pd = gfxBufferGet(TIME_INFINITE); // This should never fail as we are waiting forever
// How much data can we put in
- len = toplay > paud->size ? paud->size : toplay;
- paud->len = len;
+ len = toplay > pd->size ? pd->size : toplay;
+ pd->len = len;
toplay -= len;
// Read the data
- if (gfileRead(f, paud+1, len) != len) {
+ if (gfileRead(f, pd+1, len) != len) {
errmsg = "Err: Read fail";
goto theend;
}
- gaudioPlay(paud);
+ gaudioPlay(pd);
}
gfileClose(f);
@@ -185,6 +186,11 @@ int main(void) {
gaudioPlayWait(TIME_INFINITE);
gdispDrawString(0, gdispGetHeight()/2+10, "Done", font, Green);
+ // Repeat the whole thing
+ gfxSleepMilliseconds(1500);
+ gdispClear(Black);
+ goto repeatplay;
+
// The end
theend:
if (errmsg)