control: remap plugin - initial version

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
Jaroslav Kysela 2021-03-29 12:36:21 +02:00
parent 7db7e18bbb
commit a64391a428
6 changed files with 1236 additions and 3 deletions

View file

@ -659,7 +659,7 @@ AC_ARG_WITH(ctl-plugins,
[build control plugins (default = all)]),
[ctl_plugins="$withval"], [ctl_plugins="all"])
CTL_PLUGIN_LIST="shm ext"
CTL_PLUGIN_LIST="remap shm ext"
build_ctl_plugin="no"
for t in $CTL_PLUGIN_LIST; do
@ -681,6 +681,7 @@ if test "$ac_cv_header_sys_shm_h" != "yes"; then
fi
AM_CONDITIONAL([BUILD_CTL_PLUGIN], [test x$build_ctl_plugin = xyes])
AM_CONDITIONAL([BUILD_CTL_PLUGIN_REMAP], [test x$build_ctl_remap = xyes])
AM_CONDITIONAL([BUILD_CTL_PLUGIN_SHM], [test x$build_ctl_shm = xyes])
AM_CONDITIONAL([BUILD_CTL_PLUGIN_EXT], [test x$build_ctl_ext = xyes])

View file

@ -312,7 +312,9 @@ typedef enum _snd_ctl_type {
/** INET client CTL (not yet implemented) */
SND_CTL_TYPE_INET,
/** External control plugin */
SND_CTL_TYPE_EXT
SND_CTL_TYPE_EXT,
/** Control functionality remapping */
SND_CTL_TYPE_REMAP,
} snd_ctl_type_t;
/** Non blocking mode (flag for open mode) \hideinitializer */

View file

@ -3,6 +3,9 @@ EXTRA_LTLIBRARIES = libcontrol.la
libcontrol_la_SOURCES = cards.c tlv.c namehint.c hcontrol.c \
control.c control_hw.c setup.c ctlparse.c \
control_symbols.c
if BUILD_CTL_PLUGIN_REMAP
libcontrol_la_SOURCES += control_remap.c
endif
if BUILD_CTL_PLUGIN_SHM
libcontrol_la_SOURCES += control_shm.c
endif

View file

@ -1345,7 +1345,7 @@ snd_ctl_t *snd_async_handler_get_ctl(snd_async_handler_t *handler)
}
static const char *const build_in_ctls[] = {
"hw", "shm", NULL
"hw", "remap", "shm", NULL
};
static int snd_ctl_open_conf(snd_ctl_t **ctlp, const char *name,

1226
src/control/control_remap.c Normal file

File diff suppressed because it is too large Load diff

View file

@ -21,6 +21,7 @@
#ifndef PIC
extern const char *_snd_module_control_hw;
extern const char *_snd_module_control_remap;
extern const char *_snd_module_control_shm;
extern const char *_snd_module_control_ext;