Reference Manual - 0.9.25
DirectFB Types

DFBResult
  DFB_OK No error occured.
  DFB_FAILURE A general or unknown error occured.
  DFB_INIT A general initialization error occured.
  DFB_BUG Internal bug or inconsistency has been detected.
  DFB_DEAD Interface has a zero reference counter (available in debug mode).
  DFB_UNSUPPORTED The requested operation or an argument is (currently) not supported.
  DFB_UNIMPLEMENTED The requested operation is not implemented, yet.
  DFB_ACCESSDENIED Access to the resource is denied.
  DFB_INVARG An invalid argument has been specified.
  DFB_NOSYSTEMMEMORY There's not enough system memory.
  DFB_NOVIDEOMEMORY There's not enough video memory.
  DFB_LOCKED The resource is (already) locked.
  DFB_BUFFEREMPTY The buffer is empty.
  DFB_FILENOTFOUND The specified file has not been found.
  DFB_IO A general I/O error occured.
  DFB_BUSY The resource or device is busy.
  DFB_NOIMPL No implementation for this interface or content type has been found.
  DFB_MISSINGFONT No font has been set.
  DFB_TIMEOUT The operation timed out.
  DFB_MISSINGIMAGE No image has been set.
  DFB_THIZNULL 'thiz' pointer is NULL.
  DFB_IDNOTFOUND No resource has been found by the specified id.
  DFB_INVAREA An invalid area has been specified or detected.
  DFB_DESTROYED The underlying object (e.g. a window or surface) has been destroyed.
  DFB_FUSION Internal fusion error detected, most likely related to IPC resources.
  DFB_BUFFERTOOLARGE Buffer is too large.
  DFB_INTERRUPTED The operation has been interrupted.
  DFB_NOCONTEXT No context available.
  DFB_TEMPUNAVAIL Temporarily unavailable.
  DFB_LIMITEXCEEDED Attempted to exceed limit, i.e. any kind of maximum size, count etc.
  DFB_NOSUCHMETHOD Requested method is not known to remote site.
  DFB_NOSUCHINSTANCE Requested instance is not known to remote site.
  DFB_ITEMNOTFOUND No such item found.
  DFB_VERSIONMISMATCH Some versions didn't match.
  DFB_NOSHAREDMEMORY There's not enough shared memory.
  DFB_EOF Reached end of file.
Every interface method returns this result code.
Any other value to be returned adds an argument pointing to a location the value should be written to.

DFBBoolean
  DFB_FALSE
  DFB_TRUE
A boolean.

DFBPoint
  int x; X coordinate of it
  int y; Y coordinate of it
A point specified by x/y coordinates.

DFBSpan
  int x; X coordinate
  int w; width of span
A horizontal line specified by x and width.

DFBDimension
  int w; width of it
  int h; height of it
A dimension specified by width and height.

DFBRectangle
  int x; X coordinate of its top-left point
  int y; Y coordinate of its top-left point
  int w; width of it
  int h; height of it
A rectangle specified by a point and a dimension.

DFBLocation
  float x; normalized X coordinate
  float y; normalized Y coordinate
  float w; normalized width
  float h; normalized height
A rectangle specified by normalized coordinates.

E.g. using 0.0, 0.0, 1.0, 1.0 would specify the whole screen.

DFBRegion
  int x1; X coordinate of top-left point
  int y1; Y coordinate of top-left point
  int x2; X coordinate of lower-right point
  int y2; Y coordinate of lower-right point
A region specified by two points.

The defined region includes both endpoints.

DFBInsets
  int l; distance from left edge
  int t; distance from top edge
  int r; distance from right edge
  int b; distance from bottom edge
Insets specify a distance from each edge of a rectangle.

Positive values always mean 'outside'.

DFBTriangle
  int x1; X coordinate of first edge
  int y1; Y coordinate of first edge
  int x2; X coordinate of second edge
  int y2; Y coordinate of second edge
  int x3; X coordinate of third edge
  int y3; Y coordinate of third edge
A triangle specified by three points.

DFBColor
  __u8 a; alpha channel
  __u8 r; red channel
  __u8 g; green channel
  __u8 b; blue channel
A color defined by channels with 8bit each.

DFB_RECTANGLE_EQUAL (a,b)
Macro to compare two rectangles.

DFB_LOCATION_EQUAL (a,b)
Macro to compare two locations.

DFB_REGION_EQUAL (a,b)
Macro to compare two regions.

DFB_COLOR_EQUAL (x,y)
Macro to compare two colors.

DFB_DISPLAYLAYER_IDS_MAX
Maximum number of layer ids.

DFB_DISPLAYLAYER_IDS_ADD (ids,id)
Adds the id to the bitmask of layer ids.

DFB_DISPLAYLAYER_IDS_REMOVE (ids,id)
Removes the id from the bitmask of layer ids.

DFB_DISPLAYLAYER_IDS_HAVE (ids,id)
Checks if the bitmask of layer ids contains the id.

DFB_DISPLAYLAYER_IDS_EMPTY (ids)
Empties (clears) the bitmask of layer ids.

DFBCooperativeLevel
  DFSCL_NORMAL Normal shared access, primary surface will be the buffer of an implicitly created window at the resolution given by SetVideoMode().
  DFSCL_FULLSCREEN Application grabs the primary layer, SetVideoMode automates layer control. Primary surface is the primary layer surface.
  DFSCL_EXCLUSIVE All but the primary layer will be disabled, the application has full control over layers if desired, other applications have no input/output/control. Primary surface is the primary layer surface.
The cooperative level controls the super interface's behaviour in functions like SetVideoMode or CreateSurface for the primary.

DFBDisplayLayerCapabilities
  DLCAPS_NONE
  DLCAPS_SURFACE The layer has a surface that can be drawn to. This may not be provided by layers that display realtime data, e.g. from an MPEG decoder chip. Playback control may be provided by an external API.
  DLCAPS_OPACITY The layer supports blending with layer(s) below based on a global alpha factor.
  DLCAPS_ALPHACHANNEL The layer supports blending with layer(s) below based on each pixel's alpha value.
  DLCAPS_SCREEN_LOCATION The layer location on the screen can be changed, this includes position and size as normalized values. The default is 0.0f, 0.0f, 1.0f, 1.0f.
  DLCAPS_FLICKER_FILTERING Flicker filtering can be enabled for smooth output on interlaced display devices.
  DLCAPS_DEINTERLACING The layer provides optional deinterlacing for displaying interlaced video data on progressive display devices.
  DLCAPS_SRC_COLORKEY A specific color can be declared as transparent.
  DLCAPS_DST_COLORKEY A specific color of layers below can be specified as the color of the only locations where the layer is visible.
  DLCAPS_BRIGHTNESS Adjustment of brightness is supported.
  DLCAPS_CONTRAST Adjustment of contrast is supported.
  DLCAPS_HUE Adjustment of hue is supported.
  DLCAPS_SATURATION Adjustment of saturation is supported.
  DLCAPS_LEVELS Adjustment of the layer's level (z position) is supported.
  DLCAPS_FIELD_PARITY Field parity can be selected
  DLCAPS_WINDOWS Hardware window support.
  DLCAPS_SOURCES Sources can be selected.
  DLCAPS_ALPHA_RAMP Alpha values for formats with one or two alpha bits can be chosen, i.e. using ARGB1555 or ARGB2554 the user can define the meaning of the two or four possibilities. In short, this feature provides a lookup table for the alpha bits of these formats. See also IDirectFBSurface::SetAlphaRamp().
  DLCAPS_PREMULTIPLIED Surfaces with premultiplied alpha are supported.
  DLCAPS_SCREEN_POSITION
  DLCAPS_SCREEN_SIZE
  DLCAPS_ALL
Capabilities of a display layer.

DFBScreenCapabilities
  DSCCAPS_NONE
  DSCCAPS_VSYNC Synchronization with the vertical retrace supported.
  DSCCAPS_POWER_MANAGEMENT Power management supported.
  DSCCAPS_MIXERS Has mixers.
  DSCCAPS_ENCODERS Has encoders.
  DSCCAPS_OUTPUTS Has outputs.
  DSCCAPS_ALL
