Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ AGetSBucket(3X) — HP-UX ANSI C A.10.11

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ACreateSBucket(3X)

ADestroySBucket(3X)

ALoadAFile(3X)

APlaySBucket(3X)

APutSBucketData(3X)

ARecordAData(3X)

ASaveSBucket(3X)

AGetSBucketData(3X)

NAME

AGetSBucketData − copy audio data in sound bucket to buffer; return number of bytes

SYNOPSIS

#include <Alib.h> unsigned long
AGetSBucketData (

Audio ∗  audio,

SBucket ∗  sb,

unsigned long start_offset,

char ∗  buffer,

unsigned long buf_len,

long ∗  status_return );

DESCRIPTION

AGetSBucketData() copies the audio data in the specified sound bucket to the specified buffer and returns the number of bytes copied. 

This call is used only when the application needs to manipulate the sound bucket data directly. 

audio specifies the Audio structure associated with this connection. 

sb specifies the sound bucket containing the data to be copied. 

start_offset specifies the starting point of the copy, given as the byte offset from the beginning of the data. 

buffer specifies the buffer to receive the copied data. 

buf_len specifies the maximum length of 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, AGetSBucket() 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). 

20  AEBadSoundBucket The sound bucket parameter does not point to a valid sound bucket. 

EXAMPLES

The following example copies the audio data contained in sb to the buffer at bufp and returns the number of bytes that were copied. In this example, we allocate 80000 bytes for the buffer, and pass this size value in buflen. 

unsigned long datalen_g;  /∗ copied get_data length ∗/

Audio ∗ audio;  /∗ audio connection ∗/

SBucket ∗ sb;  /∗ sound bucket∗/

unsigned long startoff;  /∗ start offset ∗/

char ∗ bufp;  /∗ ptr to buffer ∗/

unsigned long buflen;  /∗ length of buffer ∗/

long status;  /∗ error status ∗/

. 
.
.

/∗ copy sound bucket data to buffer ∗/

startoff = 0;

bufp = malloc(80000);

buflen = 80000;

datalen_g = AGetSBucketData(audio, sb, startoff, bufp,
        buflen, &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

AGetSBucketData() was developed by HP. 

SEE ALSO

ACreateSBucket(3X), ADestroySBucket(3X), ALoadAFile(3X), APlaySBucket(3X), APutSBucketData(3X), ARecordAData(3X), ASaveSBucket(3X). 

Hewlett-Packard Company  —  Audio Library: February, 1995

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026