APutSBucketData(3X)
NAME
APutSBucketData − copy audio data from buffer to sound bucket
SYNOPSIS
#include <Alib.h> unsigned long
APutSBucketData (
Audio ∗ audio,
SBucket ∗ sb,
unsigned long start_offset,
char ∗ buffer,
unsigned long length,
long ∗ status_return );
DESCRIPTION
APutSBucketData() copies the data from a buffer to a sound bucket.
audio specifies the Audio structure associated with this connection.
sb specifies the sound bucket to receive the data.
start_offset specifies where to start writing the copied data, given as the byte offset from the beginning of the sound bucket.
buffer specifies the buffer containing the data to copy.
length specifies the length of the data in the buffer, in bytes.
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, APutSBucketData() returns the byte count of the copied data.
STRUCTURES
The following is defined in /opt/audio/include/Alib.h.
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).
13 AEBadAttribute The specified audio attributes structure contains an unsupported or inconsistent value.
17 AEOutofMemory The Audio Library could not allocate space for the data.
20 AEBadSoundBucket The sound bucket parameter does not point to a valid sound bucket.
EXAMPLES
The following example copies the audio data from the buffer buffp to the sound bucket sb and returns the number of bytes that were copied. The data is placed starting at the beginning of the sound bucket (offset 0). In this example, we assume that we are returning data from the buffer at bufp that was written there by AGetSBucketData(). We use the datalen_g value returned by AGetSBucketData() as the length of the data.
unsigned long datalen_p; /∗ copied data length ∗/
Audio ∗ audio; /∗ audio connection ∗/
SBucket ∗ sb; /∗ sound bucket∗/
unsigned long startoff; /∗ start offset ∗/
char ∗ bufp; /∗ ptr to buffer ∗/
long status; /∗ error status ∗/
.
.
.
/∗ copy data from buffer to sb ∗/
startoff = 0;
datalen_p = APutSBucketData(audio, sb, startoff, bufp,
datalen_g, &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
APutSBucketData() was developed by HP.
SEE ALSO
ACreateSBucket(3X), ADestroySBucket(3X), AGetSBucketData(3X), ALoadAFile(3X), APlaySBucket(3X), ARecordAData(3X), ASaveSBucket(3X).
Hewlett-Packard Company — Audio Library: February, 1995