Difference between revisions of "Unit Codec"

From Ultibo.org
Jump to: navigation, search
 
(26 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
----
 
----
  
'''Ultibo Codec interface unit'''
+
'''Ultibo Codec Interface unit'''
 
+
''To be documented''
+
  
 
=== Constants ===
 
=== Constants ===
Line 25: Line 23:
 
<br />  
 
<br />  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''Codec device type constants''' <code> CODEC_TYPE_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Codec device type''' <code> CODEC_TYPE_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 36: Line 34:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''Codec device state constants''' <code> CODEC_STATE_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Codec device state''' <code> CODEC_STATE_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 50: Line 48:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''Codec device flag constants''' <code> CODEC_FLAG_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Codec device flag''' <code> CODEC_FLAG_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 61: Line 59:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 20px; padding-bottom: 15px;">
<div style="font-size: 14px; padding-left: 12px;">'''Codec logging constants''' <code> CODEC_LOG_* </code></div>
+
<div style="font-size: 14px; padding-left: 12px;">'''Codec logging''' <code> CODEC_LOG_* </code></div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 70: Line 68:
 
| <code>CODEC_LOG_LEVEL_INFO = LOG_LEVEL_INFO;</code>
 
| <code>CODEC_LOG_LEVEL_INFO = LOG_LEVEL_INFO;</code>
 
| Codec informational messages, such as a device being attached or detached
 
| Codec informational messages, such as a device being attached or detached
 +
|-
 +
| <code>CODEC_LOG_LEVEL_WARN = LOG_LEVEL_WARN;</code>
 +
| Codec warning messages
 
|-
 
|-
 
| <code>CODEC_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR;</code>
 
| <code>CODEC_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR;</code>
Line 87: Line 88:
 
'''Codec properties'''
 
'''Codec properties'''
  
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
<pre style="border: 0; padding-bottom:0px;">PCodecProperties = ^TCodecProperties;
+
<code>PCodecProperties = ^TCodecProperties;</code>
TCodecProperties = record</pre>
+
 
 +
<code>TCodecProperties = record</code>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
Line 103: Line 105:
 
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>TCodecEnumerate = function(Codec:PCodecDevice;Data:Pointer):LongWord;</code>
+
| <code>TCodecEnumerate = function(Codec:PCodecDevice; Data:Pointer):LongWord;</code>
 
| style="width: 40%;"|
 
| style="width: 40%;"|
 
|-
 
|-
Line 112: Line 114:
 
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>TCodecNotification = function(Device:PDevice;Data:Pointer;Notification:LongWord):LongWord;</code>
+
| <code>TCodecNotification = function(Device:PDevice; Data:Pointer; Notification:LongWord):LongWord;</code>
 
| style="width: 40%;"|
 
| style="width: 40%;"|
 
|-
 
|-
 
|}
 
|}
  
'''Codec device properties'''
+
'''Codec device get properties'''
  
 
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
{| class="wikitable" style="font-size: 14px; text-align: left; width: 100%; height: 50px;"
 
|-
 
|-
| <code>TCodecDeviceProperties = function(Codec:PCodecDevice;Properties:PCodecProperties):LongWord;</code>
+
| <code>TCodecDeviceGetProperties = function(Codec:PCodecDevice; Properties:PCodecProperties):LongWord;</code>
 
| style="width: 40%;"|
 
| style="width: 40%;"|
 
|-
 
|-
Line 146: Line 148:
 
|-
 
|-
 
| <code>CodecState:LongWord;</code>
 
| <code>CodecState:LongWord;</code>
| Codec dveice state (eg CODEC_STATE_ENABLED)
+
| Codec device state (eg CODEC_STATE_ENABLED)
 
|-
 
|-
| <code>DeviceProperties:TCodecDeviceProperties;</code>
+
| <code>DeviceGetProperties:TCodecDeviceGetProperties;</code>
| A Device specific DeviceProperties method implementing the standard Codec device interface (Or nil if the default method is suitable)
+
| A Device specific DeviceGetProperties method implementing the standard Codec device interface (Or nil if the default method is suitable)
|-
+
|colspan="2"|''Driver Properties''
+
|-
+
| <code>Lock:TMutexHandle;</code>
+
| Device lock
+
|-
+
| <code>Properties:TCodecProperties;</code>
+
| Device properties
+
|-
+
|colspan="2"|''Internal Properties''
+
|-
+
| <code>Prev:PCodecDevice;</code>
+
| Previous entry in Codec device table
+
|-
+
| <code>Next:PCodecDevice;</code>
+
| Next entry in Codec device table
+
|-
+
|}
+
</div></div>
+
<br />
+
 
