Updated mic example. Returning from the example then launching it again via hbmenu is broken.

This commit is contained in:
yellows8 2014-11-24 23:42:47 -05:00
parent 300a0ed125
commit 6adaa95c18

View File

@ -11,13 +11,14 @@ int main()
u8 *audiobuf; u8 *audiobuf;
u32 audiobuf_size = 0x100000, audiobuf_pos = 0; u32 audiobuf_size = 0x100000, audiobuf_pos = 0;
u8 control=0x40; u8 control=0x40;
u32 audio_initialized = 0;
srvInit(); srvInit();
aptInit(); aptInit();
gfxInit(); gfxInit();
hidInit(NULL); hidInit(NULL);
CSND_initialize(NULL); if(CSND_initialize(NULL)==0)audio_initialized = 1;
sharedmem = (u32*)memalign(0x1000, sharedmem_size); sharedmem = (u32*)memalign(0x1000, sharedmem_size);
audiobuf = linearAlloc(audiobuf_size); audiobuf = linearAlloc(audiobuf_size);
@ -26,10 +27,18 @@ int main()
while(aptMainLoop()) while(aptMainLoop())
{ {
framebuf = gfxGetFramebuffer(GFX_TOP, GFX_LEFT, NULL, NULL);
hidScanInput(); hidScanInput();
gspWaitForVBlank();
if(hidKeysDown() & KEY_A) u32 kDown = hidKeysDown();
if (kDown & KEY_START)
break; // break in order to return to hbmenu
if(audio_initialized)
{
framebuf = gfxGetFramebuffer(GFX_TOP, GFX_LEFT, NULL, NULL);
if(kDown & KEY_A)
{ {
audiobuf_pos = 0; audiobuf_pos = 0;
@ -63,15 +72,18 @@ int main()
framebuf = gfxGetFramebuffer(GFX_TOP, GFX_LEFT, NULL, NULL); framebuf = gfxGetFramebuffer(GFX_TOP, GFX_LEFT, NULL, NULL);
memset(framebuf, 0xe0, 0x46500); memset(framebuf, 0xe0, 0x46500);
} }
}
gfxFlushBuffers(); gfxFlushBuffers();
gfxSwapBuffers(); gfxSwapBuffers();
gspWaitForVBlank();
} }
MIC_Shutdown(); MIC_Shutdown();
CSND_shutdown(); if(audio_initialized)CSND_shutdown();
free(sharedmem);
linearFree(audiobuf);
hidExit(); hidExit();
gfxExit(); gfxExit();