Fix MIC cutting off a second of audio.

This commit is contained in:
Steven Smith 2015-11-08 11:24:04 -08:00
parent 7440ca7901
commit abdfec701f
2 changed files with 7 additions and 3 deletions

View File

@ -59,7 +59,7 @@ int main()
if(R_FAILED(CSND_UpdateInfo(0))) printf("Failed to stop audio playback.\n");
printf("Starting sampling...\n");
if(R_SUCCEEDED(MICU_SetPower(true)) && R_SUCCEEDED(MICU_StartSampling(MICU_ENCODING_PCM16_SIGNED, MICU_SAMPLE_RATE_16360, 0, micbuf_datasize, true))) printf("Now recording.\n");
if(R_SUCCEEDED(MICU_StartSampling(MICU_ENCODING_PCM16_SIGNED, MICU_SAMPLE_RATE_16360, 0, micbuf_datasize, true))) printf("Now recording.\n");
else printf("Failed to start sampling.\n");
}
@ -78,7 +78,7 @@ int main()
if(hidKeysUp() & KEY_A)
{
printf("Stoping sampling...\n");
if(R_FAILED(MICU_StopSampling()) || R_FAILED(MICU_SetPower(false))) printf("Failed to stop sampling.\n");
if(R_FAILED(MICU_StopSampling())) printf("Failed to stop sampling.\n");
printf("Starting audio playback...\n");
if(R_SUCCEEDED(GSPGPU_FlushDataCache(audiobuf, audiobuf_pos)) && R_SUCCEEDED(csndPlaySound(0x8, SOUND_ONE_SHOT | SOUND_FORMAT_16BIT, 16360, 1.0, 0.0, (u32*)audiobuf, NULL, audiobuf_pos))) printf("Now playing.\n");

View File

@ -30,6 +30,9 @@ Result micInit(u8* buffer, u32 bufferSize)
if (R_FAILED(ret)) goto end;
ret = MICU_MapSharedMem(micSharedMemSize, micSharedMemHandle);
if (R_FAILED(ret)) goto end;
ret = MICU_SetPower(true);
end:
if (R_FAILED(ret)) micExit();
return ret;
@ -48,6 +51,7 @@ void micExit(void)
if (micHandle)
{
MICU_SetPower(false);
svcCloseHandle(micHandle);
micHandle = 0;
}