Rename API to LoadMusicStreamFromMemory & default unload.

This commit is contained in:
nezvers 2021-02-22 19:34:06 +02:00
parent 14e8c19873
commit 1afee2f4d1
3 changed files with 18 additions and 8 deletions

View File

@ -1298,7 +1298,7 @@ Music LoadMusicStream(const char *fileName)
} }
// extension including period ".mod" // extension including period ".mod"
Music LoadModuleFromData(const char *fileType, const char* data, int dataSize){ Music LoadMusicStreamFromMemory(const char *fileType, unsigned char* data, int dataSize){
Music music = { 0 }; Music music = { 0 };
bool musicLoaded = false; bool musicLoaded = false;
@ -1334,10 +1334,19 @@ Music LoadModuleFromData(const char *fileType, const char* data, int dataSize){
int result = 0; int result = 0;
jar_mod_init(ctxMod); jar_mod_init(ctxMod);
// copy data to allocated memory for default UnloadMusicStream
unsigned char *newData = RL_MALLOC(dataSize);
int it = dataSize / sizeof(unsigned char);
for (int i = 0; i < it; i++){
newData[i] = data[i];
}
TRACELOG(LOG_WARNING, "-------: %d / %d = %d", dataSize, sizeof(unsigned char), it);
// Memory loaded version for jar_mod_load_file()
if (dataSize && dataSize < 32*1024*1024) if (dataSize && dataSize < 32*1024*1024)
{ {
ctxMod->modfilesize = dataSize; ctxMod->modfilesize = dataSize;
ctxMod->modfile = data; ctxMod->modfile = newData;
if(jar_mod_load(ctxMod, (void*)ctxMod->modfile, dataSize)) result = dataSize; if(jar_mod_load(ctxMod, (void*)ctxMod->modfile, dataSize)) result = dataSize;
} }
@ -1368,12 +1377,13 @@ Music LoadModuleFromData(const char *fileType, const char* data, int dataSize){
else if (music.ctxType == MUSIC_MODULE_MOD) { jar_mod_unload((jar_mod_context_t *)music.ctxData); RL_FREE(music.ctxData); } else if (music.ctxType == MUSIC_MODULE_MOD) { jar_mod_unload((jar_mod_context_t *)music.ctxData); RL_FREE(music.ctxData); }
#endif #endif
TRACELOG(LOG_WARNING, "FILEIO: [%s] Music data could not be loaded", fileType); music.ctxData = NULL;
TRACELOG(LOG_WARNING, "FILEIO: [%s] Music memory could not be opened", fileType);
} }
else else
{ {
// Show some music stream info // Show some music stream info
TRACELOG(LOG_INFO, "FILEIO: [%s] Music data successfully loaded:", fileType); TRACELOG(LOG_INFO, "FILEIO: [%s] Music memory successfully loaded:", fileType);
TRACELOG(LOG_INFO, " > Total samples: %i", music.sampleCount); TRACELOG(LOG_INFO, " > Total samples: %i", music.sampleCount);
TRACELOG(LOG_INFO, " > Sample rate: %i Hz", music.stream.sampleRate); TRACELOG(LOG_INFO, " > Sample rate: %i Hz", music.stream.sampleRate);
TRACELOG(LOG_INFO, " > Sample size: %i bits", music.stream.sampleSize); TRACELOG(LOG_INFO, " > Sample size: %i bits", music.stream.sampleSize);

View File

@ -164,7 +164,7 @@ float *GetWaveData(Wave wave); // Get samples d
// Music management functions // Music management functions
Music LoadMusicStream(const char *fileName); // Load music stream from file Music LoadMusicStream(const char *fileName); // Load music stream from file
Music LoadModuleFromData(const char *fileType, const char* data, int dataSize); // Load module music from data Music LoadMusicStreamFromMemory(const char *fileType, unsigned char* data, int dataSize); // Load module music from data
void UnloadMusicStream(Music music); // Unload music stream void UnloadMusicStream(Music music); // Unload music stream
void PlayMusicStream(Music music); // Start music playing void PlayMusicStream(Music music); // Start music playing
void UpdateMusicStream(Music music); // Updates buffers for music streaming void UpdateMusicStream(Music music); // Updates buffers for music streaming

View File

@ -1495,7 +1495,7 @@ RLAPI void UnloadWaveSamples(float *samples); // Unload
// Music management functions // Music management functions
RLAPI Music LoadMusicStream(const char *fileName); // Load music stream from file RLAPI Music LoadMusicStream(const char *fileName); // Load music stream from file
RLAPI Music LoadModuleFromData(const char *fileType, const char* data, int dataSize); // Load module music from data RLAPI Music LoadMusicStreamFromMemory(const char *fileType, unsigned char* data, int dataSize); // Load module music from data
RLAPI void UnloadMusicStream(Music music); // Unload music stream RLAPI void UnloadMusicStream(Music music); // Unload music stream
RLAPI void PlayMusicStream(Music music); // Start music playing RLAPI void PlayMusicStream(Music music); // Start music playing
RLAPI void UpdateMusicStream(Music music); // Updates buffers for music streaming RLAPI void UpdateMusicStream(Music music); // Updates buffers for music streaming