Capabilities of a screen.

DFBDisplayLayerOptions
  DLOP_NONE None of these.
  DLOP_ALPHACHANNEL Make usage of alpha channel for blending on a pixel per pixel basis.
  DLOP_FLICKER_FILTERING Enable flicker filtering.
  DLOP_DEINTERLACING Enable deinterlacing of an interlaced (video) source.
  DLOP_SRC_COLORKEY Enable source color key.
  DLOP_DST_COLORKEY Enable dest. color key.
  DLOP_OPACITY Make usage of the global alpha factor set by SetOpacity.
  DLOP_FIELD_PARITY Set field parity
Used to enable some capabilities like flicker filtering or colorkeying.

DFBDisplayLayerBufferMode
  DLBM_UNKNOWN
  DLBM_FRONTONLY no backbuffer
  DLBM_BACKVIDEO backbuffer in video memory
  DLBM_BACKSYSTEM backbuffer in system memory
  DLBM_TRIPLE triple buffering
  DLBM_WINDOWS no layer buffers at all, using buffer of each window
Layer Buffer Mode.

DFBSurfaceDescriptionFlags
  DSDESC_NONE none of these
  DSDESC_CAPS caps field is valid
  DSDESC_WIDTH width field is valid
  DSDESC_HEIGHT height field is valid
  DSDESC_PIXELFORMAT pixelformat field is valid
  DSDESC_PREALLOCATED Surface uses data that has been preallocated by the application. The field array 'preallocated' has to be set using the first element for the front buffer and eventually the second one for the back buffer.
  DSDESC_PALETTE Initialize the surfaces palette with the entries specified in the description.
  DSDESC_ALL all of these
Flags defining which fields of a DFBSurfaceDescription are valid.

DFBPaletteDescriptionFlags
  DPDESC_CAPS Specify palette capabilities.
  DPDESC_SIZE Specify number of entries.
  DPDESC_ENTRIES Initialize the palette with the entries specified in the description.
Flags defining which fields of a DFBPaletteDescription are valid.

DFBSurfaceCapabilities
  DSCAPS_NONE None of these.
  DSCAPS_PRIMARY It's the primary surface.
  DSCAPS_SYSTEMONLY Surface data is permanently stored in system memory.
There's no video memory allocation/storage.
  DSCAPS_VIDEOONLY Surface data is permanently stored in video memory.
There's no system memory allocation/storage.
  DSCAPS_DOUBLE Surface is double buffered
  DSCAPS_SUBSURFACE Surface is just a sub area of another one sharing the surface data.
  DSCAPS_INTERLACED Each buffer contains interlaced video (or graphics) data consisting of two fields.
Their lines are stored interleaved. One field's height is a half of the surface's height.
  DSCAPS_SEPARATED For usage with DSCAPS_INTERLACED.
DSCAPS_SEPARATED specifies that the fields are NOT interleaved line by line in the buffer.
The first field is followed by the second one.
  DSCAPS_STATIC_ALLOC The amount of video or system memory allocated for the surface is never less than its initial value. This way a surface can be resized (smaller and bigger up to the initial size) without reallocation of the buffers. It's useful for surfaces that need a guaranteed space in video memory after resizing.
  DSCAPS_TRIPLE Surface is triple buffered.
  DSCAPS_PREMULTIPLIED Surface stores data with premultiplied alpha.
  DSCAPS_DEPTH A depth buffer is allocated.
  DSCAPS_ALL All of these.
The surface capabilities.

DFBPaletteCapabilities
  DPCAPS_NONE None of these.
The palette capabilities.

DFBSurfaceDrawingFlags
  DSDRAW_NOFX uses none of the effects
  DSDRAW_BLEND uses alpha from color
  DSDRAW_DST_COLORKEY write to destination only if the destination pixel matches the destination color key
  DSDRAW_SRC_PREMULTIPLY multiplies the color's rgb channels by the alpha channel before drawing
  DSDRAW_DST_PREMULTIPLY modulates the dest. color with the dest. alpha
  DSDRAW_DEMULTIPLY divides the color by the alpha before writing the data to the destination
  DSDRAW_XOR bitwise xor the destination pixels with the specified color after premultiplication
Flags controlling drawing commands.

DFBSurfaceBlittingFlags
  DSBLIT_NOFX uses none of the effects
  DSBLIT_BLEND_ALPHACHANNEL enables blending and uses alphachannel from source
  DSBLIT_BLEND_COLORALPHA enables blending and uses alpha value from color
  DSBLIT_COLORIZE modulates source color with the color's r/g/b values
  DSBLIT_SRC_COLORKEY don't blit pixels matching the source color key
  DSBLIT_DST_COLORKEY write to destination only if the destination pixel matches the destination color key
  DSBLIT_SRC_PREMULTIPLY modulates the source color with the (modulated) source alpha
  DSBLIT_DST_PREMULTIPLY modulates the dest. color with the dest. alpha
  DSBLIT_DEMULTIPLY divides the color by the alpha before writing the data to the destination
  DSBLIT_DEINTERLACE deinterlaces the source during blitting by reading only one field (every second line of full image) scaling it vertically by factor two
  DSBLIT_SRC_PREMULTCOLOR modulates the source color with the color alpha
  DSBLIT_XOR bitwise xor the destination pixels with the source pixels after premultiplication
Flags controlling blitting commands.

DFBAccelerationMask
  DFXL_NONE None of these.
  DFXL_FILLRECTANGLE FillRectangle() is accelerated.
  DFXL_DRAWRECTANGLE DrawRectangle() is accelerated.
  DFXL_DRAWLINE DrawLine() is accelerated.
  DFXL_FILLTRIANGLE FillTriangle() is accelerated.
  DFXL_BLIT Blit() and TileBlit() are accelerated.
  DFXL_STRETCHBLIT StretchBlit() is accelerated.
  DFXL_TEXTRIANGLES TextureTriangles() is accelerated.
  DFXL_DRAWSTRING DrawString() and DrawGlyph() are accelerated.
  DFXL_ALL All drawing/blitting functions.
Mask of accelerated functions.

DFBDisplayLayerTypeFlags
  DLTF_NONE Unclassified, no specific type.
  DLTF_GRAPHICS Can be used for graphics output.
  DLTF_VIDEO Can be used for live video output.
  DLTF_STILL_PICTURE Can be used for single frames.
  DLTF_BACKGROUND Can be used as a background layer.
  DLTF_ALL All type flags set.
Type of display layer for basic classification. Values may be or'ed together.

DFBInputDeviceTypeFlags
  DIDTF_NONE Unclassified, no specific type.
  DIDTF_KEYBOARD Can act as a keyboard.
  DIDTF_MOUSE Can be used as a mouse.
  DIDTF_JOYSTICK Can be used as a joystick.
  DIDTF_REMOTE Is a remote control.
  DIDTF_VIRTUAL Is a virtual input device.
  DIDTF_ALL All type flags set.
Type of input device for basic classification. Values may be or'ed together.

DFBInputDeviceCapabilities
  DICAPS_KEYS device supports key events
  DICAPS_AXES device supports axis events
  DICAPS_BUTTONS device supports button events
  DICAPS_ALL all capabilities
Basic input device features.

DFBInputDeviceButtonIdentifier
  DIBI_LEFT left mouse button
  DIBI_RIGHT right mouse button
  DIBI_MIDDLE middle mouse button
  DIBI_FIRST other buttons: DIBI_FIRST + zero based index
  DIBI_LAST 32 buttons maximum
Identifier (index) for e.g. mouse or joystick buttons.

DFBInputDeviceAxisIdentifier
  DIAI_X X axis
  DIAI_Y Y axis
  DIAI_Z Z axis
  DIAI_FIRST other axis: DIAI_FIRST + zero based index
  DIAI_LAST 32 axes maximum
Axis identifier (index) for e.g. mouse or joystick.

