Difference between revisions of "Unit Audio"

From Ultibo.org
Jump to: navigation, search
Line 84: Line 84:
 
----
 
----
  
''To be documented''
+
 
 +
'''Audio properties'''
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PAudioProperties = ^TAudioProperties;</code>
 +
 
 +
<code>TAudioProperties = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
| <code>Flags:LongWord;</code>
 +
| Device flags (eg AUDIO_FLAG_????)
 +
|-
 +
|}
 +
</div></div>
 +
 
 +
'''Audio enumeration callback'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>TAudioEnumerate = function(Audio:PAudioDevice; Data:Pointer):LongWord;</code>
 +
| style="width: 40%;"|
 +
|-
 +
|}
 +
 
 +
'''Audio notification callback'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>TAudioNotification = function(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;</code>
 +
| style="width: 40%;"|
 +
|-
 +
|}
 +
 
 +
'''Audio device get properties'''
 +
 
 +
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 +
|-
 +
| <code>TAudioDeviceGetProperties = function(Audio:PAudioDevice; Properties:PAudioProperties):LongWord;</code>
 +
| style="width: 40%;"|
 +
|-
 +
|}
 +
 
 +
'''Audio device'''
 +
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
 +
<code>PAudioDevice = ^TAudioDevice;</code>
 +
 
 +
<code>TAudioDevice = record</code>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
|colspan="2"|''Device Properties''
 +
|-
 +
| <code>Device:TDevice;</code>
 +
| The Device entry for this Audio device
 +
|-
 +
|colspan="2"|''Audio Properties''
 +
|-
 +
| <code>AudioId:LongWord;</code>
 +
| Unique Id of this Audio device in the Audio device table
 +
|-
 +
| <code>AudioState:LongWord;</code>
 +
| Audio device state (eg AUDIO_STATE_ENABLED)
 +
|-
 +
| <code>DeviceGetProperties:TAudioDeviceGetProperties;</code>
 +
| A Device specific DeviceGetProperties method implementing the standard Audio device interface (Or nil if the default method is suitable)
 +
|-
 +
|colspan="2"|''Driver Properties''
 +
|-
 +
| <code>Lock:TMutexHandle;</code>
 +
| Device lock
 +
|-
 +
| <code>Properties:TAudioProperties;</code>
 +
| Device properties
 +
|-
 +
|colspan="2"|''Internal Properties''
 +
|-
 +
| <code>Prev:PAudioDevice;</code>
 +
| Previous entry in Audio device table
 +
|-
 +
| <code>Next:PAudioDevice;</code>
 +
| Next entry in Audio device table
 +
|-
 +
|}
 +
</div></div>
 +
<br />
  
 
=== Public variables ===
 
=== Public variables ===

Revision as of 03:38, 19 June 2017

Return to Unit Reference


Description


Ultibo Audio interface unit

This unit provides both the Audio device interface and the generic USB audio device driver.

Constants



Audio specific constants AUDIO_*
AUDIO_NAME_PREFIX = 'Audio'; Name prefix for Audio Devices


Audio device types AUDIO_TYPE_*
AUDIO_TYPE_NONE = 0;  


Audio device states AUDIO_STATE_*
AUDIO_STATE_DISABLED = 0;  
AUDIO_STATE_ENABLED = 1;  


Audio device flags AUDIO_FLAG_*
AUDIO_FLAG_NONE = $00000000;  


Audio logging AUDIO_LOG_*
AUDIO_LOG_LEVEL_DEBUG = LOG_LEVEL_DEBUG; Audio debugging messages
AUDIO_LOG_LEVEL_INFO = LOG_LEVEL_INFO; Audio informational messages, such as a device being attached or detached
AUDIO_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR; Audio error messages
AUDIO_LOG_LEVEL_NONE = LOG_LEVEL_NONE; No Audio messages


Type definitions



Audio properties

PAudioProperties = ^TAudioProperties;

TAudioProperties = record

Flags:LongWord; Device flags (eg AUDIO_FLAG_????)

Audio enumeration callback

TAudioEnumerate = function(Audio:PAudioDevice; Data:Pointer):LongWord;

Audio notification callback

TAudioNotification = function(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;

Audio device get properties

TAudioDeviceGetProperties = function(Audio:PAudioDevice; Properties:PAudioProperties):LongWord;

Audio device

PAudioDevice = ^TAudioDevice;

TAudioDevice = record

Device Properties
Device:TDevice; The Device entry for this Audio device
Audio Properties
AudioId:LongWord; Unique Id of this Audio device in the Audio device table
AudioState:LongWord; Audio device state (eg AUDIO_STATE_ENABLED)
DeviceGetProperties:TAudioDeviceGetProperties; A Device specific DeviceGetProperties method implementing the standard Audio device interface (Or nil if the default method is suitable)
Driver Properties
Lock:TMutexHandle; Device lock
Properties:TAudioProperties; Device properties
Internal Properties
Prev:PAudioDevice; Previous entry in Audio device table
Next:PAudioDevice; Next entry in Audio device table


Public variables


To be documented

Function declarations


To be documented


Return to Unit Reference