Open main menu

Difference between revisions of "OpenTasks/Audio/MIDI Device Configuration"

m
cleanup
m (cleanup)
Line 12: Line 12:
Many of the adventures supported by ScummVM make use of MIDI music. Which is why we already include several device drivers for various MIDI APIs and emulators (e.g. ALSA, Windows MIDI, Mac OS X CoreAudio/CoreMIDI, fluidsynth...).
Many of the adventures supported by ScummVM make use of MIDI music. Which is why we already include several device drivers for various MIDI APIs and emulators (e.g. ALSA, Windows MIDI, Mac OS X CoreAudio/CoreMIDI, fluidsynth...).


Unlike the audio driver output selection task above, this task solely focues on configuration of the individual ''MIDI'' devices.
Unlike the audio driver output selection task above, this task solely focuses on configuration of the individual ''MIDI'' devices.


We have a few game specific settings, like "True Roland MT-32" mode or "Roland GS Mode", currently. In reality these are not settings of an individual game, but rather of a specific MIDI device. Think of it like this: When you connect your Roland MT-32 ''device'' to your first ALSA hardware MIDI port, it is pretty obvious that this device will only support MT-32 MIDI data. Currently whenever you select that MIDI device in a specific game you also have to make sure that the "True Roland MT-32" mode setting is selected, otherwise it might be that the game will send General MIDI data to the Roland MT-32, which in turn will result in odd output. This is especially annoying if you want Roland MT-32 output in a few selected games and General MIDI output in others, this way you will have to make sure that in ''every'' game's settings the device and its ''type'' are setup correctly. As you can easily see this is lots of redundant configuration effort and easy to forget.
We have a few game specific settings, like "True Roland MT-32" mode or "Roland GS Mode", currently. In reality these are not settings of an individual game, but rather of a specific MIDI device. Think of it like this: When you connect your Roland MT-32 ''device'' to your first ALSA hardware MIDI port, it is pretty obvious that this device will only support MT-32 MIDI data. Currently whenever you select that MIDI device in a specific game you also have to make sure that the "True Roland MT-32" mode setting is selected, otherwise it might be that the game will send General MIDI data to the Roland MT-32, which in turn will result in odd output. This is especially annoying if you want Roland MT-32 output in a few selected games and General MIDI output in others, this way you will have to make sure that in ''every'' game's settings the device and its ''type'' are setup correctly. As you can easily see this is lots of redundant configuration effort and easy to forget.
Line 24: Line 24:
===The Task:===
===The Task:===


* Design a efficient way to query supported configuration options from a driver / device.
* Design a efficient way to query supported configuration options from a driver/device.
* Design a efficient way to save supported configuration options for a driver / device.
* Design a efficient way to save supported configuration options for a driver/device.
* The design must be easy to extend, also it must be possible to add new drivers easily.
* The design must be easy to extend, also it must be possible to add new drivers easily.
* It must be possible to save the configuration to our configuration file.
* It must be possible to save the configuration to our configuration file.
2,051

edits