The X, Y and Z axis are predefined. To access other axes, use DIAI_FIRST plus a zero based index, e.g. the 4th axis would be (DIAI_FIRST + 3).

DFBWindowDescriptionFlags
  DWDESC_CAPS caps field is valid
  DWDESC_WIDTH width field is valid
  DWDESC_HEIGHT height field is valid
  DWDESC_PIXELFORMAT pixelformat field is valid
  DWDESC_POSX posx field is valid
  DWDESC_POSY posy field is valid
  DWDESC_SURFACE_CAPS Create the window surface with special capabilities.
Flags defining which fields of a DFBWindowDescription are valid.

DFBDataBufferDescriptionFlags
  DBDESC_FILE Create a static buffer for the specified filename.
  DBDESC_MEMORY Create a static buffer for the specified memory area.
Flags defining which fields of a DFBDataBufferDescription are valid.

DFBWindowCapabilities
  DWCAPS_NONE None of these.
  DWCAPS_ALPHACHANNEL The window has an alphachannel for pixel-per-pixel blending.
  DWCAPS_DOUBLEBUFFER The window's surface is double buffered. This is very useful to avoid visibility of content that is still in preparation. Normally a window's content can get visible before an update if there is another reason causing a window stack repaint.
  DWCAPS_INPUTONLY The window has no surface. You can not draw to it but it receives events
  DWCAPS_NODECORATION The window won't be decorated.
  DWCAPS_ALL All valid flags.
Capabilities a window can have.

DFBFontAttributes
  DFFA_NONE none of these flags
  DFFA_NOKERNING don't use kerning
  DFFA_NOHINTING don't use hinting
  DFFA_MONOCHROME don't use anti-aliasing
  DFFA_NOCHARMAP no char map, glyph indices are specified directly
Flags describing how to load a font.

These flags describe how a font is loaded and affect how the glyphs are drawn. There is no way to change this after the font has been loaded. If you need to render a font with different attributes, you have to create multiple FontProviders of the same font file.

DFBFontDescriptionFlags
  DFDESC_ATTRIBUTES attributes field is valid
  DFDESC_HEIGHT height is specified
  DFDESC_WIDTH width is specified
  DFDESC_INDEX index is specified
  DFDESC_FIXEDADVANCE specify a fixed advance overriding any character advance of fixed or proportional fonts
  DFDESC_FRACT_HEIGHT fractional height is set
  DFDESC_FRACT_WIDTH fractional width is set
Flags defining which fields of a DFBFontDescription are valid.

DFBFontDescription
  DFBFontDescriptionFlags flags;
  DFBFontAttributes attributes;
  int height;
  int width;
  unsigned int index;
  int fixed_advance;
  int fract_height;
  int fract_width;
Description of how to load glyphs from a font file.

The attributes control how the glyphs are rendered. Width and height can be used to specify the desired face size in pixels. If you are loading a non-scalable font, you shouldn't specify a font size.

Please note that the height value in the DFBFontDescription doesn't correspond to the height returned by
IDirectFBFont::GetHeight().

The index field controls which face is loaded from a font file that provides a collection of faces. This is rarely needed.

Fractional sizes (fract_height and fract_width) are 26.6 fixed point integers and override the pixel sizes if both are specified.

DFBSurfacePixelFormat
  DSPF_UNKNOWN unknown or unspecified format
  DSPF_ARGB1555 16 bit ARGB (2 byte, alpha 1@15, red 5@10, green 5@5, blue 5@0)
  DSPF_RGB16 16 bit RGB (2 byte, red 5@11, green 6@5, blue 5@0)
  DSPF_RGB24 24 bit RGB (3 byte, red 8@16, green 8@8, blue 8@0)
  DSPF_RGB32 24 bit RGB (4 byte, nothing@24, red 8@16, green 8@8, blue 8@0)
  DSPF_ARGB 32 bit ARGB (4 byte, alpha 8@24, red 8@16, green 8@8, blue 8@0)
  DSPF_A8 8 bit alpha (1 byte, alpha 8@0), e.g. anti-aliased glyphs
  DSPF_YUY2 16 bit YUV (4 byte/ 2 pixel, macropixel contains CbYCrY [31:0])
  DSPF_RGB332 8 bit RGB (1 byte, red 3@5, green 3@2, blue 2@0)
  DSPF_UYVY 16 bit YUV (4 byte/ 2 pixel, macropixel contains YCbYCr [31:0])
  DSPF_I420 12 bit YUV (8 bit Y plane followed by 8 bit quarter size U/V planes)
  DSPF_YV12 12 bit YUV (8 bit Y plane followed by 8 bit quarter size V/U planes)
  DSPF_LUT8 8 bit LUT (8 bit color and alpha lookup from palette)
  DSPF_ALUT44 8 bit ALUT (1 byte, alpha 4@4, color lookup 4@0)
  DSPF_AiRGB 32 bit ARGB (4 byte, inv. alpha 8@24, red 8@16, green 8@8, blue 8@0)
  DSPF_A1 1 bit alpha (1 byte/ 8 pixel, most significant bit used first)
  DSPF_NV12 12 bit YUV (8 bit Y plane followed by one 16 bit quarter size CbCr [15:0] plane)
  DSPF_NV16 16 bit YUV (8 bit Y plane followed by one 16 bit half width CbCr [15:0] plane)
  DSPF_ARGB2554 16 bit ARGB (2 byte, alpha 2@14, red 5@9, green 5@4, blue 4@0)
  DSPF_ARGB4444 16 bit ARGB (2 byte, alpha 4@12, red 4@8, green 4@4, blue 4@0)
  DSPF_NV21 12 bit YUV (8 bit Y plane followed by one 16 bit quarter size CrCb [15:0] plane)
  DSPF_AYUV 32 bit AYUV (4 byte, alpha 8@24, Y 8@16, Cb 8@8, Cr 8@0)
Pixel format of a surface.

DFBSurfaceDescription
  DFBSurfaceDescriptionFlags flags; field validation
  DFBSurfaceCapabilities caps; capabilities
  int width; pixel width
  int height; pixel height
  DFBSurfacePixelFormat pixelformat; pixel format
  void *data; data pointer of existing buffer
  int pitch; pitch of buffer
  DFBColor *entries;
  unsigned int size;
Description of the surface that is to be created.

DFBPaletteDescription
  DFBPaletteDescriptionFlags flags; Validation of fields.
  DFBPaletteCapabilities caps; Palette capabilities.
  unsigned int size; Number of entries.
  const DFBColor *entries; Preset palette entries.
Description of the palette that is to be created.

DFBDisplayLayerDescription
  DFBDisplayLayerTypeFlags type; Classification of the display layer.
  DFBDisplayLayerCapabilities caps; Capability flags of the display layer.
  char name[DFB_DISPLAY_LAYER_DESC_NAME_LENGTH]; Display layer name.
  int level; Default level.
  int regions; Number of concurrent regions supported.
-1 = unlimited, 0 = unknown/one, >0 = actual number
  int sources; Number of selectable sources.
Description of the display layer capabilities.

DFBDisplayLayerSourceDescription
  DFBDisplayLayerSourceID source_id; ID of the source.
  char name[DFB_DISPLAY_LAYER_SOURCE_DESC_NAME_LENGTH]; Name of the source.
Description of a display layer source.

DFBScreenDescription
  DFBScreenCapabilities caps; Capability flags of the screen.
  char name[DFB_SCREEN_DESC_NAME_LENGTH]; Rough description.
  int mixers; Number of mixers available.
  int encoders; Number of display encoders available.
  int outputs; Number of output connectors available.
Description of the display encoder capabilities.

DFBInputDeviceDescription
  DFBInputDeviceTypeFlags type; classification of input device
  DFBInputDeviceCapabilities caps; capabilities, validates the following fields
  int min_keycode; minimum hardware keycode or -1 if no differentiation between hardware keys is made
  int max_keycode; maximum hardware keycode or -1 if no differentiation between hardware keys is made
  DFBInputDeviceAxisIdentifier max_axis; highest axis identifier
  DFBInputDeviceButtonIdentifier max_button; highest button identifier
  char name[DFB_INPUT_DEVICE_DESC_NAME_LENGTH]; Device name
  char vendor[DFB_INPUT_DEVICE_DESC_VENDOR_LENGTH]; Device vendor
