mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-02 19:16:15 +00:00
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
This commit is contained in:
@@ -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;
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user