The Media Kit: BParameterGroup

The Media Kit Table of Contents | The Media Kit Index

# BParameterGroup

Derived from: BFlattenable

Declared in: be/media/ParameterWeb.h

Library: libmedia.so

Allocation: Constructor only

###### Summary

A BParameterGroup object serves as a logical grouping of BParameters. Each BParameter belongs to exactly one BParameterGroup, and is in fact created by the BParameterGroup object to which it belongs, via the `BParameterWeb::MakeGroup()` function.

BParamaeterGroups can be nested one inside another.

A BParameterGroup object that's owned by a BParameterWeb is a logical candidate for a pane in a multi-pane control panel such as a BTabView, wherein each tab causes another BParameterGroup's BParameters to be displayed.

## Constructor and Destructor

### BParameterGroup()

`BParameterGroup()`

Rather than directly creating a BParameterGroup object via the new operator, you should call `BParameterWeb::MakeGroup()` to create a top-level group, or `BParameterGroup::MakeGroup()` if you want to create a subgroup.

### ~BParameterGroup()

`~BParameterGroup()`

You don't need to delete a BParameterGroup object; the BParameterWeb that owns it will do this for you when the web is deleted.

## Member Functions

### CountGroups()

int32 `CountGroups(`void`) `

Returns the number of subgroups in the group. This count doesn't subgroups nested within subgroups.

### CountParameters()

int32 `CountParameters(`void`) `

Returns the number of BParameters in the group. This count doesn't include BParameters in subgroups.

### GroupAt()

BParameterGroup *`ParameterGroup(`int32 index`) `

Returns the subgroup at the specified index within the BParameterGroup. If the index is negative, or is greater than `CountGroups()`-1, `NULL` is returned.

### MakeNullParameter()

BNullParameter *`MakeNullParameter(`int32 id, media_type type, const char *name, const char *kind`) `

Creates a new BNullParameter within the group, with the internal ID specified by id, which should be unique within the BParameterWeb that owns the group.

The type of media data that travels through the null parameter is indicated by type, which could be `B_MEDIA_UNKNOWN_TYPE` or `B_MEDIA_NO_TYPE`. The parameter's name will be displayed by client applications that display information about the node, and the parameter has the specified kind.

Constant | Description
--- | ---
`B_WEB_PHYSICAL_INPUT` | The parameter represents a physical input (such as a microphone jack or line input jack).
`B_WEB_PHYSICAL_OUTPUT` | The parameter represents a physical output (such as a line output jack or headphone jack).
`B_WEB_LOGICAL_INPUT` | The parameter represents a point at which bits of data are transferred between the computer and the A/V input hardware.
`B_WEB_LOGICAL_OUTPUT` | The parameter represents a point at which bits of data are transferred between the computer and the A/V output hardware.
`B_WEB_ADC_CONVERTER` | The parameter represents an analog to digital converter.
`B_WEB_DAC_CONVERTER` | The parameter represents a digital to analog converter.
`B_WEB_BUFFER_INPUT` | The parameter represents a media_input.
`B_WEB_BUFFER_OUTPUT` | The parameter represents a media_output.
`B_GENERIC` | The parameter's kind isn't one of the above.

These kinds are used when a control panel needs to draw a signal flow diagram, so it can use the appropriate symbols for these points in the flow.

| If you create your own kind, you won't break anything, but you should contact Be Developer Support for guidance, so we can standardize given your needs.

See also: the BNullParameter class.

### MakeDiscreteParameter()

BContinuousParameter *`MakeContinuousParameter(`int32 id, media_type type, const char *name, const char *kind`) `

Creates a new BDiscreteParameter object and attaches it to the group. The BDiscreteParameter will have the specified internal id, which should be unique within the BParameterWeb that owns the group.

The BDiscreteParameter will affect media data of the specified type, and will have the specified name.

The kind of discrete parameter is specified by kind, and may be any of the following values:

Constant | Description
--- | ---
`B_MUTE` | The parameter represents a mute control; a value of 0 passes data through unchanged, while a value of 1 mutes the data.
`B_ENABLE` | The parameter represents an enable toggle; a value of 0 disables the function while a value of 1 enables it.
`B_INPUT_MUX` | The parameter represents an input MUX. The value specifies which input should pass through.
`B_OUTPUT_MUX` | The parameter represents an output MUX; the value specifies which output should receive the incoming data.
`B_TUNER_CHANNEL` | The parameter represents a channel tuner (like a TV channel); the value indicates the channel number.
`B_TRACK` | The parameter's value indicates a track number.
`B_RECSTATE` | The parameter indicates whether the node is silent (0), playing (1), or recording (2).
`B_SHUTTLE_MODE` | The parameter indicates performance mode: -1 for backwards, 0 for stop, 1 for playing, and 2 for paused.
`B_RESOLUTION` | The parameter indicates video or audio resolution.
`B_COLOR_SPACE` | The parameter indicates video color space.
`B_FRAME_RATE` | The parameter represents a selector for picking frame rate.

### MakeContinuousParameter()

BContinuousParameter *`MakeContinuousParameter(`int32 id, media_type type, const char *name, const char *kind, const char *unit, float minValue, float maxValue, float step`) `

Creates a new BContinuousParameter object and attaches it to the group. The BContinuousParameter will have the specified internal id, which should be unique within the BParameterWeb that owns the group.

The BContinuousParameter will affect media data of the specified type, and will have the specified name.

The kind of parameter the BContinuousParameter represents is specified by kind, and may be any of the following values:

Constant | Description
--- | ---
`B_MASTER_GAIN` | The parameter represents the main volume control.
`B_GAIN` | The parameter represents a gain control.
`B_BALANCE` | The parameter represents a balance control.
`B_FREQUENCY` | The parameter represents a frequency, like a radio tuner.
`B_LEVEL` | The parameter represents a level, as in EQ and effects.
`B_SHUTTLE_SPEED` | The parameter represents playback speed. A value of 1.0 indicates normal speed; less than 1.0 is slower, greater than 1.0 is faster.
`B_CROSSFADE` | The parameter indicates a crossfade for mixing audio or video; 0 indicates that the the first of a pair of streams should be presented, 100 indicates that the other should be presented, and values in between indicate the degree of mixing that should occur.
`B_COMPRESSION` | The parameter indicates compression ratio; the value is 0 for no compression, 99 for 100:1 compression.
`B_QUALITY` | The parameter indicates quality level; the value is 0 for maximum compression, 100 for no compression.
`B_BITRATE` | The parameter indicates bit rate in bits per second.
`B_GOP_SIZE` | The parameter indicates a "group of pictures" such as how many frames apart a keyframe should be inserted into a video stream.
`B_TUNER_CHANNEL` | The parameter represents a channel tuner (like a TV channel); the value indicates the channel number.

The units of measurement are specified by unit, and the parameter's value can range from minValue to maxValue, with a granularity of step.

### Name()

const char *`Name(`void`) `

Returns the name of the BParameterGroup. This name can be displayed to the user; for example, it could be used as the label of a BTab.

### ParameterAt()

BParameter *`ParameterAt(`int32 index`) `

Returns the BParameter at the specified index within the BParameterGroup. If the index is negative, or is greater than `CountParameters()`-1, `NULL` is returned.

### Web()

BParameterWeb *`Web(`void`) `

Returns the BParameterWeb that owns the group.

The Media Kit Table of Contents | The Media Kit Index

The Be Book,
...in lovely HTML...
for BeOS Release 5.

Copyright © 2000 Be, Inc. All rights reserved..