Description of the input device capabilities.

DFBGraphicsDriverInfo
  int major; Major version
  int minor; Minor version
  char name[DFB_GRAPHICS_DRIVER_INFO_NAME_LENGTH]; Driver name
  char vendor[DFB_GRAPHICS_DRIVER_INFO_VENDOR_LENGTH]; Driver vendor

DFBGraphicsDeviceDescription
  DFBAccelerationMask acceleration_mask; Accelerated functions
  DFBSurfaceBlittingFlags blitting_flags; Supported blitting flags
  DFBSurfaceDrawingFlags drawing_flags; Supported drawing flags
  unsigned int video_memory; Amount of video memory in bytes
  char name[DFB_GRAPHICS_DEVICE_DESC_NAME_LENGTH]; Device/Chipset name
  char vendor[DFB_GRAPHICS_DEVICE_DESC_VENDOR_LENGTH]; Device vendor
  DFBGraphicsDriverInfo driver;
Description of the graphics device capabilities.

DFBWindowDescription
  DFBWindowDescriptionFlags flags; field validation
  DFBWindowCapabilities caps; capabilities
  int width; pixel width
  int height; pixel height
  DFBSurfacePixelFormat pixelformat; pixel format
  int posx; distance from left layer border
  int posy; distance from upper layer border
  DFBSurfaceCapabilities surface_caps; pixel format
Description of the window that is to be created.

DFBDataBufferDescription
  DFBDataBufferDescriptionFlags flags; field validation
  const char *file; for file based data buffers
  const void *data; static data pointer
  unsigned int length; length of buffer
Description of a data buffer that is to be created.

DFBEnumerationResult
  DFENUM_OK Proceed with enumeration
  DFENUM_CANCEL Cancel enumeration
Return value of callback function of enumerations.

DFBVideoModeCallback
DFBEnumerationResult (*DFBVideoModeCallback) (
  int width,
  int height,
  int bpp,
  void *callbackdata
);
Called for each supported video mode.

DFBScreenCallback
DFBEnumerationResult (*DFBScreenCallback) (
  DFBScreenID screen_id,
  DFBScreenDescription desc,
  void *callbackdata
);
Called for each existing screen. "screen_id" can be used to get an interface to the screen.

DFBDisplayLayerCallback
DFBEnumerationResult (*DFBDisplayLayerCallback) (
  DFBDisplayLayerID layer_id,
  DFBDisplayLayerDescription desc,
  void *callbackdata
);
Called for each existing display layer. "layer_id" can be used to get an interface to the layer.

DFBInputDeviceCallback
DFBEnumerationResult (*DFBInputDeviceCallback) (
  DFBInputDeviceID device_id,
  DFBInputDeviceDescription desc,
  void *callbackdata
);
Called for each existing input device. "device_id" can be used to get an interface to the device.

DFBGetDataCallback
int (*DFBGetDataCallback) (
  void *buffer,
  unsigned int length,
  void *callbackdata
);
Called for each block of continous data requested, e.g. by a Video Provider. Write as many data as you can but not more than specified by length. Return the number of bytes written or 'EOF' if no data is available anymore.

DFBVideoProviderCapabilities
  DVCAPS_BASIC basic ops (PlayTo, Stop)
  DVCAPS_SEEK supports SeekTo
  DVCAPS_SCALE can scale the video
  DVCAPS_INTERLACED supports interlaced surfaces
  DVCAPS_BRIGHTNESS supports Brightness adjustment
  DVCAPS_CONTRAST supports Contrast adjustment
  DVCAPS_HUE supports Hue adjustment
  DVCAPS_SATURATION supports Saturation adjustment
  DVCAPS_INTERACTIVE supports SendEvent
Information about an IDirectFBVideoProvider.

DFBVideoProviderStatus
  DVSTATE_UNKNOWN unknown status
  DVSTATE_PLAY video provider is playing
  DVSTATE_STOP playback was stopped
  DVSTATE_FINISHED playback is finished
Information about the status of an IDirectFBVideoProvider.

DFBColorAdjustmentFlags
  DCAF_NONE none of these
  DCAF_BRIGHTNESS brightness field is valid
  DCAF_CONTRAST contrast field is valid
  DCAF_HUE hue field is valid
  DCAF_SATURATION saturation field is valid
  DCAF_ALL all of these
Flags defining which fields of a DFBColorAdjustment are valid.

DFBColorAdjustment
  DFBColorAdjustmentFlags flags;
  __u16 brightness;
  __u16 contrast;
  __u16 hue;
  __u16 saturation;
Color Adjustment used to adjust video colors.

All fields are in the range 0x0 to 0xFFFF with 0x8000 as the default value (no adjustment).

DFBDisplayLayerCooperativeLevel
  DLSCL_SHARED shared access
  DLSCL_EXCLUSIVE exclusive access, fullscreen/mode switching
  DLSCL_ADMINISTRATIVE administrative access, enumerate windows, control them
Cooperative level handling the access permissions.

DFBDisplayLayerBackgroundMode
  DLBM_DONTCARE do not clear the layer before repainting the windowstack
  DLBM_COLOR fill with solid color (SetBackgroundColor)
  DLBM_IMAGE use an image (SetBackgroundImage)
  DLBM_TILE use a tiled image (SetBackgroundImage)
Background mode defining how to erase/initialize the area for a windowstack repaint

DFBDisplayLayerConfigFlags
  DLCONF_NONE
  DLCONF_WIDTH
  DLCONF_HEIGHT
  DLCONF_PIXELFORMAT
  DLCONF_BUFFERMODE
  DLCONF_OPTIONS
  DLCONF_SOURCE
  DLCONF_SURFACE_CAPS
  DLCONF_ALL
Layer configuration flags

DFBDisplayLayerConfig
  DFBDisplayLayerConfigFlags flags; Which fields of the configuration are set
  int width; Pixel width
  int height; Pixel height
  DFBSurfacePixelFormat pixelformat; Pixel format
  DFBDisplayLayerBufferMode buffermode; Buffer mode
  DFBDisplayLayerOptions options; Enable capabilities
  DFBDisplayLayerSourceID source; Selected layer source
  DFBSurfaceCapabilities surface_caps; Choose surface capabilities, available: INTERLACED, SEPARATED, PREMULTIPLIED.
Layer configuration

DFBScreenPowerMode
  DSPM_ON
  DSPM_STANDBY
  DSPM_SUSPEND
  DSPM_OFF
Screen Power Mode.

DFBScreenMixerCapabilities
  DSMCAPS_NONE None of these.
  DSMCAPS_FULL Can mix full tree as specified in the description.
  DSMCAPS_SUB_LEVEL Can set a maximum layer level, e.g. to exclude an OSD from VCR output.
  DSMCAPS_SUB_LAYERS Can select a number of layers individually as specified in the description.
  DSMCAPS_BACKGROUND Background color is configurable.
Capabilities of a mixer.

DFBScreenMixerDescription
  DFBScreenMixerCapabilities caps;
  DFBDisplayLayerIDs layers; Visible layers if the full tree is selected.
  int sub_num; Number of layers that can be selected in sub mode.
  DFBDisplayLayerIDs sub_layers; Layers available for sub mode with layer selection.
  char name[DFB_SCREEN_MIXER_DESC_NAME_LENGTH]; Mixer name
Description of a mixer.

DFBScreenMixerConfigFlags
  DSMCONF_NONE None of these.
  DSMCONF_TREE (Sub) tree is selected.
  DSMCONF_LEVEL Level is specified.
  DSMCONF_LAYERS Layer selection is set.
  DSMCONF_BACKGROUND Background color is set.
  DSMCONF_ALL
Flags for mixer configuration.

DFBScreenMixerTree
  DSMT_UNKNOWN Unknown mode
  DSMT_FULL Full tree.
  DSMT_SUB_LEVEL Sub tree via maximum level.
  DSMT_SUB_LAYERS Sub tree via layer selection.
