alIntro(3dm)							  alIntro(3dm)
      alIntro, audio - Introduction to the Silicon Graphics Audio Library (AL)
      #include <dmedia/audio.h>
     -laudio
     The Silicon Graphics Audio	Library	(AL) provides a	uniform, deviceindependent
 programming interface to real-time audio I/O on Silicon
     Graphics workstations.
     The AL was	designed to enable multiple programs to	share the audio
     resources of the workstation. Multiple programs may have input and	output
     streams open concurrently,	either sharing audio devices or	using
     independent audio devices.
     The Audio Library provides	four major capabilities:
	  1. input and output of digital audio data
	  2. control of	the attributes of the digital audio data
	  3. control of	physical parameters of the audio subsystem
	  4. Audio subsystem event notification
     The first two of these capabilities are briefly described in the section
     "Basic I/O." The device control capabilities are described	in the section
     "Resources	and Control." The audio	event notification model is described
     in	the "Audio Events" section.
BASIC I/O
     The basic data types for the Audio	Library	are ALconfig and ALport.  An
     application uses an ALconfig to define the	attributes of the digital
     audio data	it wishes to send or receive. It then opens an ALport, which
     actually writes or	reads the audio	data to	or from	the hardware.
     The Audio Library includes	the following functions:
     alNewConfig(3dm)	      -	create a new ALconfig
     alFreeConfig(3dm)	      -	free ALconfig
     alSetConfig(3dm)	      -	set an ALconfig	on an existing ALport
     alGetConfig(3dm)	      -	get the	ALconfig from an ALport
									Page 1
alIntro(3dm)							  alIntro(3dm)
     alSetQueueSize(3dm)      -	set the	sample queue size for an audio port
     alGetQueueSize(3dm)      -	get the	sample queue size for an audio port
     alSetWidth(3dm)	      -	set the	sample wordsize	for an audio port
     alGetWidth(3dm)	      -	get the	sample wordsize	for an audio port
     alSetSampFmt(3dm)	      -	set the	sample data type and format for	an
			      audio port
     alGetSampFmt(3dm)	      -	get the	sample data type and format for	an
			      audio port
     alSetChannels(3dm)	      -	set the	number of channels for an audio	port
     alGetChannels(3dm)	      -	get the	number of channels for an audio	port
     alSetFloatMax(3dm)	      -	set the	max. amplitude of floating point data
			      for an AL	port
     alGetFloatMax(3dm)	      -	get the	max. amplitude of floating point data
			      for an AL	port
     alSetLimiting(3dm)	      -	specify	if limiting is required	for floatingpoint
 data
     alGetLimiting(3dm)	      -	determine whether or not limiting is specified
			      for an ALconfig
     alOpenPort(3dm)	      -	open an	audio port and begin I/O
     alClosePort(3dm)	      -	close an audio port and	stop I/O
     alGetFilled(3dm)	      -	get number of filled spots in an audio port
     alGetFillable(3dm)	      -	get number of fillable spots in	an audio port
     alReadFrames(3dm)	      -	read interleaved sample	frames from an audio
			      port
     alWriteFrames(3dm)	      -	write interleaved sample frames	to an audio
			      port
     alZeroFrames(3dm)	      -	write zero-valued sample-frames	to an output
			      audio port
     alDiscardFrames(3dm)     -	discard	data from an input or output audio
			      port
									Page 2
alIntro(3dm)							  alIntro(3dm)
     alReadBuffers(3dm)	      -	read flexibly interleaved or non-interleaved
			      sample frames from an audio port
     alWriteBuffers(3dm)      -	write flexibly interleaved or non-interleaved
			      sample frames to an audio	port
     alGetFD(3dm)	      -	get a file descriptor for an audio port, so
			      that one can use select(2) or poll(2) to block
			      waiting for a fillpoint
     alSetFillPoint(3dm)      -	define audio port high-/low-water mark
			      (fillpoint) to unblock application
     alGetFillPoint(3dm)      -	get the	current	fillpoint from an audio	port.
     alGetFrameNumber(3dm)    -	get the	absolute sample	frame number
			      associated with a	port
     alGetFrameTime(3dm)      -	get the	time at	which a	sample frame came in
			      or will go out
