From 6d1eb880c238dba0b71c820a4bfca673ddfa4625 Mon Sep 17 00:00:00 2001 From: George Joseph Date: Mon, 13 Mar 2017 09:45:47 -0600 Subject: menuselect: Add a new 'options' support type The Binaural Rendering patches in the master branch required menuselect to be updated with a new support type called 'option'. This allows binaural rendering to be turned on or off when bridge_softmix is built. This patch backports the 'option' functionality to the 13 and 14 branches. Here's what it looks like in menuselect: [*] bridge_simple [*] bridge_softmix --- Module Options --- [ ] binaural_rendering_in_bridge_softmix To create an option for a module, you can create (or update) the menuselect-tree xml snippet in the directory where the module resides and add a member element with an 'option' support_level. Example (abbreviated) from bridges/bridges.xml: option bridge_softmix fftw3 no The 'name' will be added or removed from the MENUSELECT_ make variable following the standard module "missing means yes" rules. Example (abbreviated) from bridges/Makefile: ifeq ($(findstring binaural_rendering,$(MENUSELECT_BRIDGES)),) bridge_softmix.o: _ASTCFLAGS+=-DBINAURAL_RENDERING bridge_softmix.so: LIBS+=$(FFTW3_LIB) endif Change-Id: I66d23755ed6e81f8d439cad410f2ffa7c30f25ad --- menuselect/menuselect.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'menuselect/menuselect.c') diff --git a/menuselect/menuselect.c b/menuselect/menuselect.c index da972d8b1..689cebf62 100644 --- a/menuselect/menuselect.c +++ b/menuselect/menuselect.c @@ -238,6 +238,10 @@ static enum support_level_values string_to_support_level(const char *support_lev return SUPPORT_EXTERNAL; } + if (!strcasecmp(support_level, "option")) { + return SUPPORT_OPTION; + } + return SUPPORT_UNSPECIFIED; } @@ -253,6 +257,8 @@ static const char *support_level_to_string(enum support_level_values support_lev return "Deprecated"; case SUPPORT_EXTERNAL: return "External"; + case SUPPORT_OPTION: + return "Module Options"; default: return "Unspecified"; } @@ -461,7 +467,7 @@ static int process_xml_member_node(xmlNode *node, struct category *cat) process_process_xml_category_child_node(cur, mem); } - if (!cat->positive_output) { + if (!cat->positive_output && strcasecmp(mem->support_level, "option")) { mem->enabled = 1; if (!mem->defaultenabled || strcasecmp(mem->defaultenabled, "no")) { mem->was_enabled = 1; -- cgit v1.2.3