(Sub) tree selection.

DFBScreenMixerConfig
  DFBScreenMixerConfigFlags flags; Validates struct members.
  DFBScreenMixerTree tree; Selected (sub) tree.
  int level; Max. level of sub level mode.
  DFBDisplayLayerIDs layers; Layers for sub layers mode.
  DFBColor background; Background color.
Configuration of a mixer.

DFBScreenOutputCapabilities
  DSOCAPS_NONE None of these.
  DSOCAPS_CONNECTORS Output connectors are available.
  DSOCAPS_ENCODER_SEL Encoder can be selected.
  DSOCAPS_SIGNAL_SEL Signal(s) can be selected.
  DSOCAPS_CONNECTOR_SEL Connector(s) can be selected.
  DSOCAPS_ALL
Capabilities of an output.

DFBScreenOutputConnectors
  DSOC_UNKNOWN Unknown type
  DSOC_VGA VGA connector
  DSOC_SCART SCART connector
  DSOC_YC Y/C connector
  DSOC_CVBS CVBS connector
Type of output connector.

DFBScreenOutputSignals
  DSOS_NONE No signal
  DSOS_VGA VGA signal
  DSOS_YC Y/C signal
  DSOS_CVBS CVBS signal
  DSOS_RGB R/G/B signal
  DSOS_YCBCR Y/Cb/Cr signal
Type of output signal.

DFBScreenOutputDescription
  DFBScreenOutputCapabilities caps; Screen capabilities.
  DFBScreenOutputConnectors all_connectors; Output connectors.
  DFBScreenOutputSignals all_signals; Output signals.
  char name[DFB_SCREEN_OUTPUT_DESC_NAME_LENGTH]; Output name
Description of a screen output.

DFBScreenOutputConfigFlags
  DSOCONF_NONE None of these.
  DSOCONF_ENCODER Set encoder the signal(s) comes from.
  DSOCONF_SIGNALS Select signal(s) from encoder.
  DSOCONF_CONNECTORS Select output connector(s).
  DSOCONF_ALL
Flags for screen output configuration.

DFBScreenOutputConfig
  DFBScreenOutputConfigFlags flags; Validates struct members.
  int encoder; Chosen encoder.
  DFBScreenOutputSignals out_signals; Selected encoder signal(s).
  DFBScreenOutputConnectors out_connectors; Selected output connector(s).
Configuration of an output.

DFBScreenEncoderCapabilities
  DSECAPS_NONE None of these.
  DSECAPS_TV_STANDARDS TV standards can be selected.
  DSECAPS_TEST_PICTURE Test picture generation supported.
  DSECAPS_MIXER_SEL Mixer can be selected.
  DSECAPS_OUT_SIGNALS Different output signals are supported.
  DSECAPS_SCANMODE Can switch between interlaced and progressive output.
  DSECAPS_BRIGHTNESS Adjustment of brightness is supported.
  DSECAPS_CONTRAST Adjustment of contrast is supported.
  DSECAPS_HUE Adjustment of hue is supported.
  DSECAPS_SATURATION Adjustment of saturation is supported.
  DSECAPS_ALL
Capabilities of a display encoder.

DFBScreenEncoderType
  DSET_UNKNOWN Unknown type
  DSET_CRTC Encoder is a CRTC.
  DSET_TV TV output encoder.
Type of display encoder.

DFBScreenEncoderTVStandards
  DSETV_UNKNOWN Unknown standard
  DSETV_PAL PAL
  DSETV_NTSC NTSC
  DSETV_SECAM SECAM
TV standards.

DFBScreenEncoderScanMode
  DSESM_UNKNOWN Unknown mode
  DSESM_INTERLACED Interlaced scan mode
  DSESM_PROGRESSIVE Progressive scan mode
Scan modes.

DFBScreenEncoderDescription
  DFBScreenEncoderCapabilities caps; Encoder capabilities.
  DFBScreenEncoderType type; Type of encoder.
  DFBScreenEncoderTVStandards tv_standards; Supported TV standards.
  DFBScreenOutputSignals out_signals; Supported output signals.
  char name[DFB_SCREEN_ENCODER_DESC_NAME_LENGTH]; Encoder name
Description of a display encoder.

DFBScreenEncoderConfigFlags
  DSECONF_NONE None of these.
  DSECONF_TV_STANDARD Set TV standard.
  DSECONF_TEST_PICTURE Set test picture mode.
  DSECONF_MIXER Select mixer.
  DSECONF_OUT_SIGNALS Select generated output signal(s).
  DSECONF_SCANMODE Select interlaced or progressive output.
  DSECONF_TEST_COLOR Set color for DSETP_SINGLE.
  DSECONF_ADJUSTMENT Set color adjustment.
  DSECONF_ALL
Flags for display encoder configuration.

DFBScreenEncoderTestPicture
  DSETP_OFF Disable test picture.
  DSETP_MULTI Show color bars.
  DSETP_SINGLE Whole screen as defined in configuration.
  DSETP_WHITE Whole screen (ff, ff, ff).
  DSETP_YELLOW Whole screen (ff, ff, 00).
  DSETP_CYAN Whole screen (00, ff, ff).
  DSETP_GREEN Whole screen (00, ff, 00).
  DSETP_MAGENTA Whole screen (ff, 00, ff).
  DSETP_RED Whole screen (ff, 00, 00).
  DSETP_BLUE Whole screen (00, 00, ff).
  DSETP_BLACK Whole screen (00, 00, 00).
Test picture mode.

DFBScreenEncoderConfig
  DFBScreenEncoderConfigFlags flags; Validates struct members.
  DFBScreenEncoderTVStandards tv_standard; TV standard.
  DFBScreenEncoderTestPicture test_picture; Test picture mode.
  int mixer; Selected mixer.
  DFBScreenOutputSignals out_signals; Generated output signals.
  DFBScreenEncoderScanMode scanmode; Interlaced or progressive output.
  DFBColor test_color; Color for DSETP_SINGLE.
  DFBColorAdjustment adjustment; Color adjustment.
Configuration of a display encoder.

DFBSurfaceFlipFlags
  DSFLIP_NONE None of these.
  DSFLIP_WAIT Flip() returns upon vertical sync. Flipping is still done immediately unless DSFLIP_ONSYNC is specified, too.
  DSFLIP_BLIT Copy from back buffer to front buffer rather than just swapping these buffers. This behaviour is enforced if the region passed to Flip() is not NULL or if the surface being flipped is a sub surface.
  DSFLIP_ONSYNC Do the actual flipping upon the next vertical sync. The Flip() method will still return immediately unless DSFLIP_WAIT is specified, too.
  DSFLIP_PIPELINE
Flipping flags controlling the behaviour of
IDirectFBSurface::Flip().

DFBSurfaceTextFlags
  DSTF_LEFT left aligned
  DSTF_CENTER horizontally centered
  DSTF_RIGHT right aligned
  DSTF_TOP y specifies the top instead of the baseline
  DSTF_BOTTOM y specifies the bottom instead of the baseline
Flags controlling the text layout.

DFBSurfaceLockFlags
  DSLF_READ request read access while surface is locked
  DSLF_WRITE request write access
Flags defining the type of data access. These are important for surface swapping management.

DFBSurfacePorterDuffRule
  DSPD_NONE fs: sa fd: 1.0-sa (defaults)
  DSPD_CLEAR fs: 0.0 fd: 0.0
  DSPD_SRC fs: 1.0 fd: 0.0
  DSPD_SRC_OVER fs: 1.0 fd: 1.0-sa
  DSPD_DST_OVER fs: 1.0-da fd: 1.0
  DSPD_SRC_IN fs: da fd: 0.0
  DSPD_DST_IN fs: 0.0 fd: sa
  DSPD_SRC_OUT fs: 1.0-da fd: 0.0
  DSPD_DST_OUT fs: 0.0 fd: 1.0-sa
Available Porter/Duff rules.