+
'''Codec device'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
<code>PCodecDevice = ^TCodecDevice;
+
 
+
TCodecDevice = 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 Codec device
+
|-
+
|colspan="2"|''Codec Properties''
+
|-
+
| <code>CodecId:LongWord;</code>
+
| Unique Id of this Codec device in the Codec device table
+
|-
+
| <code>CodecState:LongWord;</code>
+
| Codec dveice state (eg CODEC_STATE_ENABLED)
+
|-
+
| <code>DeviceProperties:TCodecDeviceProperties;</code>
+
| A Device specific DeviceProperties method implementing the standard Codec device interface (Or nil if the default method is suitable)
+
|-
+
|colspan="2"|''Driver Properties''
+
|-
+
| <code>Lock:TMutexHandle;</code>
+
| Device lock
+
|-
+
| <code>Properties:TCodecProperties;</code>
+
| Device properties
+
|-
+
|colspan="2"|''Internal Properties''
+
|-
+
| <code>Prev:PCodecDevice;</code>
+
| Previous entry in Codec device table
+
|-
+
| <code>Next:PCodecDevice;</code>
+
| Next entry in Codec device table
+
|-
+
|}
+
</div></div>
+
<br />
+
 
+
'''Codec device'''
+
 
+
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial;">
+
PCodecDevice = ^TCodecDevice;
+
 
+
TCodecDevice = record
+
<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 Codec device
+
|-
+
|colspan="2"|''Codec Properties''
+
|-
+
| <code>CodecId:LongWord;</code>
+
| Unique Id of this Codec device in the Codec device table
+
|-
+
| <code>CodecState:LongWord;</code>
+
| Codec dveice state (eg CODEC_STATE_ENABLED)
+
|-
+
| <code>DeviceProperties:TCodecDeviceProperties;</code>
+
| A Device specific DeviceProperties method implementing the standard Codec device interface (Or nil if the default method is suitable)
+
 
|-
 
|-
 
|colspan="2"|''Driver Properties''
 
|colspan="2"|''Driver Properties''
Line 270: Line 182:
 
|-
 
|-
 
| <code>CODEC_DEFAULT_LOG_LEVEL:LongWord = CODEC_LOG_LEVEL_DEBUG;</code>
 
| <code>CODEC_DEFAULT_LOG_LEVEL:LongWord = CODEC_LOG_LEVEL_DEBUG;</code>
| style="width: 65%;"|Minimum level for Codec messages. Only messages with level greater than or equal to this will be printed.
+
| style="width: 40%;"|Minimum level for Codec messages. Only messages with level greater than or equal to this will be printed.
 
|-
 
|-
 
|}
 
|}
Line 276: Line 188:
 
|-
 
|-
 
| <code>CODEC_LOG_ENABLED:Boolean;</code>
 
| <code>CODEC_LOG_ENABLED:Boolean;</code>
| style="width: 65%;"|
+
| style="width: 40%;"|
 
|-
 
|-
 
|}
 
|}
Line 293: Line 205:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| Called only during system startup
 
| Called only during system startup
 
|-
 
|-
Line 303: Line 215:
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function CodecDeviceProperties(Codec:PCodecDevice; Properties:PCodecProperties):LongWord;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function CodecDeviceGetProperties(Codec:PCodecDevice; Properties:PCodecProperties):LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the properties for the specified Codec device</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the properties for the specified Codec device</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Codec'''
+
! Codec
 
