Opened 4 years ago

Last modified 2 years ago

#7127 new defect

GUI/FLUIDSYNTH: Exit without message in GUI when soundfont setting is missing

Reported by: SF/rootfather Owned by:
Priority: normal Component: GUI
Keywords: Cc:
Game:

Description

OS: Windows 10 [Insider Build 14328] ScummVM 1.9.0git1648-gc1bf8f9 (Apr 22 2016 09:05:24)

The following report is not exactly a bug, but an issue with the user experience.

When you select FluidSynth as MIDI device without specifying a Soundfont, ScummVM will exit without leaving any message in the GUI. You get a log entry about the missing soundfont setting, but no visual feedback in the GUI.

Especially for unexperienced users that don't know exactly how to use Fluidsynt, it would be helpful to get a pop-up message like "You have to select a SoundFont in order to use the Fluidsynth device. Please refer to the README for further information" and returning to the launcher instead of simply quitting ScummVM with only a message left in the log file.

Ticket imported from: bugs/7127.

Change History (3)

comment:1 by eriktorbjorn, 4 years ago

First of all, I agree.

That said, the problem appears to be that the audio driver may - perhaps always is - initialized before the debug console. There is an error message, but nothing (graphical) to print it to.

The message still gets sent to OSystem::logMessage(), but for the SDL backend that just prints it to stderr (and to the log file you mentioned that I wasn't even aware of?) apparently.

So perhaps our SDL backend should display error messages in a more visible way, when possible? Sure, that would mean the error message gets shown twice in many cases. Once by the backend, and then by the engine's debugger. But usually we shouldn't see errors at all, so that's just a minor inconvenience.

I notice that SDL 2 has an SDL_ShowMessageBox() function, but I don't know what the status of using SDL 2 is at the moment.

comment:2 by sev-, 4 years ago

Component: GUI

comment:3 by bonki, 2 years ago

Either way, ScummVM shouldn't just error() out and quit but throw you back to the launcher, if possible.

Note: See TracTickets for help on using tickets.