DFBSurfaceBlendFunction
  DSBF_ZERO
  DSBF_ONE
  DSBF_SRCCOLOR
  DSBF_INVSRCCOLOR
  DSBF_SRCALPHA
  DSBF_INVSRCALPHA
  DSBF_DESTALPHA
  DSBF_INVDESTALPHA
  DSBF_DESTCOLOR
  DSBF_INVDESTCOLOR
  DSBF_SRCALPHASAT
Blend functions to use for source and destination blending

DFBVertex
  float x; Destination X coordinate (in pixels)
  float y; Destination Y coordinate (in pixels)
  float z; Z coordinate
  float w; W coordinate
  float s; Texture S coordinate
  float t; Texture T coordinate
Transformed vertex of a textured triangle.

DFBTriangleFormation
  DTTF_LIST 0/1/2 3/4/5 6/7/8 ...
  DTTF_STRIP 0/1/2 1/2/3 2/3/4 ...
  DTTF_FAN 0/1/2 0/2/3 0/3/4 ...
Way of building triangles from the list of vertices.

DFBInputDeviceKeyState
  DIKS_UP key is not pressed
  DIKS_DOWN key is pressed
Specifies whether a key is currently down.

DFBInputDeviceButtonState
  DIBS_UP button is not pressed
  DIBS_DOWN button is pressed
Specifies whether a button is currently pressed.

DFBInputDeviceButtonMask
  DIBM_LEFT left mouse button
  DIBM_RIGHT right mouse button
  DIBM_MIDDLE middle mouse button
Flags specifying which buttons are currently down.

DFBEventClass
  DFEC_NONE none of these
  DFEC_INPUT raw input event
  DFEC_WINDOW windowing event
  DFEC_USER custom event for the user of this library
  DFEC_UNIVERSAL universal event for custom usage with variable size
Event class.

DFBInputEventType
  DIET_UNKNOWN unknown event
  DIET_KEYPRESS a key is been pressed
  DIET_KEYRELEASE a key is been released
  DIET_BUTTONPRESS a (mouse) button is been pressed
  DIET_BUTTONRELEASE a (mouse) button is been released
  DIET_AXISMOTION mouse/joystick movement
The type of an input event.

DFBInputEventFlags
  DIEF_NONE no additional fields
  DIEF_TIMESTAMP timestamp is valid
  DIEF_AXISABS axis and axisabs are valid
  DIEF_AXISREL axis and axisrel are valid
  DIEF_KEYCODE used internally by the input core, always set at application level
  DIEF_KEYID used internally by the input core, always set at application level
  DIEF_KEYSYMBOL used internally by the input core, always set at application level
  DIEF_MODIFIERS used internally by the input core, always set at application level
  DIEF_LOCKS used internally by the input core, always set at application level
  DIEF_BUTTONS used internally by the input core, always set at application level
  DIEF_GLOBAL Only for event buffers creates by IDirectFB::CreateInputEventBuffer() with global events enabled. Indicates that the event would have been filtered if the buffer hadn't been global.
  DIEF_REPEAT repeated event, e.g. key or button press
Flags defining which additional (optional) event fields are valid.

DFBInputEvent
  DFBEventClass clazz; clazz of event
  DFBInputEventType type; type of event
  DFBInputDeviceID device_id; source of event
  DFBInputEventFlags flags; which optional fields are valid?
  struct timeval timestamp; time of event creation
  int key_code; hardware keycode, no mapping, -1 if device doesn't differentiate between several keys
  DFBInputDeviceKeyIdentifier key_id; basic mapping, modifier independent
  DFBInputDeviceKeySymbol key_symbol; advanced mapping, unicode compatible, modifier dependent
  DFBInputDeviceModifierMask modifiers; pressed modifiers (optional)
  DFBInputDeviceLockState locks; active locks (optional)
  DFBInputDeviceButtonIdentifier button; in case of a button event
  DFBInputDeviceButtonMask buttons; mask of currently pressed buttons
  DFBInputDeviceAxisIdentifier axis; in case of an axis event
  int axisabs; absolute mouse/ joystick coordinate
  int axisrel; relative mouse/ joystick movement
An input event, item of an input buffer.

DFBWindowEventType
  DWET_NONE
  DWET_POSITION window has been moved by window manager or the application itself
  DWET_SIZE window has been resized by window manager or the application itself
  DWET_CLOSE closing this window has been requested only
  DWET_DESTROYED window got destroyed by global deinitialization function or the application itself
  DWET_GOTFOCUS window got focus
  DWET_LOSTFOCUS window lost focus
  DWET_KEYDOWN a key has gone down while window has focus
  DWET_KEYUP a key has gone up while window has focus
  DWET_BUTTONDOWN mouse button went down in the window
  DWET_BUTTONUP mouse button went up in the window
  DWET_MOTION mouse cursor changed its position in window
  DWET_ENTER mouse cursor entered the window
  DWET_LEAVE mouse cursor left the window
  DWET_WHEEL mouse wheel was moved while window has focus
  DWET_ALL all event types
Window Event Types - can also be used as flags for event filters.

DFBWindowEvent
  DFBEventClass clazz; clazz of event
  DFBWindowEventType type; type of event
  DFBWindowID window_id; source of event
  int x; x position of window or coordinate within window
  int y; y position of window or coordinate within window
  int cx; x cursor position
  int cy; y cursor position
  int step; wheel step
  int w; width of window
  int h; height of window
  int key_code; hardware keycode, no mapping, -1 if device doesn't differentiate between several keys
  DFBInputDeviceKeyIdentifier key_id; basic mapping, modifier independent
  DFBInputDeviceKeySymbol key_symbol; advanced mapping, unicode compatible, modifier dependent
  DFBInputDeviceModifierMask modifiers; pressed modifiers
  DFBInputDeviceLockState locks; active locks
  DFBInputDeviceButtonIdentifier button; button being pressed or released
  DFBInputDeviceButtonMask buttons; mask of currently pressed buttons
  struct timeval timestamp; always set
Event from the windowing system.

DFBUserEvent
  DFBEventClass clazz; clazz of event
  unsigned int type; custom type
  void *data; custom data
Event for usage by the user of this library.

DFBUniversalEvent
  DFBEventClass clazz; clazz of event (DFEC_UNIVERSAL)
  unsigned int size; size of this event, minimum is sizeof(DFBUniversalEvent), e.g. 8 bytes (on 32bit architectures)
Universal event for custom usage with variable size.

DFBEvent
  DFBEventClass clazz; clazz of event
  DFBInputEvent input; field for input events
  DFBWindowEvent window; field for window events
  DFBUserEvent user; field for user-defined events
  DFBUniversalEvent universal; field for universal events
General container for a DirectFB Event.

DFBEventBufferStats
  unsigned int num_events; Total number of events in the queue.
  unsigned int DFEC_INPUT; Number of input events.
  unsigned int DFEC_WINDOW; Number of window events.
  unsigned int DFEC_USER; Number of user events.
  unsigned int DFEC_UNIVERSAL; Number of universal events.
  unsigned int DIET_KEYPRESS;
  unsigned int DIET_KEYRELEASE;
  unsigned int DIET_BUTTONPRESS;
  unsigned int DIET_BUTTONRELEASE;
  unsigned int DIET_AXISMOTION;
  unsigned int DWET_POSITION;
  unsigned int DWET_SIZE;
  unsigned int DWET_CLOSE;
  unsigned int DWET_DESTROYED;
  unsigned int DWET_GOTFOCUS;
  unsigned int DWET_LOSTFOCUS;
  unsigned int DWET_KEYDOWN;
  unsigned int DWET_KEYUP;
  unsigned int DWET_BUTTONDOWN;
  unsigned int DWET_BUTTONUP;
  unsigned int DWET_MOTION;
  unsigned int DWET_ENTER;
  unsigned int DWET_LEAVE;
  unsigned int DWET_WHEEL;
  unsigned int DWET_POSITION_SIZE;
Statistics about event buffer queue.

