2019-05-19 19:07:45 +07:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
2017-06-09 19:40:18 +07:00
|
|
|
config SND_SEQUENCER
|
|
|
|
tristate "Sequencer support"
|
|
|
|
select SND_TIMER
|
ALSA: seq: Allow the modular sequencer registration
Many drivers bind the sequencer stuff in off-load by another driver
module, so that it's loaded only on demand. In the current code, this
mechanism doesn't work when the driver is built-in while the sequencer
is module. We check with IS_REACHABLE() and enable only when the
sequencer is in the same level of build.
However, this is basically a overshoot. The binder code
(snd-seq-device) is an individual module from the sequencer core
(snd-seq), and we just have to make the former a built-in while
keeping the latter a module for allowing the scenario like the above.
This patch achieves that by rewriting Kconfig slightly. Now, a driver
that provides the manual sequencer device binding should select
CONFIG_SND_SEQ_DEVICE in a way as
select SND_SEQ_DEVICE if SND_SEQUENCER != n
Note that the "!=n" is needed here to avoid the influence of the
sequencer core is module while the driver is built-in.
Also, since rawmidi.o may be linked with snd_seq_device.o when
built-in, we have to shuffle the code to make the linker happy.
(the kernel linker isn't smart enough yet to handle such a case.)
That is, snd_seq_device.c is moved to sound/core from sound/core/seq,
as well as Makefile.
Last but not least, the patch replaces the code using IS_REACHABLE()
with IS_ENABLED(), since now the condition meets always when enabled.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-06-09 20:11:58 +07:00
|
|
|
select SND_SEQ_DEVICE
|
2017-06-09 19:40:18 +07:00
|
|
|
help
|
|
|
|
Say Y or M to enable MIDI sequencer and router support. This
|
|
|
|
feature allows routing and enqueueing of MIDI events. Events
|
|
|
|
can be processed at a given time.
|
2009-05-26 22:07:52 +07:00
|
|
|
|
2017-06-09 19:40:18 +07:00
|
|
|
Many programs require this feature, so you should enable it
|
|
|
|
unless you know what you're doing.
|
2009-05-26 22:07:52 +07:00
|
|
|
|
2017-06-09 19:40:18 +07:00
|
|
|
if SND_SEQUENCER
|
2009-05-26 22:07:52 +07:00
|
|
|
|
2017-06-09 19:40:18 +07:00
|
|
|
config SND_SEQ_DUMMY
|
|
|
|
tristate "Sequencer dummy client"
|
|
|
|
help
|
|
|
|
Say Y here to enable the dummy sequencer client. This client
|
|
|
|
is a simple MIDI-through client: all normal input events are
|
|
|
|
redirected to the output port immediately.
|
2009-05-26 22:07:52 +07:00
|
|
|
|
2017-06-09 19:40:18 +07:00
|
|
|
You don't need this unless you want to connect many MIDI
|
|
|
|
devices or applications together.
|
|
|
|
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
|
|
will be called snd-seq-dummy.
|
|
|
|
|
|
|
|
config SND_SEQUENCER_OSS
|
|
|
|
tristate "OSS Sequencer API"
|
|
|
|
depends on SND_OSSEMUL
|
|
|
|
select SND_SEQ_MIDI_EVENT
|
|
|
|
help
|
|
|
|
Say Y here to enable OSS sequencer emulation (both
|
|
|
|
/dev/sequencer and /dev/music interfaces).
|
|
|
|
|
|
|
|
Many programs still use the OSS API, so say Y.
|
|
|
|
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
|
|
will be called snd-seq-oss.
|
|
|
|
|
|
|
|
config SND_SEQ_HRTIMER_DEFAULT
|
|
|
|
bool "Use HR-timer as default sequencer timer"
|
|
|
|
depends on SND_HRTIMER
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Say Y here to use the HR-timer backend as the default sequencer
|
|
|
|
timer.
|
|
|
|
|
|
|
|
config SND_SEQ_MIDI_EVENT
|
2017-08-11 14:51:41 +07:00
|
|
|
tristate
|
2017-06-09 19:40:18 +07:00
|
|
|
|
|
|
|
config SND_SEQ_MIDI
|
2017-08-11 14:51:41 +07:00
|
|
|
def_tristate SND_RAWMIDI
|
2017-06-09 19:40:18 +07:00
|
|
|
select SND_SEQ_MIDI_EVENT
|
|
|
|
|
|
|
|
config SND_SEQ_MIDI_EMUL
|
|
|
|
tristate
|
|
|
|
|
|
|
|
config SND_SEQ_VIRMIDI
|
|
|
|
tristate
|
|
|
|
|
|
|
|
endif # SND_SEQUENCER
|