- [FIX] JAudio no usava JFile
- Comence a afegir música i só
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
#include <SDL2/SDL.h>
|
||||
#include <SDL2/SDL_mixer.h>
|
||||
#include <stdio.h>
|
||||
#include "jfile.h"
|
||||
|
||||
namespace audio
|
||||
{
|
||||
@@ -15,11 +16,14 @@ namespace audio
|
||||
{
|
||||
};
|
||||
|
||||
char *music_buffer = nullptr;
|
||||
|
||||
// Inicialitza el sistema de só
|
||||
void init()
|
||||
{
|
||||
int result = Mix_Init(MIX_INIT_OGG | MIX_INIT_WAVPACK);
|
||||
// Al final he ficat la configuració automàtica i au. Si en el futur necesitem canviar-ho pos se canvia
|
||||
Mix_OpenAudio(48000, AUDIO_S16, 2, 1024);
|
||||
result = Mix_OpenAudio(48000, AUDIO_S16, 2, 1024);
|
||||
}
|
||||
|
||||
// Tanca el sistema de só (no shit, sherlock)
|
||||
@@ -31,11 +35,17 @@ namespace audio
|
||||
// Carrega un arxiu de música en format OGG
|
||||
const music *loadMusic(const std::string filename)
|
||||
{
|
||||
return (music *)Mix_LoadMUS(filename.c_str());
|
||||
int size;
|
||||
if (music_buffer) free(music_buffer);
|
||||
music_buffer = file::getFileBuffer(filename, size);
|
||||
auto rwops = SDL_RWFromMem(music_buffer, size);
|
||||
auto mus = Mix_LoadMUS_RW(rwops, 1);
|
||||
//free(buffer);
|
||||
return (music *)mus;
|
||||
}
|
||||
|
||||
// Comença a reproduïr la música en questió
|
||||
void playMusic(music *mus, const int loop)
|
||||
void playMusic(const music *mus, const int loop)
|
||||
{
|
||||
Mix_PlayMusic((Mix_Music *)mus, loop);
|
||||
}
|
||||
@@ -82,9 +92,11 @@ namespace audio
|
||||
}
|
||||
|
||||
// Carrega un só des d'un arxiu WAV
|
||||
const sound *loadSound(const std::string filename)
|
||||
sound *loadSound(const std::string filename)
|
||||
{
|
||||
return (sound *)Mix_LoadWAV(filename.c_str());
|
||||
int size;
|
||||
char *buffer = file::getFileBuffer(filename, size);
|
||||
return (sound *)Mix_LoadWAV_RW(SDL_RWFromMem(buffer, size), 1);
|
||||
}
|
||||
|
||||
// Comença a reproduïr el só especificat
|
||||
|
||||
Reference in New Issue
Block a user