DFBWindowOptions
  DWOP_NONE none of these
  DWOP_COLORKEYING enable color key
  DWOP_ALPHACHANNEL enable alpha blending using the window's alpha channel
  DWOP_OPAQUE_REGION overrides DWOP_ALPHACHANNEL for the region set by SetOpaqueRegion()
  DWOP_SHAPED window doesn't receive mouse events for invisible regions, must be used with DWOP_ALPHACHANNEL or DWOP_COLORKEYING
  DWOP_KEEP_POSITION window can't be moved with the mouse
  DWOP_KEEP_SIZE window can't be resized with the mouse
  DWOP_KEEP_STACKING window can't be raised or lowered with the mouse
  DWOP_GHOST never get focus or input, clicks will go through, implies DWOP_KEEP...
  DWOP_INDESTRUCTIBLE window can't be destroyed by internal shortcut
  DWOP_ALL all possible options
Flags controlling the appearance and behaviour of the window.

DFBWindowStackingClass
  DWSC_MIDDLE This is the default stacking class of new windows.
  DWSC_UPPER Window is always above windows in the middle stacking class. Only windows that are also in the upper stacking class can get above them.
  DWSC_LOWER Window is always below windows in the middle stacking class. Only windows that are also in the lower stacking class can get below them.
The stacking class restricts the stacking order of windows.

DFBImageCapabilities
  DICAPS_NONE None of these.
  DICAPS_ALPHACHANNEL The image data contains an alphachannel.
  DICAPS_COLORKEY The image has a colorkey, e.g. the transparent color of a GIF image.
Capabilities of an image.

DFBImageDescription
  DFBImageCapabilities caps; capabilities
  __u8 colorkey_r; colorkey red channel
  __u8 colorkey_g; colorkey green channel
  __u8 colorkey_b; colorkey blue channel
Information about an image including capabilities and values belonging to available capabilities.

DFBStreamCapabilities
  DVSCAPS_NONE None of these.
  DVSCAPS_VIDEO Stream contains video.
  DVSCAPS_AUDIO Stream contains audio.
Capabilities of an audio/video stream.

video
  DFBStreamCapabilities caps; capabilities
  double framerate; number of frames per second
  double aspect; frame aspect ratio
  int bitrate; amount of bits per second
Informations about an audio/video stream.

DFBInputDeviceKeyType
  DIKT_UNICODE Unicode 3.x character (compatible to Latin-1)
  DIKT_SPECIAL Special key (e.g. Cursor Up or Menu)
  DIKT_FUNCTION Function key (F1 - Fn)
  DIKT_MODIFIER Modifier key
  DIKT_LOCK Lock key (e.g. CapsLock)
  DIKT_DEAD Dead key (e.g. dead grave)
  DIKT_CUSTOM Custom key (vendor specific)
  DIKT_IDENTIFIER DirectFB key identifier
DirectFB key types (for advanced mapping)

DFBInputDeviceModifierKeyIdentifier
  DIMKI_SHIFT Shift modifier key
  DIMKI_CONTROL Control modifier key
  DIMKI_ALT Alt modifier key
  DIMKI_ALTGR AltGr modifier key
  DIMKI_META Meta modifier key
  DIMKI_SUPER Super modifier key
  DIMKI_HYPER Hyper modifier key
  DIMKI_FIRST
  DIMKI_LAST
DirectFB modifier key identifiers (for advanced mapping)

DFBInputDeviceKeyIdentifier
  DIKI_UNKNOWN
  DIKI_A
  DIKI_B
  DIKI_C
  DIKI_D
  DIKI_E
  DIKI_F
  DIKI_G
  DIKI_H
  DIKI_I
  DIKI_J
  DIKI_K
  DIKI_L
  DIKI_M
  DIKI_N
  DIKI_O
  DIKI_P
  DIKI_Q
  DIKI_R
  DIKI_S
  DIKI_T
  DIKI_U
  DIKI_V
  DIKI_W
  DIKI_X
  DIKI_Y
  DIKI_Z
  DIKI_0
  DIKI_1
  DIKI_2
  DIKI_3
  DIKI_4
  DIKI_5
  DIKI_6
  DIKI_7
  DIKI_8
  DIKI_9
  DIKI_F1
  DIKI_F2
  DIKI_F3
  DIKI_F4
  DIKI_F5
  DIKI_F6
  DIKI_F7
  DIKI_F8
  DIKI_F9
  DIKI_F10
  DIKI_F11
  DIKI_F12
  DIKI_SHIFT_L
  DIKI_SHIFT_R
  DIKI_CONTROL_L
  DIKI_CONTROL_R
  DIKI_ALT_L
  DIKI_ALT_R
  DIKI_META_L
  DIKI_META_R
  DIKI_SUPER_L
  DIKI_SUPER_R
  DIKI_HYPER_L
  DIKI_HYPER_R
  DIKI_CAPS_LOCK
  DIKI_NUM_LOCK
  DIKI_SCROLL_LOCK
  DIKI_ESCAPE
  DIKI_LEFT
  DIKI_RIGHT
  DIKI_UP
  DIKI_DOWN
  DIKI_TAB
  DIKI_ENTER
  DIKI_SPACE
  DIKI_BACKSPACE
  DIKI_INSERT
  DIKI_DELETE
  DIKI_HOME
  DIKI_END
  DIKI_PAGE_UP
  DIKI_PAGE_DOWN
  DIKI_PRINT
  DIKI_PAUSE
  DIKI_QUOTE_LEFT TLDE
  DIKI_MINUS_SIGN AE11
  DIKI_EQUALS_SIGN AE12
  DIKI_BRACKET_LEFT AD11
  DIKI_BRACKET_RIGHT AD12
  DIKI_BACKSLASH BKSL
  DIKI_SEMICOLON AC10
  DIKI_QUOTE_RIGHT AC11
  DIKI_COMMA AB08
  DIKI_PERIOD AB09
  DIKI_SLASH AB10
  DIKI_LESS_SIGN 103rd
  DIKI_KP_DIV
  DIKI_KP_MULT
  DIKI_KP_MINUS
  DIKI_KP_PLUS
  DIKI_KP_ENTER
  DIKI_KP_SPACE
  DIKI_KP_TAB
  DIKI_KP_F1
  DIKI_KP_F2
  DIKI_KP_F3
  DIKI_KP_F4
  DIKI_KP_EQUAL
  DIKI_KP_SEPARATOR
  DIKI_KP_DECIMAL
  DIKI_KP_0
  DIKI_KP_1
  DIKI_KP_2
  DIKI_KP_3
  DIKI_KP_4
  DIKI_KP_5
  DIKI_KP_6
  DIKI_KP_7
  DIKI_KP_8
  DIKI_KP_9
  DIKI_KEYDEF_END
DirectFB key identifiers (for basic mapping)

