ASetSystemChannelGain(3X)
NAME
ASetSystemChannelGain − set system or monitor channel gain
SYNOPSIS
#include <Alib.h> void
ASetSystemChannelGain (
Audio ∗ audio,
ASystemGainType gain_type,
AChType channel,
AGainDB gain,
long ∗ status_return );
DESCRIPTION
ASetSystemChannelGain() sets the system gain to the value in gain. If gain_type is ASGTMonitor, the setting controls how much of the record input signal is fed to the internal speaker or auxiliary output. When the recording input is not from a microphone, this ability to monitor the input is particularly useful.
audio the Audio structure associated with this connection.
gain_type the type of operation: ASGTPlay, ASGTRecord, or ASGTMonitor. If this field is set to ASGTMonitor, the channel specification must be ACTMono.
channel the type of channel: ACTMono, ACTLeft, or ACTRight. If gain_type is ASGTMonitor, this field must be ACTMono.
gain specifies the volume. One of the following values:
AUnityGain − no change to gain setting (same as 0 decibels).
AZeroGain − turn off sound
decibels − A decimal value specifying the number of decibels to use.
status_return receives the returned status of the operation, unless this parameter is passed in as a NULL pointer. If status_return is set to NULL, Alib will do the error handling.
Each audio controller has its own support limit for maximum and minimum input and output gain. If the application specifies a gain greater than the maximum supported value, the maximum supported value is used. If the application specifies a gain less than the minimum supported value, a value of AZeroGain (no sound) is used.
ERRORS
If status_return is not set to NULL, it can return one of the following values:
0 AENoError No error - the call completed successfully.
2 AEBadAudio The audio structure is invalid. A pointer to a valid audio structure may be missing (use AOpenAudio() to get a valid pointer).
3 AEBadValue The channel or gain_type parameter contains in incorrect value.
EXAMPLE
The following example sets the gain on the monitor to -6.
Audio ∗ audio; /∗ audio connection ∗/
ASystemGainType ∗ sgtype; /∗ type of operation ∗/
AChType ∗ chtype; /∗ type of channel ∗/
AGainDB chgain; /∗ gain specification∗/
long status; /∗ error status ∗/
.
.
.
/∗ set monitor gain to -6 ∗/
sgtype = ASGTMonitor;
chtype = ACTMono;
chgain = −6;
ASetSystemChannelGain(audio, sgtype, chtype, chgain, &status);
NOTE
In order to ensure that the compiler finds the Audio Library (libAlib.sl) and the Alib.h header file, you must add the following switches:
-L /opt/audio/lib
-I/opt/audio/include
DEPENDENCIES
This function belongs to the Audio Library of functions that manage connections to an audio server. The audio server must run on a system that has audio hardware. To find out whether or not your system has audio hardware, refer to Using the Audio Developer’s Kit or the online help for the Audio control panel. For information about the audio capabilities of a particular system use the online example audioinfo.c.
AUTHOR
ASetSystemChannelGain() was developed by HP.
SEE ALSO
AGetChannelGain(3X) AGetGain(3X), AGetSystemChannelGain(3X), AGMGainRestricted(3X), AInputChannels(3X), AInputSources(3X), AMaxInputGain(3X), AMaxOutputGain(3X), AMinInputGain(3X), AMinOutputGain(3X), AOutputChannels(3X), AOutputDestinations(3X), ASetChannelGain(3X), ASetGain(3X), ASimplePlayer(3X), ASimpleRecorder(3X).
Hewlett-Packard Company — Audio Library: February, 1995