RESOURCES AND CONTROL    [Toc]    [Back]     The AL manages a number of	hardware and software entities called
     resources (see alResources(3dm) for a more	detailed description).
     Resources include devices,	ports, clock generators, master	clocks,
     connections, interfaces, subsystems, and the system resource.
     Applications can acquire or change	the state of the audio resources
     through the following functions:
     alParams(3dm)
	  - general information	about AL parameters
     alGetParams(3dm)
	  - get	parameter values from an audio resource
     alSetParams(3dm)
	  - set	parameter values on an audio resource
     alGetParamInfo(3dm)
	  - find out what kinds	of values a parameter can have on a specific
	  resource
     alQueryValues(3dm)
	  - find the set of possible values for	a discrete-valued parameter
     alIsSubtype(3dm)
	  - determine if one resource type is a	subtype	of another
     alGetResourceByName(3dm)
	  - find a resource with a given name
									Page 3
alIntro(3dm)							  alIntro(3dm)
     alConnect(3dm)
	  - connect the	output of one audio I/O	resource to the	input of
	  another
     alDisconnect(3dm)
	  - disconnect one audio I/O resource from another
     The AL provides event notification	for applications interested in
     monitoring	audio system changes.  An audio	event is represented by	an
     ALevent structure.	 This structure	includes the parameter which changed
     of	event, the new parameter value in many cases, the time at which	the
     event was posted, and the sources of the event. Events are	delivered to
     each application via an ALeventQueue. Following is	the list of eventrelated
 functions:
     alOpenEventQueue(3dm)
	  - Allocate and initialize an event queue
     alCloseEventQueue(3dm)
	  - Deallocate a previously initialized	event queue
     alNewEvent(3dm)
	  - Allocate and initialize an event
     alFreeEvent(3dm)
	  - Deallocate a previously initialized	event
     alSelectEvents(3dm)
	  - Select events to be	received into event queue
     alDeselectEvents(3dm)
	  - Deselect events from event queue
     alGetEventQueueFD(3dm)
	  - Get	file descriptor	of event queue
     alNextEvent(3dm)
	  - Retrieves the next event from an event queue
     alCheckEvent(3dm)
	  - Check for a	particular event in an event queue
     alPendingEvents(3dm)
	  - Get	the number of pending events in	an event queue
     alFlushEvents(3dm)
	  - Flush all events from event	queue
     alGetEventParam(3dm)
	  - Returns the	event parameter
									Page 4
alIntro(3dm)							  alIntro(3dm)
     alGetEventResource(3dm)
	  - Returns the	id of the resource that	posted the event
     alGetEventSrcResource(3dm)
	  - Returns the	id of the resource that	generated the event
     alGetEventUST(3dm)
	  - Returns the	Unadjusted System Time of an event
     alGetEventValue(3dm)
	  - Return the new value of the	event parameter
     alGetEventData(3dm)
	  - Returns a pointer to an event info struct
     alGetErrorString(3dm)
	  - get	a text message associated with an AL error return code
     alDoubleToFixed(3dm)
	  - convert from double-precision to AL-format fixed-point
     alFixedToDouble(3dm)
	  - convert from AL-format fixed-point to double-precision
     alSetErrorHandler(3dm)
	  - specify a user-defined error handler, if desired
     /usr/include/dmedia/audio.h	- Audio	Library	header file
     /usr/share/src/dmedia/audio/*	- code examples
     /usr/share/src/dmedia/soundcommands/*   - code examples
     /usr/share/src/dmedia/soundplayer/*     - code examples
     DOCUMENTATION:
	  Digital Media	Programming Guide: Audio, MIDI,	Video, and Compression
     RELATED LIBRARIES:
	  AFintro(3dm) - Introduction to the Audio File	Library
	  CDaudio(3) - Introduction to the audio Compact Disc library
	  DATaudio(3) -	Introduction to	the Digital Audio Tape Library
									Page 5
alIntro(3dm)							  alIntro(3dm)
	  mdIntro(3dm) - Introduction to the Silicon Graphics MIDI Library
	  (libmd)
     IRIX Real-time Support:
	  select(2), sproc(2), setitimer(2), schedctl(2), prctl(2), poll(2),
	  mpin(2)
									PPPPaaaaggggeeee 6666 [ Back ]
 |