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
certified/13.18
George Joseph 8 years ago
parent 8386a38e06
commit 6d1eb880c2

@ -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);

Loading…
Cancel
Save