Difference between revisions of "Unit Codec"
From Ultibo.org
Line 207: | Line 207: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| Called only during system startup | | Called only during system startup | ||
|- | |- | ||
Line 222: | Line 222: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Codec |
| The Codec device to get properties from | | The Codec device to get properties from | ||
|- | |- | ||
− | ! | + | ! Properties |
| Pointer to a TCodecProperties structure to fill in | | Pointer to a TCodecProperties structure to fill in | ||
|- | |- | ||
− | ! | + | ! Return |
| ERROR_SUCCESS if completed or another error code on failure | | ERROR_SUCCESS if completed or another error code on failure | ||
|- | |- | ||
Line 240: | Line 240: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! 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 252: | Line 252: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! 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 |
| 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 267: | Line 267: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 279: | Line 279: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 291: | Line 291: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 303: | Line 303: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 315: | Line 315: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 327: | Line 327: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 339: | Line 339: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 351: | Line 351: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 366: | Line 366: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 378: | Line 378: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 390: | Line 390: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 402: | Line 402: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 414: | Line 414: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 426: | Line 426: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 438: | Line 438: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 450: | Line 450: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- | ||
Line 462: | Line 462: | ||
{| class="wikitable" style="font-size: 14px; background: white;" | {| class="wikitable" style="font-size: 14px; background: white;" | ||
|- | |- | ||
− | ! | + | ! Note |
| None documented | | None documented | ||
|- | |- |
Revision as of 00:42, 20 April 2018
Return to Unit Reference
Description
Ultibo Codec interface unit
To be documented
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; inline;
Description: Get the current Codec device count
Note | None documented |
---|
function CodecDeviceGetDefault:PCodecDevice; inline;
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