mirror of
https://github.com/fabiangreffrath/woof.git
synced 2025-09-22 11:22:18 -04:00
save midi player string to config, fix soundfont name length
This commit is contained in:
parent
8be4beea1c
commit
8199d9a226
@ -2688,6 +2688,7 @@ void D_DoomMain(void)
|
|||||||
I_InitController();
|
I_InitController();
|
||||||
I_InitSound();
|
I_InitSound();
|
||||||
I_InitMusic();
|
I_InitMusic();
|
||||||
|
MN_InitMidiPlayer();
|
||||||
|
|
||||||
I_Printf(VB_INFO, "NET_Init: Init network subsystem.");
|
I_Printf(VB_INFO, "NET_Init: Init network subsystem.");
|
||||||
NET_Init();
|
NET_Init();
|
||||||
|
@ -136,7 +136,10 @@ static void GetSoundFonts(void)
|
|||||||
{
|
{
|
||||||
char *left, *p, *dup_path;
|
char *left, *p, *dup_path;
|
||||||
|
|
||||||
array_clear(soundfonts);
|
if (array_size(soundfonts))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Split into individual dirs within the list.
|
// Split into individual dirs within the list.
|
||||||
dup_path = M_StringDuplicate(soundfont_dir);
|
dup_path = M_StringDuplicate(soundfont_dir);
|
||||||
@ -413,7 +416,7 @@ static const char **I_FL_DeviceList(void)
|
|||||||
for (int i = 0; i < array_size(soundfonts); ++i)
|
for (int i = 0; i < array_size(soundfonts); ++i)
|
||||||
{
|
{
|
||||||
char *name = M_StringDuplicate(M_BaseName(soundfonts[i]));
|
char *name = M_StringDuplicate(M_BaseName(soundfonts[i]));
|
||||||
if (strlen(name) >= NAME_MAX_LENGTH)
|
if (strlen(name) > NAME_MAX_LENGTH)
|
||||||
{
|
{
|
||||||
name[NAME_MAX_LENGTH] = '\0';
|
name[NAME_MAX_LENGTH] = '\0';
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,6 @@
|
|||||||
#include "i_printf.h"
|
#include "i_printf.h"
|
||||||
#include "i_system.h"
|
#include "i_system.h"
|
||||||
#include "m_array.h"
|
#include "m_array.h"
|
||||||
#include "mn_setup.h"
|
|
||||||
#include "p_mobj.h"
|
#include "p_mobj.h"
|
||||||
#include "sounds.h"
|
#include "sounds.h"
|
||||||
#include "w_wad.h"
|
#include "w_wad.h"
|
||||||
@ -509,13 +508,15 @@ void I_SetSoundModule(int device)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void I_SetMidiPlayer(int device)
|
void I_SetMidiPlayer(int *menu_index)
|
||||||
{
|
{
|
||||||
if (nomusicparm)
|
if (nomusicparm)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const int device = *menu_index;
|
||||||
|
|
||||||
if (midi_module)
|
if (midi_module)
|
||||||
{
|
{
|
||||||
midi_module->I_ShutdownMusic();
|
midi_module->I_ShutdownMusic();
|
||||||
@ -542,13 +543,20 @@ void I_SetMidiPlayer(int device)
|
|||||||
|
|
||||||
// Fall back the the first module that initializes, device 0.
|
// Fall back the the first module that initializes, device 0.
|
||||||
|
|
||||||
|
count_devices = 0;
|
||||||
|
|
||||||
for (int i = 0; i < arrlen(music_modules); ++i)
|
for (int i = 0; i < arrlen(music_modules); ++i)
|
||||||
{
|
{
|
||||||
|
const char **strings = music_modules[i]->I_DeviceList();
|
||||||
|
|
||||||
if (music_modules[i]->I_InitMusic(0))
|
if (music_modules[i]->I_InitMusic(0))
|
||||||
{
|
{
|
||||||
midi_module = music_modules[i];
|
midi_module = music_modules[i];
|
||||||
|
*menu_index = count_devices;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
count_devices += array_size(strings);
|
||||||
}
|
}
|
||||||
|
|
||||||
I_Error("I_SetMidiPlayer: No music module could be initialized");
|
I_Error("I_SetMidiPlayer: No music module could be initialized");
|
||||||
@ -568,8 +576,6 @@ boolean I_InitMusic(void)
|
|||||||
|
|
||||||
I_AtExit(I_ShutdownMusic, true);
|
I_AtExit(I_ShutdownMusic, true);
|
||||||
|
|
||||||
I_SetMidiPlayer(midi_player_menu);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,7 +179,7 @@ extern music_module_t music_mid_module;
|
|||||||
boolean I_InitMusic(void);
|
boolean I_InitMusic(void);
|
||||||
void I_ShutdownMusic(void);
|
void I_ShutdownMusic(void);
|
||||||
|
|
||||||
void I_SetMidiPlayer(int device);
|
void I_SetMidiPlayer(int *menu_index);
|
||||||
|
|
||||||
// Volume.
|
// Volume.
|
||||||
void I_SetMusicVolume(int volume);
|
void I_SetMusicVolume(int volume);
|
||||||
|
@ -461,6 +461,13 @@ default_t defaults[] = {
|
|||||||
"MIDI Player menu index"
|
"MIDI Player menu index"
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"midi_player_string",
|
||||||
|
(config_t *) &midi_player_string, NULL,
|
||||||
|
{.s = ""}, {0}, string, ss_none, wad_no,
|
||||||
|
"MIDI Player string"
|
||||||
|
},
|
||||||
|
|
||||||
#if defined(HAVE_FLUIDSYNTH)
|
#if defined(HAVE_FLUIDSYNTH)
|
||||||
{
|
{
|
||||||
"soundfont_dir",
|
"soundfont_dir",
|
||||||
|
@ -81,6 +81,8 @@ boolean MN_MenuIsShaded(void);
|
|||||||
|
|
||||||
void MN_SetQuickSaveSlot(int slot);
|
void MN_SetQuickSaveSlot(int slot);
|
||||||
|
|
||||||
|
void MN_InitMidiPlayer(void);
|
||||||
|
|
||||||
void MN_InitMenuStrings(void);
|
void MN_InitMenuStrings(void);
|
||||||
|
|
||||||
boolean MN_StartsWithMapIdentifier(char *str);
|
boolean MN_StartsWithMapIdentifier(char *str);
|
||||||
|
@ -2048,23 +2048,17 @@ static void SetSoundModule(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int midi_player_menu;
|
int midi_player_menu;
|
||||||
|
const char *midi_player_string = "";
|
||||||
static const char **GetMidiDevicesStrings(void)
|
|
||||||
{
|
|
||||||
const char **devices = I_DeviceList();
|
|
||||||
if (midi_player_menu >= array_size(devices))
|
|
||||||
{
|
|
||||||
midi_player_menu = 0;
|
|
||||||
}
|
|
||||||
return devices;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void SetMidiPlayer(void)
|
static void SetMidiPlayer(void)
|
||||||
{
|
{
|
||||||
S_StopMusic();
|
S_StopMusic();
|
||||||
I_SetMidiPlayer(midi_player_menu);
|
I_SetMidiPlayer(&midi_player_menu);
|
||||||
S_SetMusicVolume(snd_MusicVolume);
|
S_SetMusicVolume(snd_MusicVolume);
|
||||||
S_RestartMusic();
|
S_RestartMusic();
|
||||||
|
|
||||||
|
const char **strings = GetStrings(str_midi_player);
|
||||||
|
midi_player_string = strings[midi_player_menu];
|
||||||
}
|
}
|
||||||
|
|
||||||
static setup_menu_t gen_settings2[] = {
|
static setup_menu_t gen_settings2[] = {
|
||||||
@ -3801,11 +3795,34 @@ static void UpdateHUDModeStrings(void)
|
|||||||
selectstrings[str_hudmode] = GetHUDModeStrings();
|
selectstrings[str_hudmode] = GetHUDModeStrings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MN_InitMidiPlayer(void)
|
||||||
|
{
|
||||||
|
const char **devices = I_DeviceList();
|
||||||
|
|
||||||
|
for (int i = 0; i < array_size(devices); ++i)
|
||||||
|
{
|
||||||
|
if (!strcasecmp(devices[i], midi_player_string))
|
||||||
|
{
|
||||||
|
midi_player_menu = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (midi_player_menu >= array_size(devices))
|
||||||
|
{
|
||||||
|
midi_player_menu = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
I_SetMidiPlayer(&midi_player_menu);
|
||||||
|
midi_player_string = devices[midi_player_menu];
|
||||||
|
|
||||||
|
selectstrings[str_midi_player] = devices;
|
||||||
|
}
|
||||||
|
|
||||||
void MN_InitMenuStrings(void)
|
void MN_InitMenuStrings(void)
|
||||||
{
|
{
|
||||||
UpdateHUDModeStrings();
|
UpdateHUDModeStrings();
|
||||||
selectstrings[str_resolution_scale] = GetResolutionScaleStrings();
|
selectstrings[str_resolution_scale] = GetResolutionScaleStrings();
|
||||||
selectstrings[str_midi_player] = GetMidiDevicesStrings();
|
|
||||||
selectstrings[str_mouse_accel] = GetMouseAccelStrings();
|
selectstrings[str_mouse_accel] = GetMouseAccelStrings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,6 +93,7 @@ void MN_DrawEnemy(void);
|
|||||||
|
|
||||||
extern int resolution_scale;
|
extern int resolution_scale;
|
||||||
extern int midi_player_menu;
|
extern int midi_player_menu;
|
||||||
|
extern const char *midi_player_string;
|
||||||
|
|
||||||
/////////////////////////////
|
/////////////////////////////
|
||||||
//
|
//
|
||||||
|
Loading…
x
Reference in New Issue
Block a user