mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-11 07:11:54 +00:00
- sfmanager gets initialized
This commit is contained in:
parent
aaedae6972
commit
8b8a7e5e45
3 changed files with 25 additions and 12 deletions
|
@ -87,6 +87,7 @@ enum EMIDIType
|
||||||
};
|
};
|
||||||
|
|
||||||
extern int MUSHeaderSearch(const uint8_t *head, int len);
|
extern int MUSHeaderSearch(const uint8_t *head, int len);
|
||||||
|
void I_InitSoundFonts();
|
||||||
|
|
||||||
EXTERN_CVAR (Int, snd_samplerate)
|
EXTERN_CVAR (Int, snd_samplerate)
|
||||||
EXTERN_CVAR (Int, snd_mididevice)
|
EXTERN_CVAR (Int, snd_mididevice)
|
||||||
|
@ -143,7 +144,7 @@ void I_InitMusic (void)
|
||||||
{
|
{
|
||||||
static bool setatterm = false;
|
static bool setatterm = false;
|
||||||
|
|
||||||
Timidity::LoadConfig();
|
I_InitSoundFonts();
|
||||||
|
|
||||||
snd_musicvolume.Callback ();
|
snd_musicvolume.Callback ();
|
||||||
|
|
||||||
|
|
|
@ -42,6 +42,7 @@
|
||||||
#include "gameconfigfile.h"
|
#include "gameconfigfile.h"
|
||||||
#include "resourcefiles/resourcefile.h"
|
#include "resourcefiles/resourcefile.h"
|
||||||
|
|
||||||
|
FSoundFontManager sfmanager;
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -327,16 +328,19 @@ void FSoundFontManager::ProcessOneFile(const FString &fn, TArray<FString> &sffil
|
||||||
}
|
}
|
||||||
else if (!memcmp(head, "PK", 2))
|
else if (!memcmp(head, "PK", 2))
|
||||||
{
|
{
|
||||||
auto zip = FResourceFile::OpenResourceFile(fn, &fr);
|
auto zip = FResourceFile::OpenResourceFile(fn, nullptr);
|
||||||
if (zip != nullptr && zip->LumpCount() > 1) // Anything with just one lump cannot possibly be a packed GUS patch set so skip it right away and simplify the lookup code
|
if (zip != nullptr)
|
||||||
{
|
{
|
||||||
auto zipl = zip->FindLump("timidity.cfg");
|
if (zip->LumpCount() > 1) // Anything with just one lump cannot possibly be a packed GUS patch set so skip it right away and simplify the lookup code
|
||||||
if (zipl != nullptr)
|
|
||||||
{
|
{
|
||||||
// It seems like this is what we are looking for
|
auto zipl = zip->FindLump("timidity.cfg");
|
||||||
sffiles.Push(fn);
|
if (zipl != nullptr)
|
||||||
FSoundFontInfo sft = { fb, fn, SF_GUS };
|
{
|
||||||
soundfonts.Push(sft);
|
// It seems like this is what we are looking for
|
||||||
|
sffiles.Push(fn);
|
||||||
|
FSoundFontInfo sft = { fb, fn, SF_GUS };
|
||||||
|
soundfonts.Push(sft);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
delete zip;
|
delete zip;
|
||||||
}
|
}
|
||||||
|
@ -372,8 +376,9 @@ void FSoundFontManager::CollectSoundfonts()
|
||||||
if (dir.IsNotEmpty())
|
if (dir.IsNotEmpty())
|
||||||
{
|
{
|
||||||
if (dir.Back() != '/') dir += '/';
|
if (dir.Back() != '/') dir += '/';
|
||||||
FString path = dir + '*';
|
FString path = dir + "soundfonts/";
|
||||||
if ((file = I_FindFirst(path, &c_file)) != ((void *)(-1)))
|
FString mask = path + '*';
|
||||||
|
if ((file = I_FindFirst(mask, &c_file)) != ((void *)(-1)))
|
||||||
{
|
{
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
@ -389,7 +394,8 @@ void FSoundFontManager::CollectSoundfonts()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
soundfontcollection.InitMultipleFiles(sffiles);
|
if (sffiles.Size() > 0)
|
||||||
|
soundfontcollection.InitMultipleFiles(sffiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
|
@ -444,4 +450,9 @@ FSoundFontReader *FSoundFontManager::OpenSoundFont(const char *name, int allowed
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void I_InitSoundFonts()
|
||||||
|
{
|
||||||
|
sfmanager.CollectSoundfonts();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include "i_system.h"
|
#include "i_system.h"
|
||||||
#include "files.h"
|
#include "files.h"
|
||||||
#include "w_wad.h"
|
#include "w_wad.h"
|
||||||
|
#include "i_soundfont.h"
|
||||||
|
|
||||||
// Unlike the other softsynths, this one cannot change its config data at run time.
|
// Unlike the other softsynths, this one cannot change its config data at run time.
|
||||||
CVAR(String, midi_config, CONFIG_FILE, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
CVAR(String, midi_config, CONFIG_FILE, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
||||||
|
|
Loading…
Reference in a new issue