| The Codec device to get properties from
 
| The Codec device to get properties from
 
|-
 
|-
! '''Properties'''
+
! Properties
 
| Pointer to a TCodecProperties structure to fill in
 
| Pointer to a TCodecProperties structure to fill in
 
|-
 
|-
! '''Return'''
+
! Return
 
| ERROR_SUCCESS if completed or another error code on failure
 
| ERROR_SUCCESS if completed or another error code on failure
 
|-
 
|-
Line 326: Line 238:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Codec device entry or nil if Codec device could not be created
 
| Pointer to new Codec device entry or nil if Codec device could not be created
 
|-
 
|-
Line 338: Line 250:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Size'''
+
! Size
 
| Size in bytes to allocate for new Codec device (Including the Codec device entry)
 
| Size in bytes to allocate for new Codec device (Including the Codec device entry)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new Codec device entry or nil if Codec device could not be created
 
| Pointer to new Codec device entry or nil if Codec device could not be created
 
|-
 
|-
Line 353: Line 265:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 365: Line 277:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 377: Line 289:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 389: Line 301:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 401: Line 313:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 413: Line 325:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 425: Line 337:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 437: Line 349:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 447: Line 359:
  
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function CodecGetCount:LongWord; inline;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function CodecGetCount:LongWord;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current Codec device count</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current Codec device count</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 459: Line 371:
 
<br />
 
<br />
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
<pre style="border: 0; padding-bottom:0px;">function CodecDeviceGetDefault:PCodecDevice; inline;</pre>
+
<pre style="border: 0; padding-bottom:0px;">function CodecDeviceGetDefault:PCodecDevice;</pre>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current default Codec device</div>
 
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' Get the current default Codec device</div>
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 476: Line 388:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 488: Line 400:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 500: Line 412:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 512: Line 424:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 +
| None documented
 +
|-
 +
|}
 +
</div></div>
 +
<br />
 +
<div class="toccolours mw-collapsible mw-collapsed" style="border: 1; font-family: arial; padding-top: 0px; padding-bottom: 15px;">
 +
<pre style="border: 0; padding-bottom:0px;">procedure CodecLogWarn(Codec:PCodecDevice; const AText:String); inline;</pre>
 +
<div style="font-size: 14px; padding-left: 12px;">'''Description:''' To be documented</div>
 +
<div class="mw-collapsible-content" style="text-align: left; padding-left: 5px;">
 +
{| class="wikitable" style="font-size: 14px; background: white;"
 +
|-
 +
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 524: Line 448:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 536: Line 460:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-

Latest revision as of 04:03, 15 December 2022

Return to Unit Reference


Description


Ultibo Codec Interface unit

Constants



Codec specific constants CODEC_*
CODEC_NAME_PREFIX = 'Codec'; Name prefix for Codec Devices


Codec device type CODEC_TYPE_*
CODEC_TYPE_NONE = 0;  


Codec device state CODEC_STATE_*
CODEC_STATE_DISABLED = 0;  
CODEC_STATE_ENABLED = 1;  


Codec device flag CODEC_FLAG_*
CODEC_FLAG_NONE = $00000000;  


Codec logging CODEC_LOG_*
CODEC_LOG_LEVEL_DEBUG = LOG_LEVEL_DEBUG; Codec debugging messages
CODEC_LOG_LEVEL_INFO = LOG_LEVEL_INFO; Codec informational messages, such as a device being attached or detached
CODEC_LOG_LEVEL_WARN = LOG_LEVEL_WARN; Codec warning messages
CODEC_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR; Codec error messages
CODEC_LOG_LEVEL_NONE = LOG_LEVEL_NONE; No Codec messages


Type definitions



Codec properties

PCodecProperties = ^TCodecProperties;

TCodecProperties = record

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

Codec enumeration callback

TCodecEnumerate = function(Codec:PCodecDevice; Data:Pointer):LongWord;

Codec notification callback

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

Codec device get properties

TCodecDeviceGetProperties = function(Codec:PCodecDevice; Properties:PCodecProperties):LongWord;

Codec device

PCodecDevice = ^TCodecDevice;

TCodecDevice = record

Device Properties
Device:TDevice; The Device entry for this Codec device
Codec Properties
CodecId:LongWord; Unique Id of this Codec device in the Codec device table
CodecState:LongWord; Codec device state (eg CODEC_STATE_ENABLED)
DeviceGetProperties:TCodecDeviceGetProperties; A Device specific DeviceGetProperties method implementing the standard Codec device interface (Or nil if the default method is suitable)
Driver Properties
Lock:TMutexHandle; Device lock
Properties:TCodecProperties; Device properties
Internal Properties
Prev:PCodecDevice; Previous entry in Codec device table
Next:PCodecDevice; Next entry in Codec device table


Public variables



Codec logging

CODEC_DEFAULT_LOG_LEVEL:LongWord = CODEC_LOG_LEVEL_DEBUG; Minimum level for Codec messages. Only messages with level greater than or equal to this will be printed.
CODEC_LOG_ENABLED:Boolean;


Function declarations



Initialization functions

procedure CodecInit;
Description: Initialize the Codec unit and Codec device table
Note Called only during system startup


Codec device functions

function CodecDeviceGetProperties(Codec:PCodecDevice; Properties:PCodecProperties):LongWord;
Description: Get the properties for the specified Codec device
Codec The Codec device to get properties from
Properties Pointer to a TCodecProperties structure to fill in
Return ERROR_SUCCESS if completed or another error code on failure


function CodecDeviceCreate:PCodecDevice;
Description: Create a new Codec device entry
Return Pointer to new Codec device entry or nil if Codec device could not be created


function CodecDeviceCreateEx(Size:LongWord):PCodecDevice;
Description: Create a new Codec device entry
Size Size in bytes to allocate for new Codec device (Including the Codec device entry)
Return Pointer to new Codec device entry or nil if Codec device could not be created


function CodecDeviceDestroy(Codec:PCodecDevice):LongWord;
Description: Destroy an existing Codec device entry
Note None documented


function CodecDeviceRegister(Codec:PCodecDevice):LongWord;
Description: Register a new Codec device in the Codec device table
Note None documented


function CodecDeviceDeregister(Codec:PCodecDevice):LongWord;
Description: Deregister an Codec device from the Codec device table
Note None documented


function CodecDeviceFind(CodecId:LongWord):PCodecDevice;
Description: To be documented
Note None documented


function CodecDeviceFindByName(const Name:String):PCodecDevice; inline;
Description: To be documented
Note None documented


function CodecDeviceFindByDescription(const Description:String):PCodecDevice; inline;
Description: To be documented
Note None documented


function CodecDeviceEnumerate(Callback:TCodecEnumerate; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function CodecDeviceNotification(Codec:PCodecDevice; Callback:TCodecNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Description: To be documented
Note None documented


Codec helper functions

function CodecGetCount:LongWord;
Description: Get the current Codec device count
Note None documented


function CodecDeviceGetDefault:PCodecDevice;
Description: Get the current default Codec device
Note None documented


function CodecDeviceSetDefault(Codec:PCodecDevice):LongWord; 
Description: Set the current default Codec device
Note None documented


function CodecDeviceCheck(Codec:PCodecDevice):PCodecDevice;
Description: Check if the supplied Codec device is in the Codec device table
Note None documented


procedure CodecLog(Level:LongWord; Codec:PCodecDevice; const AText:String);
Description: To be documented
Note None documented


procedure CodecLogInfo(Codec:PCodecDevice; const AText:String); inline;
Description: To be documented
Note None documented


procedure CodecLogWarn(Codec:PCodecDevice; const AText:String); inline;
Description: To be documented
Note None documented


procedure CodecLogError(Codec:PCodecDevice; const AText:String); inline;
Description: To be documented
Note None documented


procedure CodecLogDebug(Codec:PCodecDevice; const AText:String); inline;
Description: To be documented
Note None documented


Return to Unit Reference