ARecordAData(3X)
NAME
ARecordAData − read audio data into a sound bucket
SYNOPSIS
#include <Alib.h> ATransID
ARecordAData (
Audio ∗ audio,
SBucket ∗ sb,
SBRecordParams ∗ rp,
long ∗ status_return );
DESCRIPTION
ARecordAData() reads audio data from the specified server connection into the specified sound bucket and returns a transaction ID.
Because ARecordAData() does not block until the record is complete, following it immediately by a call to ASaveSBucket() usually causes an error. See the man page for ASaveSBucket() for suggested program actions.
audio specifies the Audio structure associated with this connection.
sb specifies the sound bucket to receive the data.
rp specifies the record parameters associated with the record operation.
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.
RETURN VALUE
Upon successful completion, ARecordAData() returns the transaction ID.
STRUCTURES
The following are defined in /opt/audio/include/Alib.h:
typedef long ATransID; /* Type for transaction ID. */
typedef struct _SBucket {
AudioAttributes audio_attr; /* Attributes of the audio data
in the sound bucket. */
long max_length; /* The maximum length, in bytes,
of the audio_data buffer. */
char * audio_data; /* A pointer to the buffer that
contains the audio data
for this sound bucket. */
} SBucket;
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).
7 AEBadDataFormat The data_format field of the sound bucket structure is invalid.
10 AEBadGainMatrix The gain matrix specified as part of the record parameters is invalid.
13 AEBadAttribute The attribute type associated with the sound bucket is not ATSampled.
19 AEBadSamplingRate The sampling_rate field of the sound bucket structure is not invalid.
20 AEBadSoundBucket The sound bucket parameter does not point to a valid sound bucket.
EXAMPLES
The following example reads data from the connection associated with audio into the sound bucket specified by sb and returns a transaction ID.
TransID xid; /∗ transID ∗/
Audio ∗ audio; /∗ audio connection ∗/
SBucket ∗ sb; /∗ sound bucket∗/
SBRecordParams rparams; /∗ record parameters ∗/
long status; /∗ error status ∗/
.
.
.
/∗ start record transaction ∗/
xid = ARecordAData(audio, sb, &rparams, &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
ARecordAData() was developed by HP.
SEE ALSO
ACreateSBucket(3X), ADestroySBucket(3X), AGetSBucketData(3X), ALoadAFile(3X), APlaySBucket(3X), APutSBucketData(3X), ASaveSBucket(3X).
Hewlett-Packard Company — Audio Library: February, 1995