mirror of
https://github.com/aerglass/libemsr.git
synced 2025-06-18 17:05:36 -04:00
update
This commit is contained in:
parent
497a89b2bc
commit
1f7783fe75
@ -1,47 +1,58 @@
|
||||
//PA_EMSL.C : Programmer's Arsenal Easy Maxmod Sound Library.
|
||||
//Code fully written by AerGlass, with reference of
|
||||
//https://github.com/qgerman2/streaming_example
|
||||
/*
|
||||
PA_EMSL.cpp : Programmer's Arsenal Easy Maxmod Sound Library.
|
||||
Code fully written by AerGlass, with reference of
|
||||
https://github.com/qgerman2/streaming_example
|
||||
|
||||
Thanks to:
|
||||
|
||||
DesCube
|
||||
devkitPro
|
||||
PAlib developers.
|
||||
|
||||
*/
|
||||
#include <PA9.h>
|
||||
#include <fat.h>
|
||||
#include <maxmod9.h>
|
||||
#include <filesystem.h>
|
||||
#include <stdio.h>
|
||||
#include "PA_emsl.h"
|
||||
mm_stream ESML_StreamSys;
|
||||
|
||||
mm_stream EMSL_StreamSys;
|
||||
mm_word EMSL_Stream(mm_word length, mm_addr dest, mm_stream_formats format);
|
||||
FILE* file;
|
||||
ESML_TStreamInfo ESML_StreamInfo;
|
||||
ESML_TStreamInfo EMSL_StreamInfo;
|
||||
|
||||
void ESML_InitDefault(){
|
||||
ESML_StreamInfo.buffer_length = 16000;
|
||||
ESML_StreamInfo.format = MM_STREAM_16BIT_MONO;
|
||||
ESML_StreamInfo.sampling_rate = 22050;
|
||||
void EMSL_InitDefault(){
|
||||
EMSL_StreamInfo.buffer_length = 16000;
|
||||
EMSL_StreamInfo.format = MM_STREAM_16BIT_MONO;
|
||||
EMSL_StreamInfo.sampling_rate = 22050;
|
||||
mm_ds_system sys;
|
||||
sys.mod_count = 0;
|
||||
sys.samp_count = 0;
|
||||
sys.fifo_channel = FIFO_MAXMOD;
|
||||
mmInit( &sys );
|
||||
}
|
||||
void ESML_PlayWav(const char* filename) {
|
||||
void EMSL_PlayWav(const char* filename) {
|
||||
//load audio file
|
||||
file = fopen(filename, "rb");
|
||||
|
||||
if(!file) return;
|
||||
//initialize maxmod system
|
||||
//https://maxmod.devkitpro.org/ref/functions/mmInit.html
|
||||
mm_ds_system sys;
|
||||
sys.mod_count = 0;
|
||||
sys.samp_count = 0;
|
||||
sys.fifo_channel = FIFO_MAXMOD;
|
||||
mmInit( &sys );
|
||||
//create a stream
|
||||
//https://maxmod.devkitpro.org/ref/functions/mm_stream.html
|
||||
ESML_StreamSys.sampling_rate = ESML_StreamInfo.sampling_rate;
|
||||
ESML_StreamSys.buffer_length = ESML_StreamInfo.buffer_length;
|
||||
ESML_StreamSys.callback = EMSL_Stream;
|
||||
ESML_StreamSys.format = ESML_StreamInfo.format;
|
||||
ESML_StreamSys.timer = MM_TIMER2;
|
||||
ESML_StreamSys.manual = 1;
|
||||
mmStreamOpen(&ESML_StreamSys);
|
||||
EMSL_StreamSys.sampling_rate = EMSL_StreamInfo.sampling_rate;
|
||||
EMSL_StreamSys.buffer_length = EMSL_StreamInfo.buffer_length;
|
||||
EMSL_StreamSys.callback = EMSL_Stream;
|
||||
EMSL_StreamSys.format = EMSL_StreamInfo.format;
|
||||
EMSL_StreamSys.timer = MM_TIMER2;
|
||||
EMSL_StreamSys.manual = 1;
|
||||
mmStreamOpen(&EMSL_StreamSys);
|
||||
}
|
||||
mm_word EMSL_Stream(mm_word length, mm_addr dest, mm_stream_formats format) {
|
||||
if (file) {
|
||||
int res = fread(dest, sizeof(s16), length, file);
|
||||
u32 res = fread(dest, sizeof(s16), length, file);
|
||||
|
||||
if (res != length) {
|
||||
fseek(file,0,SEEK_SET);
|
||||
} else {
|
22
PA_emsl.h
22
PA_emsl.h
@ -1,6 +1,16 @@
|
||||
//PA_EMSL.C : Programmer's Arsenal Easy Maxmod Sound Library.
|
||||
//Code fully written by AerGlass, with reference of
|
||||
//https://github.com/qgerman2/streaming_example
|
||||
/*
|
||||
PA_EMSL.cpp : Programmer's Arsenal Easy Maxmod Sound Library.
|
||||
Code fully written by AerGlass, with reference of
|
||||
https://github.com/qgerman2/streaming_example
|
||||
|
||||
Thanks to:
|
||||
|
||||
DesCube
|
||||
devkitPro
|
||||
PAlib developers.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef PA_EMSL_INCLUDED
|
||||
#define PA_EMSL_INCLUDED
|
||||
|
||||
@ -17,8 +27,8 @@ typedef struct{
|
||||
}ESML_TStreamInfo;
|
||||
void EMSL_UpdateStream();
|
||||
void EMSL_CloseStream();
|
||||
void ESML_PlayWav(const char* filename);
|
||||
void ESML_InitDefault();
|
||||
void EMSL_PlayWav(const char* filename);
|
||||
void EMSL_InitDefault();
|
||||
|
||||
extern ESML_TStreamInfo ESML_StreamInfo;
|
||||
extern ESML_TStreamInfo EMSL_StreamInfo;
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user