]> Chaos Git - corbenik/ctrulib.git/commitdiff
Fix MIC cutting off a second of audio.
authorSteven Smith <Steveice10@gmail.com>
Sun, 8 Nov 2015 19:24:04 +0000 (11:24 -0800)
committerSteven Smith <Steveice10@gmail.com>
Sun, 8 Nov 2015 19:24:04 +0000 (11:24 -0800)
examples/audio/mic/source/main.c
libctru/source/services/mic.c

index 95cb1afc038824eafd324cc6653fddd92b269697..32e64c1a6d67fc6d6a4aa2a26b4c4fe7f2ef6cba 100644 (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");
index 9458a6ba6bc5165648940c3714e8d893a4211116..71fdcc545f721da27b8652abc6c2b36aa3780606 100644 (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;
@@ -46,8 +49,9 @@ void micExit(void)
                micSharedMemHandle = 0;
        }
 
-       if(micHandle)
+       if (micHandle)
        {
+               MICU_SetPower(false);
                svcCloseHandle(micHandle);
                micHandle = 0;
        }