summaryrefslogtreecommitdiff
path: root/menuselect
diff options
context:
space:
mode:
authorGeorge Joseph <gjoseph@digium.com>2017-03-13 09:45:47 -0600
committerGeorge Joseph <gjoseph@digium.com>2017-03-13 10:01:42 -0600
commit6d1eb880c238dba0b71c820a4bfca673ddfa4625 (patch)
tree6f7555997081a9302438bb854e6de8ba55403bbf /menuselect
parent8386a38e06d661c13b5dd581ab829ff5a8762f54 (diff)
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: <member name="binaural_rendering_in_bridge_softmix" displayname="Enable binaural rendering in bridge_softmix" remove_on_change="bridges/bridge_softmix.o bridges/bridge_softmix.so"> <support_level>option</support_level> <depend>bridge_softmix</depend> <depend>fftw3</depend> <defaultenabled>no</defaultenabled> </member> The 'name' will be added or removed from the MENUSELECT_<dir> 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
Diffstat (limited to 'menuselect')
-rw-r--r--menuselect/menuselect.c8
-rw-r--r--menuselect/menuselect.h3
2 files changed, 9 insertions, 2 deletions
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;
diff --git a/menuselect/menuselect.h b/menuselect/menuselect.h
index bf2bf4c4f..78ae8eff6 100644
--- a/menuselect/menuselect.h
+++ b/menuselect/menuselect.h
@@ -108,7 +108,8 @@ enum support_level_values {
SUPPORT_DEPRECATED = 2,
SUPPORT_UNSPECIFIED = 3,
SUPPORT_EXTERNAL = 4,
- SUPPORT_COUNT = 5, /* Keep this item at the end of the list. Tracks total number of support levels. */
+ SUPPORT_OPTION = 5,
+ SUPPORT_COUNT = 6, /* Keep this item at the end of the list. Tracks total number of support levels. */
};
AST_LIST_HEAD_NOLOCK(support_level_bucket, member);