Unit Video - Ultibo.org

Return to Unit Reference

Description


Ultibo Video Interface unit

This unit provides both the Video device interface and the generic USB video device driver.

Constants


Video specific constants VIDEO_*

VIDEO_NAME_PREFIX = 'Video'; Name prefix for Video Devices

Video device types VIDEO_TYPE_*

Video device states VIDEO_STATE_*

VIDEO_STATE_DISABLED = 0;  
VIDEO_STATE_ENABLED = 1;  

Video device flags VIDEO_FLAG_*

VIDEO_FLAG_NONE = $00000000;  

Video logging VIDEO_LOG_*

VIDEO_LOG_LEVEL_DEBUG = LOG_LEVEL_DEBUG; Video debugging messages
VIDEO_LOG_LEVEL_INFO = LOG_LEVEL_INFO; Video informational messages, such as a device being attached or detached
VIDEO_LOG_LEVEL_WARN = LOG_LEVEL_WARN; Video warning messages
VIDEO_LOG_LEVEL_ERROR = LOG_LEVEL_ERROR; Video error messages
VIDEO_LOG_LEVEL_NONE = LOG_LEVEL_NONE; No Video messages

Type definitions



Video properties

PVideoProperties = ^TVideoProperties;

TVideoProperties = record

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

Video enumeration callback

TVideoEnumerate = function(Video:PVideoDevice; Data:Pointer):LongWord;

Video notification callback

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

Video device get properties

TVideoDeviceGetProperties = function(Video:PVideoDevice; Properties:PVideoProperties):LongWord;

Video device

PVideoDevice = ^TVideoDevice;

TVideoDevice = record

Device Properties
Device:TDevice; The Device entry for this Video device
Video Properties
VideoId:LongWord; Unique Id of this Video device in the Video device table
VideoState:LongWord; Video device state (eg VIDEO_STATE_ENABLED)
DeviceGetProperties:TVideoDeviceGetProperties; A Device specific DeviceGetProperties method implementing the standard Video device interface (Or nil if the default method is suitable)
Statistics Properties
 
Driver Properties
Lock:TMutexHandle; Device lock
Properties:TVideoProperties; Device properties
Internal Properties
Prev:PVideoDevice; Previous entry in Video device table
Next:PVideoDevice; Next entry in Video device table

Public variables



Video logging

VIDEO_DEFAULT_LOG_LEVEL:LongWord = VIDEO_LOG_LEVEL_DEBUG; Minimum level for Video messages. Only messages with level greater than or equal to this will be printed.
VIDEO_LOG_ENABLED:Boolean;

Function declarations



Initialization functions

procedure VideoInit;

Description: Initialize the Video unit and Video device table

Note Called only during system startup

Video device functions

function VideoDeviceGetProperties(Video:PVideoDevice; Properties:PVideoProperties):LongWord;

Description: Get the properties for the specified Video device

Video The Video device to get properties from
Properties Pointer to a TVideoProperties structure to fill in
Return ERROR_SUCCESS if completed or another error code on failure
function VideoDeviceCreate:PVideoDevice;

Description: Create a new Video device entry

Return Pointer to new Video device entry or nil if Video device could not be created
function VideoDeviceCreateEx(Size:LongWord):PVideoDevice;

Description: Create a new Video device entry

Size Size in bytes to allocate for new Video device (Including the Video device entry)
Return Pointer to new Video device entry or nil if Video device could not be created
function VideoDeviceDestroy(Video:PVideoDevice):LongWord;

Description: Destroy an existing Video device entry

function VideoDeviceRegister(Video:PVideoDevice):LongWord;

Description: Register a new Video device in the Video device table

function VideoDeviceDeregister(Video:PVideoDevice):LongWord;

Description: Deregister a Video device from the Video device table

function VideoDeviceFind(VideoId:LongWord):PVideoDevice;

Description: To be documented

function VideoDeviceFindByName(const Name:String):PVideoDevice; inline;

Description: To be documented

function VideoDeviceFindByDescription(const Description:String):PVideoDevice; inline;

Description: To be documented

function VideoDeviceEnumerate(Callback:TVideoEnumerate; Data:Pointer):LongWord;

Description: To be documented

function VideoDeviceNotification(Video:PVideoDevice; Callback:TVideoNotification; Data:Pointer; Notification,Flags:LongWord):LongWord;

Description: To be documented

Video helper functions

function VideoGetCount:LongWord;

Description: Get the current Video device count

function VideoDeviceGetDefault:PVideoDevice;

Description: Get the current default Video device

function VideoDeviceSetDefault(Video:PVideoDevice):LongWord;

Description: Set the current default Video device

function VideoDeviceCheck(Video:PVideoDevice):PVideoDevice;

Description: Check if the supplied Video device is in the Video device table

procedure VideoLog(Level:LongWord; Video:PVideoDevice; const AText:String);

Description: To be documented

procedure VideoLogInfo(Video:PVideoDevice; const AText:String); inline;

Description: To be documented

procedure VideoLogWarn(Video:PVideoDevice; const AText:String); inline;

Description: To be documented

procedure VideoLogError(Video:PVideoDevice; const AText:String); inline;

Description: To be documented

procedure VideoLogDebug(Video:PVideoDevice; const AText:String); inline;

Description: To be documented

Return to Unit Reference