Add pause/play support
Pressing A now pauses and plays the selected file. Reduced buffer size from 1MiB to 16KiB. Signed-off-by: Mahyar Koshkouei <deltabeard@users.noreply.github.com>
This commit is contained in:
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
#define BUFFER_SIZE 1 * 1024 * 1024
|
#define BUFFER_SIZE 16 * 1024
|
||||||
#define AUDIO_FOLDER "sdmc:/MUSIC/"
|
#define AUDIO_FOLDER "sdmc:/MUSIC/"
|
||||||
#define CHANNEL 0x08
|
#define CHANNEL 0x08
|
||||||
|
|
||||||
@@ -55,7 +55,8 @@ int main(int argc, char **argv)
|
|||||||
while((ep = readdir(dp)) != NULL)
|
while((ep = readdir(dp)) != NULL)
|
||||||
printf("%d: %s\n", ++fileMax, ep->d_name);
|
printf("%d: %s\n", ++fileMax, ep->d_name);
|
||||||
|
|
||||||
(void)closedir(dp);
|
if(closedir(dp) != 0)
|
||||||
|
err_print("Closing directory failed.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -70,6 +71,11 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
consoleSelect(&bottomScreen);
|
consoleSelect(&bottomScreen);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This allows for music to continue playing through the headphones whilst
|
||||||
|
* the 3DS is closed.
|
||||||
|
*/
|
||||||
aptSetSleepAllowed(false);
|
aptSetSleepAllowed(false);
|
||||||
|
|
||||||
while(aptMainLoop())
|
while(aptMainLoop())
|
||||||
@@ -161,6 +167,7 @@ int playWav(const char *wav)
|
|||||||
off_t size;
|
off_t size;
|
||||||
off_t buffer_size;
|
off_t buffer_size;
|
||||||
ndspWaveBuf waveBuf[2];
|
ndspWaveBuf waveBuf[2];
|
||||||
|
bool playing = true;
|
||||||
|
|
||||||
if(R_FAILED(ndspInit()))
|
if(R_FAILED(ndspInit()))
|
||||||
{
|
{
|
||||||
@@ -276,7 +283,7 @@ int playWav(const char *wav)
|
|||||||
while(ndspChnIsPlaying(CHANNEL) == false)
|
while(ndspChnIsPlaying(CHANNEL) == false)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
while(ndspChnIsPlaying(CHANNEL) == true)
|
while(playing == false || ndspChnIsPlaying(CHANNEL) == true)
|
||||||
{
|
{
|
||||||
u32 kDown;
|
u32 kDown;
|
||||||
|
|
||||||
@@ -290,12 +297,18 @@ int playWav(const char *wav)
|
|||||||
if(kDown & KEY_B)
|
if(kDown & KEY_B)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
if(kDown & KEY_A)
|
||||||
|
playing = !playing;
|
||||||
|
|
||||||
if(kDown & KEY_X)
|
if(kDown & KEY_X)
|
||||||
{
|
{
|
||||||
debug_print("Pos: %lx of %lx\n", ndspChnGetSamplePos(CHANNEL),
|
debug_print("Pos: %lx of %lx\n", ndspChnGetSamplePos(CHANNEL),
|
||||||
buffer_size / bitness);
|
buffer_size / bitness);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(playing == false)
|
||||||
|
continue;
|
||||||
|
|
||||||
if(waveBuf[0].status == NDSP_WBUF_DONE)
|
if(waveBuf[0].status == NDSP_WBUF_DONE)
|
||||||
{
|
{
|
||||||
fread(buffer1, 1, buffer_size, file);
|
fread(buffer1, 1, buffer_size, file);
|
||||||
|
|||||||
Reference in New Issue
Block a user