Difference between revisions of "Unit I2S"

From Ultibo.org
Jump to: navigation, search
Line 211: Line 211:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 226: Line 226:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 238: Line 238:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new I2S entry or nil if I2S could not be created
 
| Pointer to new I2S entry or nil if I2S could not be created
 
|-
 
|-
Line 250: 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 I2S (Including the I2S entry)
 
| Size in bytes to allocate for new I2S (Including the I2S entry)
 
|-
 
|-
! '''Return'''
+
! Return
 
| Pointer to new I2S entry or nil if I2S could not be created
 
| Pointer to new I2S entry or nil if I2S could not be created
 
|-
 
|-
Line 265: 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 277: 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 289: 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 301: 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 313: 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 325: 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 337: 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 349: 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 364: Line 364:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 376: Line 376:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 388: 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 400: 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 412: 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 424: Line 424:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 436: Line 436:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-
Line 448: 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 460: Line 460:
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
{| class="wikitable" style="font-size: 14px; background: white;"
 
|-
 
|-
! '''Note'''
+
! Note
 
| None documented
 
| None documented
 
|-
 
|-

Revision as of 04:01, 20 April 2018

Return to Unit Reference


Description


Ultibo I2S/PCM interface unit

To be documented

Constants



I2S specific constants I2S_*
I2S_NAME_PREFIX = 'I2S'; Name prefix for I2S Devices


I2S device types I2S_TYPE_*
I2S_TYPE_NONE = 0;  


I2S device states I2S_STATE_*
I2S_STATE_DISABLED = 0;  
I2S_STATE_ENABLED = 1;  


I2S device flags I2S_FLAG_*
I2S_FLAG_NONE = $00000000;  


I2S logging I2S_LOG_*
I2S_LOG_LEVEL_DEBUG = LOG_LEVEL_DEBUG; I2S debugging messages
I2S_LOG_LEVEL_INFO = LOG_LEVEL_INFO; I2S informational messages, such as a device being attached or detached
I2S_LOG_LEVEL_WARN = LOG_LEVEL_WARN; I2S warning messages
I2S_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR; I2S error messages
I2S_LOG_LEVEL_NONE = LOG_LEVEL_NONE; No I2S messages


Type definitions



I2S properties

PI2SProperties = ^TI2SProperties;

TI2SProperties = record

   

I2S enumeration callback

TI2SEnumerate = function(I2S:PI2SDevice; Data:Pointer):LongWord;

I2S notification callback

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

I2S device get properties

TI2SDeviceGetProperties = function(I2S:PI2SDevice; Properties:PI2SProperties):LongWord;

I2S device

PI2SDevice = ^TI2SDevice;

TI2SDevice = record

Device Properties
Device:TDevice; The Device entry for this I2S
I2S Properties
I2SId:LongWord; Unique Id of this I2S in the I2S table
I2SState:LongWord; I2S state (eg I2S_STATE_ENABLED)
DeviceGetProperties:TI2SDeviceGetProperties; A Device specific DeviceGetProperties method implementing the standard I2S device interface
Statistics Properties
 
Driver Properties
Lock:TMutexHandle; Device lock
Properties:TI2SProperties; Device properties
Internal Properties
Prev:PI2SDevice; Previous entry in I2S table
Next:PI2SDevice; Next entry in I2S table


Public variables



I2S logging

I2S_DEFAULT_LOG_LEVEL:LongWord = I2S_LOG_LEVEL_DEBUG; Minimum level for I2S messages. Only messages with level greater than or equal to this will be printed.
I2S_LOG_ENABLED:Boolean;


Function declarations



Initialization functions

procedure I2SInit;
Description: To be documented
Note None documented


I2S functions

function I2SDeviceGetProperties(I2S:PI2SDevice; Properties:PI2SProperties):LongWord;
Description: To be documented
Note None documented


function I2SDeviceCreate:PI2SDevice;
Description: Create a new I2S entry
Return Pointer to new I2S entry or nil if I2S could not be created


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


function I2SDeviceDestroy(I2S:PI2SDevice):LongWord;
Description: Destroy an existing I2S entry
Note None documented


function I2SDeviceRegister(I2S:PI2SDevice):LongWord;
Description: Register a new I2S in the I2S table
Note None documented


function I2SDeviceDeregister(I2S:PI2SDevice):LongWord;
Description: Deregister a I2S from the I2S table
Note None documented


function I2SDeviceFind(I2SId:LongWord):PI2SDevice;
Description: To be documented
Note None documented


function I2SDeviceFindByName(const Name:String):PI2SDevice; inline;
Description: To be documented
Note None documented


function I2SDeviceFindByDescription(const Description:String):PI2SDevice; inline;
Description: To be documented
Note None documented


function I2SDeviceEnumerate(Callback:TI2SEnumerate; Data:Pointer):LongWord;
Description: To be documented
Note None documented


function I2SDeviceNotification(I2S:PI2SDevice; Callback:TI2SNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;
Description: To be documented
Note None documented


I2S helper functions

function I2SGetCount:LongWord; inline;
Description: Get the current I2S count
Note None documented


function I2SDeviceGetDefault:PI2SDevice; inline;
Description: Get the current default I2S device
Note None documented


function I2SDeviceSetDefault(I2S:PI2SDevice):LongWord;
Description: Set the current default I2S device
Note None documented


function I2SDeviceCheck(I2S:PI2SDevice):PI2SDevice;
Description: Check if the supplied I2S is in the I2S table
Note None documented


procedure I2SLog(Level:LongWord; I2S:PI2SDevice; const AText:String);
Description: To be documented
Note None documented


procedure I2SLogInfo(I2S:PI2SDevice; const AText:String); inline;
Description: To be documented
Note None documented


procedure I2SLogWarn(I2S:PI2SDevice; const AText:String); inline;
Description: To be documented
Note None documented


procedure I2SLogError(I2S:PI2SDevice; const AText:String); inline;
Description: To be documented
Note None documented


procedure I2SLogDebug(I2S:PI2SDevice; const AText:String); inline;
Description: To be documented
Note None documented


Return to Unit Reference