DFBInputDeviceKeySymbol
  DIKS_NULL
  DIKS_BACKSPACE
  DIKS_TAB
  DIKS_RETURN
  DIKS_CANCEL
  DIKS_ESCAPE
  DIKS_SPACE
  DIKS_EXCLAMATION_MARK
  DIKS_QUOTATION
  DIKS_NUMBER_SIGN
  DIKS_DOLLAR_SIGN
  DIKS_PERCENT_SIGN
  DIKS_AMPERSAND
  DIKS_APOSTROPHE
  DIKS_PARENTHESIS_LEFT
  DIKS_PARENTHESIS_RIGHT
  DIKS_ASTERISK
  DIKS_PLUS_SIGN
  DIKS_COMMA
  DIKS_MINUS_SIGN
  DIKS_PERIOD
  DIKS_SLASH
  DIKS_0
  DIKS_1
  DIKS_2
  DIKS_3
  DIKS_4
  DIKS_5
  DIKS_6
  DIKS_7
  DIKS_8
  DIKS_9
  DIKS_COLON
  DIKS_SEMICOLON
  DIKS_LESS_THAN_SIGN
  DIKS_EQUALS_SIGN
  DIKS_GREATER_THAN_SIGN
  DIKS_QUESTION_MARK
  DIKS_AT
  DIKS_CAPITAL_A
  DIKS_CAPITAL_B
  DIKS_CAPITAL_C
  DIKS_CAPITAL_D
  DIKS_CAPITAL_E
  DIKS_CAPITAL_F
  DIKS_CAPITAL_G
  DIKS_CAPITAL_H
  DIKS_CAPITAL_I
  DIKS_CAPITAL_J
  DIKS_CAPITAL_K
  DIKS_CAPITAL_L
  DIKS_CAPITAL_M
  DIKS_CAPITAL_N
  DIKS_CAPITAL_O
  DIKS_CAPITAL_P
  DIKS_CAPITAL_Q
  DIKS_CAPITAL_R
  DIKS_CAPITAL_S
  DIKS_CAPITAL_T
  DIKS_CAPITAL_U
  DIKS_CAPITAL_V
  DIKS_CAPITAL_W
  DIKS_CAPITAL_X
  DIKS_CAPITAL_Y
  DIKS_CAPITAL_Z
  DIKS_SQUARE_BRACKET_LEFT
  DIKS_BACKSLASH
  DIKS_SQUARE_BRACKET_RIGHT
  DIKS_CIRCUMFLEX_ACCENT
  DIKS_UNDERSCORE
  DIKS_GRAVE_ACCENT
  DIKS_SMALL_A
  DIKS_SMALL_B
  DIKS_SMALL_C
  DIKS_SMALL_D
  DIKS_SMALL_E
  DIKS_SMALL_F
  DIKS_SMALL_G
  DIKS_SMALL_H
  DIKS_SMALL_I
  DIKS_SMALL_J
  DIKS_SMALL_K
  DIKS_SMALL_L
  DIKS_SMALL_M
  DIKS_SMALL_N
  DIKS_SMALL_O
  DIKS_SMALL_P
  DIKS_SMALL_Q
  DIKS_SMALL_R
  DIKS_SMALL_S
  DIKS_SMALL_T
  DIKS_SMALL_U
  DIKS_SMALL_V
  DIKS_SMALL_W
  DIKS_SMALL_X
  DIKS_SMALL_Y
  DIKS_SMALL_Z
  DIKS_CURLY_BRACKET_LEFT
  DIKS_VERTICAL_BAR
  DIKS_CURLY_BRACKET_RIGHT
  DIKS_TILDE
  DIKS_DELETE
  DIKS_ENTER
  DIKS_CURSOR_LEFT
  DIKS_CURSOR_RIGHT
  DIKS_CURSOR_UP
  DIKS_CURSOR_DOWN
  DIKS_INSERT
  DIKS_HOME
  DIKS_END
  DIKS_PAGE_UP
  DIKS_PAGE_DOWN
  DIKS_PRINT
  DIKS_PAUSE
  DIKS_OK
  DIKS_SELECT
  DIKS_GOTO
  DIKS_CLEAR
  DIKS_POWER
  DIKS_POWER2
  DIKS_OPTION
  DIKS_MENU
  DIKS_HELP
  DIKS_INFO
  DIKS_TIME
  DIKS_VENDOR
  DIKS_ARCHIVE
  DIKS_PROGRAM
  DIKS_CHANNEL
  DIKS_FAVORITES
  DIKS_EPG
  DIKS_PVR
  DIKS_MHP
  DIKS_LANGUAGE
  DIKS_TITLE
  DIKS_SUBTITLE
  DIKS_ANGLE
  DIKS_ZOOM
  DIKS_MODE
  DIKS_KEYBOARD
  DIKS_PC
  DIKS_SCREEN
  DIKS_TV
  DIKS_TV2
  DIKS_VCR
  DIKS_VCR2
  DIKS_SAT
  DIKS_SAT2
  DIKS_CD
  DIKS_TAPE
  DIKS_RADIO
  DIKS_TUNER
  DIKS_PLAYER
  DIKS_TEXT
  DIKS_DVD
  DIKS_AUX
  DIKS_MP3
  DIKS_PHONE
  DIKS_AUDIO
  DIKS_VIDEO
  DIKS_INTERNET
  DIKS_MAIL
  DIKS_NEWS
  DIKS_DIRECTORY
  DIKS_LIST
  DIKS_CALCULATOR
  DIKS_MEMO
  DIKS_CALENDAR
  DIKS_EDITOR
  DIKS_RED
  DIKS_GREEN
  DIKS_YELLOW
  DIKS_BLUE
  DIKS_CHANNEL_UP
  DIKS_CHANNEL_DOWN
  DIKS_BACK
  DIKS_FORWARD
  DIKS_FIRST
  DIKS_LAST
  DIKS_VOLUME_UP
  DIKS_VOLUME_DOWN
  DIKS_MUTE
  DIKS_AB
  DIKS_PLAYPAUSE
  DIKS_PLAY
  DIKS_STOP
  DIKS_RESTART
  DIKS_SLOW
  DIKS_FAST
  DIKS_RECORD
  DIKS_EJECT
  DIKS_SHUFFLE
  DIKS_REWIND
  DIKS_FASTFORWARD
  DIKS_PREVIOUS
  DIKS_NEXT
  DIKS_BEGIN
  DIKS_DIGITS
  DIKS_TEEN
  DIKS_TWEN
  DIKS_BREAK
  DIKS_EXIT
  DIKS_SETUP
  DIKS_CURSOR_LEFT_UP
  DIKS_CURSOR_LEFT_DOWN
  DIKS_CURSOR_UP_RIGHT
  DIKS_CURSOR_DOWN_RIGHT
  DIKS_F1
  DIKS_F2
  DIKS_F3
  DIKS_F4
  DIKS_F5
  DIKS_F6
  DIKS_F7
  DIKS_F8
  DIKS_F9
  DIKS_F10
  DIKS_F11
  DIKS_F12
  DIKS_SHIFT
  DIKS_CONTROL
  DIKS_ALT
  DIKS_ALTGR
  DIKS_META
  DIKS_SUPER
  DIKS_HYPER
  DIKS_CAPS_LOCK
  DIKS_NUM_LOCK
  DIKS_SCROLL_LOCK
  DIKS_DEAD_ABOVEDOT
  DIKS_DEAD_ABOVERING
  DIKS_DEAD_ACUTE
  DIKS_DEAD_BREVE
  DIKS_DEAD_CARON
  DIKS_DEAD_CEDILLA
  DIKS_DEAD_CIRCUMFLEX
  DIKS_DEAD_DIAERESIS
  DIKS_DEAD_DOUBLEACUTE
  DIKS_DEAD_GRAVE
  DIKS_DEAD_IOTA
  DIKS_DEAD_MACRON
  DIKS_DEAD_OGONEK
  DIKS_DEAD_SEMIVOICED_SOUND
  DIKS_DEAD_TILDE
  DIKS_DEAD_VOICED_SOUND
  DIKS_CUSTOM0
  DIKS_CUSTOM1
  DIKS_CUSTOM2
  DIKS_CUSTOM3
  DIKS_CUSTOM4
  DIKS_CUSTOM5
  DIKS_CUSTOM6
  DIKS_CUSTOM7
  DIKS_CUSTOM8
  DIKS_CUSTOM9
DirectFB key symbols (for advanced mapping)

DFBInputDeviceLockState
  DILS_SCROLL scroll-lock active?
  DILS_NUM num-lock active?
  DILS_CAPS caps-lock active?
Flags specifying the key locks that are currently active.

DFBInputDeviceKeymapSymbolIndex
  DIKSI_BASE base group, base level (no modifier pressed)
  DIKSI_BASE_SHIFT base group, shifted level (with Shift pressed)
  DIKSI_ALT alternative group, base level (with AltGr pressed)
  DIKSI_ALT_SHIFT alternative group, shifted level (with AltGr and Shift pressed)
  DIKSI_LAST
Groups and levels as an index to the symbol array.

DFBInputDeviceKeymapEntry
  int code; hardware key code
  DFBInputDeviceLockState locks; locks activating shifted level
  DFBInputDeviceKeyIdentifier identifier; basic mapping
  DFBInputDeviceKeySymbol symbols[DIKSI_LAST+1]; advanced key mapping
One entry in the keymap of an input device.