mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-12 12:09:15 +00:00
ANDROID: Maybe working support for EAS DLS soundfonts
This commit is contained in:
parent
6ec9c9f62d
commit
153e67b37c
@ -94,12 +94,20 @@ private:
|
||||
char *GUID;
|
||||
};
|
||||
|
||||
struct EASFile {
|
||||
const char *path;
|
||||
int fd;
|
||||
long long offset;
|
||||
long long length;
|
||||
};
|
||||
|
||||
typedef void * EASDataHandle;
|
||||
typedef void * EASHandle;
|
||||
|
||||
typedef EASLibConfig *(*ConfigFunc)();
|
||||
typedef int32 (*InitFunc)(EASDataHandle *);
|
||||
typedef int32 (*ShutdownFunc)(EASDataHandle);
|
||||
typedef int32 (*LoadDLSFunc)(EASDataHandle, EASHandle, EASFile *);
|
||||
typedef int32 (*SetParameterFunc)(EASDataHandle, int32, int32, int32);
|
||||
typedef int32 (*OpenStreamFunc)(EASDataHandle, EASHandle *, EASHandle);
|
||||
typedef int32 (*WriteStreamFunc)(EASDataHandle, EASHandle, byte *, int32);
|
||||
@ -128,6 +136,7 @@ private:
|
||||
ConfigFunc _configFunc;
|
||||
InitFunc _initFunc;
|
||||
ShutdownFunc _shutdownFunc;
|
||||
LoadDLSFunc _loadDLSFunc;
|
||||
SetParameterFunc _setParameterFunc;
|
||||
OpenStreamFunc _openStreamFunc;
|
||||
WriteStreamFunc _writeStreamFunc;
|
||||
@ -153,6 +162,7 @@ MidiDriver_EAS::MidiDriver_EAS() :
|
||||
_configFunc(0),
|
||||
_initFunc(0),
|
||||
_shutdownFunc(0),
|
||||
_loadDLSFunc(0),
|
||||
_setParameterFunc(0),
|
||||
_openStreamFunc(0),
|
||||
_writeStreamFunc(0),
|
||||
@ -216,13 +226,14 @@ int MidiDriver_EAS::open() {
|
||||
|
||||
sym(_initFunc, "EAS_Init");
|
||||
sym(_shutdownFunc, "EAS_Shutdown");
|
||||
sym(_loadDLSFunc, "EAS_LoadDLSCollection");
|
||||
sym(_setParameterFunc, "EAS_SetParameter");
|
||||
sym(_openStreamFunc, "EAS_OpenMIDIStream");
|
||||
sym(_writeStreamFunc, "EAS_WriteMIDIStream");
|
||||
sym(_closeStreamFunc, "EAS_CloseMIDIStream");
|
||||
sym(_renderFunc, "EAS_Render");
|
||||
|
||||
if (!_initFunc || !_shutdownFunc || !_setParameterFunc ||
|
||||
if (!_initFunc || !_shutdownFunc || !_loadDLSFunc || !_setParameterFunc ||
|
||||
!_openStreamFunc || !_writeStreamFunc || !_closeStreamFunc ||
|
||||
!_renderFunc) {
|
||||
close();
|
||||
@ -262,6 +273,23 @@ int MidiDriver_EAS::open() {
|
||||
"tempo:%u rounds:%u", _config->voices, _config->channels,
|
||||
_config->rate, _config->bufSize, _baseTempo, _rounds);
|
||||
|
||||
// TODO doesn't seem to work with midi streams?
|
||||
if (ConfMan.hasKey("soundfont")) {
|
||||
const Common::String dls = ConfMan.get("soundfont");
|
||||
|
||||
debug("loading DLS file '%s'", dls.c_str());
|
||||
|
||||
EASFile f;
|
||||
memset(&f, 0, sizeof(EASFile));
|
||||
f.path = dls.c_str();
|
||||
|
||||
res = _loadDLSFunc(_EASHandle, 0, &f);
|
||||
if (res)
|
||||
warning("error loading DLS file '%s': %d", dls.c_str(), res);
|
||||
else
|
||||
debug("DLS file loaded");
|
||||
}
|
||||
|
||||
#ifdef EAS_DUMPSTREAM
|
||||
if (!_dump.open("/sdcard/eas.dump"))
|
||||
warning("error opening EAS dump file");
|
||||
|
Loading…
Reference in New Issue
Block a user