summaryrefslogtreecommitdiffstats
path: root/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02001-directfb.h
diff options
context:
space:
mode:
Diffstat (limited to 'debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02001-directfb.h')
-rw-r--r--debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02001-directfb.h2001
1 files changed, 2001 insertions, 0 deletions
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02001-directfb.h b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02001-directfb.h
new file mode 100644
index 00000000..3c7ffc18
--- /dev/null
+++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/tests/expected/c/02001-directfb.h
@@ -0,0 +1,2001 @@
+typedef unsigned int size_t;
+typedef unsigned char __u_char;
+typedef unsigned short int __u_short;
+typedef unsigned int __u_int;
+typedef unsigned long int __u_long;
+typedef signed char __int8_t;
+typedef unsigned char __uint8_t;
+typedef signed short int __int16_t;
+typedef unsigned short int __uint16_t;
+typedef signed int __int32_t;
+typedef unsigned int __uint32_t;
+__extension__ typedef signed long long int __int64_t;
+__extension__ typedef unsigned long long int __uint64_t;
+__extension__ typedef long long int __quad_t;
+__extension__ typedef unsigned long long int __u_quad_t;
+__extension__ typedef __u_quad_t __dev_t;
+__extension__ typedef unsigned int __uid_t;
+__extension__ typedef unsigned int __gid_t;
+__extension__ typedef unsigned long int __ino_t;
+__extension__ typedef __u_quad_t __ino64_t;
+__extension__ typedef unsigned int __mode_t;
+__extension__ typedef unsigned int __nlink_t;
+__extension__ typedef long int __off_t;
+__extension__ typedef __quad_t __off64_t;
+__extension__ typedef int __pid_t;
+__extension__ typedef struct
+{
+ int __val[2];
+} __fsid_t;
+__extension__ typedef long int __clock_t;
+__extension__ typedef unsigned long int __rlim_t;
+__extension__ typedef __u_quad_t __rlim64_t;
+__extension__ typedef unsigned int __id_t;
+__extension__ typedef long int __time_t;
+__extension__ typedef unsigned int __useconds_t;
+__extension__ typedef long int __suseconds_t;
+__extension__ typedef int __daddr_t;
+__extension__ typedef long int __swblk_t;
+__extension__ typedef int __key_t;
+__extension__ typedef int __clockid_t;
+__extension__ typedef int __timer_t;
+__extension__ typedef long int __blksize_t;
+__extension__ typedef long int __blkcnt_t;
+__extension__ typedef __quad_t __blkcnt64_t;
+__extension__ typedef unsigned long int __fsblkcnt_t;
+__extension__ typedef __u_quad_t __fsblkcnt64_t;
+__extension__ typedef unsigned long int __fsfilcnt_t;
+__extension__ typedef __u_quad_t __fsfilcnt64_t;
+__extension__ typedef int __ssize_t;
+typedef __off64_t __loff_t;
+typedef __quad_t * __qaddr_t;
+typedef char * __caddr_t;
+__extension__ typedef int __intptr_t;
+__extension__ typedef unsigned int __socklen_t;
+typedef __u_char u_char;
+typedef __u_short u_short;
+typedef __u_int u_int;
+typedef __u_long u_long;
+typedef __quad_t quad_t;
+typedef __u_quad_t u_quad_t;
+typedef __fsid_t fsid_t;
+typedef __loff_t loff_t;
+typedef __ino_t ino_t;
+typedef __dev_t dev_t;
+typedef __gid_t gid_t;
+typedef __mode_t mode_t;
+typedef __nlink_t nlink_t;
+typedef __uid_t uid_t;
+typedef __off_t off_t;
+typedef __pid_t pid_t;
+typedef __id_t id_t;
+typedef __ssize_t ssize_t;
+typedef __daddr_t daddr_t;
+typedef __caddr_t caddr_t;
+typedef __key_t key_t;
+typedef __time_t time_t;
+typedef __clockid_t clockid_t;
+typedef __timer_t timer_t;
+typedef unsigned long int ulong;
+typedef unsigned short int ushort;
+typedef unsigned int uint;
+typedef int int8_t __attribute__((__mode__(__QI__)));
+typedef int int16_t __attribute__((__mode__(__HI__)));
+typedef int int32_t __attribute__((__mode__(__SI__)));
+typedef int int64_t __attribute__((__mode__(__DI__)));
+typedef unsigned int u_int8_t __attribute__((__mode__(__QI__)));
+typedef unsigned int u_int16_t __attribute__((__mode__(__HI__)));
+typedef unsigned int u_int32_t __attribute__((__mode__(__SI__)));
+typedef unsigned int u_int64_t __attribute__((__mode__(__DI__)));
+typedef int register_t __attribute__((__mode__(__word__)));
+typedef int __sig_atomic_t;
+typedef struct
+{
+ unsigned long int __val[(1024 / (8 * sizeof(unsigned long int)))];
+} __sigset_t;
+typedef __sigset_t sigset_t;
+struct timespec
+{
+ __time_t tv_sec;
+ long int tv_nsec;
+};
+struct timeval
+{
+ __time_t tv_sec;
+ __suseconds_t tv_usec;
+};
+typedef __suseconds_t suseconds_t;
+typedef long int __fd_mask;
+typedef struct
+{
+ __fd_mask __fds_bits[1024 / (8 * sizeof(__fd_mask))];
+} fd_set;
+typedef __fd_mask fd_mask;
+extern int select(int __nfds, fd_set *__restrict __readfds,
+ fd_set *__restrict __writefds,
+ fd_set *__restrict __exceptfds,
+ struct timeval *__restrict __timeout);
+__extension__
+extern __inline unsigned int gnu_dev_major(unsigned long long int __dev)
+__attribute__((__nothrow__));
+__extension__
+extern __inline unsigned int gnu_dev_minor(unsigned long long int __dev)
+__attribute__((__nothrow__));
+__extension__
+extern __inline unsigned long long int gnu_dev_makedev(unsigned int __major,
+ unsigned int __minor)
+__attribute__((__nothrow__));
+
+__extension__ extern __inline unsigned int
+__attribute__((__nothrow__)) gnu_dev_major(unsigned long long int __dev)
+{
+ return(((__dev >> 8) & 0xfff) | ((unsigned int)(__dev >> 32) & ~0xfff));
+}
+
+__extension__ extern __inline unsigned int
+__attribute__((__nothrow__)) gnu_dev_minor(unsigned long long int __dev)
+{
+ return((__dev & 0xff) | ((unsigned int)(__dev >> 12) & ~0xff));
+}
+
+__extension__ extern __inline unsigned long long int
+__attribute__((__nothrow__)) gnu_dev_makedev(unsigned int __major, unsigned int __minor)
+{
+ return((__minor & 0xff) | ((__major & 0xfff) << 8)
+ | (((unsigned long long int)(__minor & ~0xff)) << 12)
+ | (((unsigned long long int)(__major & ~0xfff)) << 32));
+}
+
+typedef __blkcnt_t blkcnt_t;
+typedef __fsblkcnt_t fsblkcnt_t;
+typedef __fsfilcnt_t fsfilcnt_t;
+struct __sched_param
+{
+ int __sched_priority;
+};
+typedef int __atomic_lock_t;
+struct _pthread_fastlock
+{
+ long int __status;
+ __atomic_lock_t __spinlock;
+};
+typedef struct _pthread_descr_struct *_pthread_descr;
+typedef struct __pthread_attr_s
+{
+ int __detachstate;
+ int __schedpolicy;
+ struct __sched_param __schedparam;
+ int __inheritsched;
+ int __scope;
+ size_t __guardsize;
+ int __stackaddr_set;
+ void *__stackaddr;
+ size_t __stacksize;
+} pthread_attr_t;
+__extension__ typedef long long __pthread_cond_align_t;
+typedef struct
+{
+ struct _pthread_fastlock __c_lock;
+ _pthread_descr __c_waiting;
+ char __padding[48 - sizeof(struct _pthread_fastlock)
+ - sizeof(_pthread_descr) - sizeof(__pthread_cond_align_t)];
+ __pthread_cond_align_t __align;
+} pthread_cond_t;
+typedef struct
+{
+ int __dummy;
+} pthread_condattr_t;
+typedef unsigned int pthread_key_t;
+typedef struct
+{
+ int __m_reserved;
+ int __m_count;
+ _pthread_descr __m_owner;
+ int __m_kind;
+ struct _pthread_fastlock __m_lock;
+} pthread_mutex_t;
+typedef struct
+{
+ int __mutexkind;
+} pthread_mutexattr_t;
+typedef int pthread_once_t;
+typedef unsigned long int pthread_t;
+typedef struct
+{
+ unsigned long fds_bits [(1024 / (8 * sizeof(unsigned long)))];
+} __kernel_fd_set;
+typedef void (*__kernel_sighandler_t)(int);
+typedef int __kernel_key_t;
+typedef int __kernel_mqd_t;
+typedef unsigned long __kernel_ino_t;
+typedef unsigned short __kernel_mode_t;
+typedef unsigned short __kernel_nlink_t;
+typedef long __kernel_off_t;
+typedef int __kernel_pid_t;
+typedef unsigned short __kernel_ipc_pid_t;
+typedef unsigned short __kernel_uid_t;
+typedef unsigned short __kernel_gid_t;
+typedef unsigned int __kernel_size_t;
+typedef int __kernel_ssize_t;
+typedef int __kernel_ptrdiff_t;
+typedef long __kernel_time_t;
+typedef long __kernel_suseconds_t;
+typedef long __kernel_clock_t;
+typedef int __kernel_timer_t;
+typedef int __kernel_clockid_t;
+typedef int __kernel_daddr_t;
+typedef char * __kernel_caddr_t;
+typedef unsigned short __kernel_uid16_t;
+typedef unsigned short __kernel_gid16_t;
+typedef unsigned int __kernel_uid32_t;
+typedef unsigned int __kernel_gid32_t;
+typedef unsigned short __kernel_old_uid_t;
+typedef unsigned short __kernel_old_gid_t;
+typedef unsigned short __kernel_old_dev_t;
+typedef long long __kernel_loff_t;
+typedef struct
+{
+ int __val[2];
+} __kernel_fsid_t;
+typedef unsigned short umode_t;
+typedef __signed__ char __s8;
+typedef unsigned char __u8;
+typedef __signed__ short __s16;
+typedef unsigned short __u16;
+typedef __signed__ int __s32;
+typedef unsigned int __u32;
+typedef __signed__ long long __s64;
+typedef unsigned long long __u64;
+typedef __u16 __le16;
+typedef __u16 __be16;
+typedef __u32 __le32;
+typedef __u32 __be32;
+typedef __u64 __le64;
+typedef __u64 __be64;
+struct timezone
+{
+ int tz_minuteswest;
+ int tz_dsttime;
+};
+typedef struct timezone *__restrict __timezone_ptr_t;
+extern int gettimeofday(struct timeval *__restrict __tv,
+ __timezone_ptr_t __tz) __attribute__((__nothrow__));
+extern int settimeofday(__const struct timeval *__tv,
+ __const struct timezone *__tz) __attribute__((__nothrow__));
+extern int adjtime(__const struct timeval *__delta,
+ struct timeval *__olddelta) __attribute__((__nothrow__));
+
+enum __itimer_which
+{
+ ITIMER_REAL = 0,
+ ITIMER_VIRTUAL = 1,
+ ITIMER_PROF = 2
+};
+struct itimerval
+{
+ struct timeval it_interval;
+ struct timeval it_value;
+};
+typedef int __itimer_which_t;
+extern int getitimer(__itimer_which_t __which,
+ struct itimerval *__value) __attribute__((__nothrow__));
+extern int setitimer(__itimer_which_t __which,
+ __const struct itimerval *__restrict __new,
+ struct itimerval *__restrict __old) __attribute__((__nothrow__));
+extern int utimes(__const char *__file, __const struct timeval __tvp[2])
+__attribute__((__nothrow__));
+extern int lutimes(__const char *__file, __const struct timeval __tvp[2])
+__attribute__((__nothrow__));
+extern int futimes(int __fd, __const struct timeval __tvp[2]) __attribute__((__nothrow__));
+
+typedef enum
+{
+ DIKT_UNICODE = 0x0000,
+ DIKT_SPECIAL = 0xF000,
+ DIKT_FUNCTION = 0xF100,
+ DIKT_MODIFIER = 0xF200,
+ DIKT_LOCK = 0xF300,
+ DIKT_DEAD = 0xF400,
+ DIKT_CUSTOM = 0xF500,
+ DIKT_IDENTIFIER = 0xF600
+} DFBInputDeviceKeyType;
+typedef enum
+{
+ DIMKI_SHIFT,
+ DIMKI_CONTROL,
+ DIMKI_ALT,
+ DIMKI_ALTGR,
+ DIMKI_META,
+ DIMKI_SUPER,
+ DIMKI_HYPER,
+ DIMKI_FIRST = DIMKI_SHIFT,
+ DIMKI_LAST = DIMKI_HYPER
+} DFBInputDeviceModifierKeyIdentifier;
+typedef enum
+{
+ DIKI_UNKNOWN = ((DIKT_IDENTIFIER) | (0)),
+ 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_ALTGR,
+ 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,
+ DIKI_MINUS_SIGN,
+ DIKI_EQUALS_SIGN,
+ DIKI_BRACKET_LEFT,
+ DIKI_BRACKET_RIGHT,
+ DIKI_BACKSLASH,
+ DIKI_SEMICOLON,
+ DIKI_QUOTE_RIGHT,
+ DIKI_COMMA,
+ DIKI_PERIOD,
+ DIKI_SLASH,
+ DIKI_LESS_SIGN,
+ 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,
+ DIKI_NUMBER_OF_KEYS = DIKI_KEYDEF_END - ((DIKT_IDENTIFIER) | (0))
+} DFBInputDeviceKeyIdentifier;
+typedef enum
+{
+ DIKS_NULL = ((DIKT_UNICODE) | (0x00)),
+ DIKS_BACKSPACE = ((DIKT_UNICODE) | (0x08)),
+ DIKS_TAB = ((DIKT_UNICODE) | (0x09)),
+ DIKS_RETURN = ((DIKT_UNICODE) | (0x0D)),
+ DIKS_CANCEL = ((DIKT_UNICODE) | (0x18)),
+ DIKS_ESCAPE = ((DIKT_UNICODE) | (0x1B)),
+ DIKS_SPACE = ((DIKT_UNICODE) | (0x20)),
+ DIKS_EXCLAMATION_MARK = ((DIKT_UNICODE) | (0x21)),
+ DIKS_QUOTATION = ((DIKT_UNICODE) | (0x22)),
+ DIKS_NUMBER_SIGN = ((DIKT_UNICODE) | (0x23)),
+ DIKS_DOLLAR_SIGN = ((DIKT_UNICODE) | (0x24)),
+ DIKS_PERCENT_SIGN = ((DIKT_UNICODE) | (0x25)),
+ DIKS_AMPERSAND = ((DIKT_UNICODE) | (0x26)),
+ DIKS_APOSTROPHE = ((DIKT_UNICODE) | (0x27)),
+ DIKS_PARENTHESIS_LEFT = ((DIKT_UNICODE) | (0x28)),
+ DIKS_PARENTHESIS_RIGHT = ((DIKT_UNICODE) | (0x29)),
+ DIKS_ASTERISK = ((DIKT_UNICODE) | (0x2A)),
+ DIKS_PLUS_SIGN = ((DIKT_UNICODE) | (0x2B)),
+ DIKS_COMMA = ((DIKT_UNICODE) | (0x2C)),
+ DIKS_MINUS_SIGN = ((DIKT_UNICODE) | (0x2D)),
+ DIKS_PERIOD = ((DIKT_UNICODE) | (0x2E)),
+ DIKS_SLASH = ((DIKT_UNICODE) | (0x2F)),
+ DIKS_0 = ((DIKT_UNICODE) | (0x30)),
+ DIKS_1 = ((DIKT_UNICODE) | (0x31)),
+ DIKS_2 = ((DIKT_UNICODE) | (0x32)),
+ DIKS_3 = ((DIKT_UNICODE) | (0x33)),
+ DIKS_4 = ((DIKT_UNICODE) | (0x34)),
+ DIKS_5 = ((DIKT_UNICODE) | (0x35)),
+ DIKS_6 = ((DIKT_UNICODE) | (0x36)),
+ DIKS_7 = ((DIKT_UNICODE) | (0x37)),
+ DIKS_8 = ((DIKT_UNICODE) | (0x38)),
+ DIKS_9 = ((DIKT_UNICODE) | (0x39)),
+ DIKS_COLON = ((DIKT_UNICODE) | (0x3A)),
+ DIKS_SEMICOLON = ((DIKT_UNICODE) | (0x3B)),
+ DIKS_LESS_THAN_SIGN = ((DIKT_UNICODE) | (0x3C)),
+ DIKS_EQUALS_SIGN = ((DIKT_UNICODE) | (0x3D)),
+ DIKS_GREATER_THAN_SIGN = ((DIKT_UNICODE) | (0x3E)),
+ DIKS_QUESTION_MARK = ((DIKT_UNICODE) | (0x3F)),
+ DIKS_AT = ((DIKT_UNICODE) | (0x40)),
+ DIKS_CAPITAL_A = ((DIKT_UNICODE) | (0x41)),
+ DIKS_CAPITAL_B = ((DIKT_UNICODE) | (0x42)),
+ DIKS_CAPITAL_C = ((DIKT_UNICODE) | (0x43)),
+ DIKS_CAPITAL_D = ((DIKT_UNICODE) | (0x44)),
+ DIKS_CAPITAL_E = ((DIKT_UNICODE) | (0x45)),
+ DIKS_CAPITAL_F = ((DIKT_UNICODE) | (0x46)),
+ DIKS_CAPITAL_G = ((DIKT_UNICODE) | (0x47)),
+ DIKS_CAPITAL_H = ((DIKT_UNICODE) | (0x48)),
+ DIKS_CAPITAL_I = ((DIKT_UNICODE) | (0x49)),
+ DIKS_CAPITAL_J = ((DIKT_UNICODE) | (0x4A)),
+ DIKS_CAPITAL_K = ((DIKT_UNICODE) | (0x4B)),
+ DIKS_CAPITAL_L = ((DIKT_UNICODE) | (0x4C)),
+ DIKS_CAPITAL_M = ((DIKT_UNICODE) | (0x4D)),
+ DIKS_CAPITAL_N = ((DIKT_UNICODE) | (0x4E)),
+ DIKS_CAPITAL_O = ((DIKT_UNICODE) | (0x4F)),
+ DIKS_CAPITAL_P = ((DIKT_UNICODE) | (0x50)),
+ DIKS_CAPITAL_Q = ((DIKT_UNICODE) | (0x51)),
+ DIKS_CAPITAL_R = ((DIKT_UNICODE) | (0x52)),
+ DIKS_CAPITAL_S = ((DIKT_UNICODE) | (0x53)),
+ DIKS_CAPITAL_T = ((DIKT_UNICODE) | (0x54)),
+ DIKS_CAPITAL_U = ((DIKT_UNICODE) | (0x55)),
+ DIKS_CAPITAL_V = ((DIKT_UNICODE) | (0x56)),
+ DIKS_CAPITAL_W = ((DIKT_UNICODE) | (0x57)),
+ DIKS_CAPITAL_X = ((DIKT_UNICODE) | (0x58)),
+ DIKS_CAPITAL_Y = ((DIKT_UNICODE) | (0x59)),
+ DIKS_CAPITAL_Z = ((DIKT_UNICODE) | (0x5A)),
+ DIKS_SQUARE_BRACKET_LEFT = ((DIKT_UNICODE) | (0x5B)),
+ DIKS_BACKSLASH = ((DIKT_UNICODE) | (0x5C)),
+ DIKS_SQUARE_BRACKET_RIGHT = ((DIKT_UNICODE) | (0x5D)),
+ DIKS_CIRCUMFLEX_ACCENT = ((DIKT_UNICODE) | (0x5E)),
+ DIKS_UNDERSCORE = ((DIKT_UNICODE) | (0x5F)),
+ DIKS_GRAVE_ACCENT = ((DIKT_UNICODE) | (0x60)),
+ DIKS_SMALL_A = ((DIKT_UNICODE) | (0x61)),
+ DIKS_SMALL_B = ((DIKT_UNICODE) | (0x62)),
+ DIKS_SMALL_C = ((DIKT_UNICODE) | (0x63)),
+ DIKS_SMALL_D = ((DIKT_UNICODE) | (0x64)),
+ DIKS_SMALL_E = ((DIKT_UNICODE) | (0x65)),
+ DIKS_SMALL_F = ((DIKT_UNICODE) | (0x66)),
+ DIKS_SMALL_G = ((DIKT_UNICODE) | (0x67)),
+ DIKS_SMALL_H = ((DIKT_UNICODE) | (0x68)),
+ DIKS_SMALL_I = ((DIKT_UNICODE) | (0x69)),
+ DIKS_SMALL_J = ((DIKT_UNICODE) | (0x6A)),
+ DIKS_SMALL_K = ((DIKT_UNICODE) | (0x6B)),
+ DIKS_SMALL_L = ((DIKT_UNICODE) | (0x6C)),
+ DIKS_SMALL_M = ((DIKT_UNICODE) | (0x6D)),
+ DIKS_SMALL_N = ((DIKT_UNICODE) | (0x6E)),
+ DIKS_SMALL_O = ((DIKT_UNICODE) | (0x6F)),
+ DIKS_SMALL_P = ((DIKT_UNICODE) | (0x70)),
+ DIKS_SMALL_Q = ((DIKT_UNICODE) | (0x71)),
+ DIKS_SMALL_R = ((DIKT_UNICODE) | (0x72)),
+ DIKS_SMALL_S = ((DIKT_UNICODE) | (0x73)),
+ DIKS_SMALL_T = ((DIKT_UNICODE) | (0x74)),
+ DIKS_SMALL_U = ((DIKT_UNICODE) | (0x75)),
+ DIKS_SMALL_V = ((DIKT_UNICODE) | (0x76)),
+ DIKS_SMALL_W = ((DIKT_UNICODE) | (0x77)),
+ DIKS_SMALL_X = ((DIKT_UNICODE) | (0x78)),
+ DIKS_SMALL_Y = ((DIKT_UNICODE) | (0x79)),
+ DIKS_SMALL_Z = ((DIKT_UNICODE) | (0x7A)),
+ DIKS_CURLY_BRACKET_LEFT = ((DIKT_UNICODE) | (0x7B)),
+ DIKS_VERTICAL_BAR = ((DIKT_UNICODE) | (0x7C)),
+ DIKS_CURLY_BRACKET_RIGHT = ((DIKT_UNICODE) | (0x7D)),
+ DIKS_TILDE = ((DIKT_UNICODE) | (0x7E)),
+ DIKS_DELETE = ((DIKT_UNICODE) | (0x7F)),
+ DIKS_ENTER = DIKS_RETURN,
+ DIKS_CURSOR_LEFT = ((DIKT_SPECIAL) | (0x00)),
+ DIKS_CURSOR_RIGHT = ((DIKT_SPECIAL) | (0x01)),
+ DIKS_CURSOR_UP = ((DIKT_SPECIAL) | (0x02)),
+ DIKS_CURSOR_DOWN = ((DIKT_SPECIAL) | (0x03)),
+ DIKS_INSERT = ((DIKT_SPECIAL) | (0x04)),
+ DIKS_HOME = ((DIKT_SPECIAL) | (0x05)),
+ DIKS_END = ((DIKT_SPECIAL) | (0x06)),
+ DIKS_PAGE_UP = ((DIKT_SPECIAL) | (0x07)),
+ DIKS_PAGE_DOWN = ((DIKT_SPECIAL) | (0x08)),
+ DIKS_PRINT = ((DIKT_SPECIAL) | (0x09)),
+ DIKS_PAUSE = ((DIKT_SPECIAL) | (0x0A)),
+ DIKS_OK = ((DIKT_SPECIAL) | (0x0B)),
+ DIKS_SELECT = ((DIKT_SPECIAL) | (0x0C)),
+ DIKS_GOTO = ((DIKT_SPECIAL) | (0x0D)),
+ DIKS_CLEAR = ((DIKT_SPECIAL) | (0x0E)),
+ DIKS_POWER = ((DIKT_SPECIAL) | (0x0F)),
+ DIKS_POWER2 = ((DIKT_SPECIAL) | (0x10)),
+ DIKS_OPTION = ((DIKT_SPECIAL) | (0x11)),
+ DIKS_MENU = ((DIKT_SPECIAL) | (0x12)),
+ DIKS_HELP = ((DIKT_SPECIAL) | (0x13)),
+ DIKS_INFO = ((DIKT_SPECIAL) | (0x14)),
+ DIKS_TIME = ((DIKT_SPECIAL) | (0x15)),
+ DIKS_VENDOR = ((DIKT_SPECIAL) | (0x16)),
+ DIKS_ARCHIVE = ((DIKT_SPECIAL) | (0x17)),
+ DIKS_PROGRAM = ((DIKT_SPECIAL) | (0x18)),
+ DIKS_CHANNEL = ((DIKT_SPECIAL) | (0x19)),
+ DIKS_FAVORITES = ((DIKT_SPECIAL) | (0x1A)),
+ DIKS_EPG = ((DIKT_SPECIAL) | (0x1B)),
+ DIKS_PVR = ((DIKT_SPECIAL) | (0x1C)),
+ DIKS_MHP = ((DIKT_SPECIAL) | (0x1D)),
+ DIKS_LANGUAGE = ((DIKT_SPECIAL) | (0x1E)),
+ DIKS_TITLE = ((DIKT_SPECIAL) | (0x1F)),
+ DIKS_SUBTITLE = ((DIKT_SPECIAL) | (0x20)),
+ DIKS_ANGLE = ((DIKT_SPECIAL) | (0x21)),
+ DIKS_ZOOM = ((DIKT_SPECIAL) | (0x22)),
+ DIKS_MODE = ((DIKT_SPECIAL) | (0x23)),
+ DIKS_KEYBOARD = ((DIKT_SPECIAL) | (0x24)),
+ DIKS_PC = ((DIKT_SPECIAL) | (0x25)),
+ DIKS_SCREEN = ((DIKT_SPECIAL) | (0x26)),
+ DIKS_TV = ((DIKT_SPECIAL) | (0x27)),
+ DIKS_TV2 = ((DIKT_SPECIAL) | (0x28)),
+ DIKS_VCR = ((DIKT_SPECIAL) | (0x29)),
+ DIKS_VCR2 = ((DIKT_SPECIAL) | (0x2A)),
+ DIKS_SAT = ((DIKT_SPECIAL) | (0x2B)),
+ DIKS_SAT2 = ((DIKT_SPECIAL) | (0x2C)),
+ DIKS_CD = ((DIKT_SPECIAL) | (0x2D)),
+ DIKS_TAPE = ((DIKT_SPECIAL) | (0x2E)),
+ DIKS_RADIO = ((DIKT_SPECIAL) | (0x2F)),
+ DIKS_TUNER = ((DIKT_SPECIAL) | (0x30)),
+ DIKS_PLAYER = ((DIKT_SPECIAL) | (0x31)),
+ DIKS_TEXT = ((DIKT_SPECIAL) | (0x32)),
+ DIKS_DVD = ((DIKT_SPECIAL) | (0x33)),
+ DIKS_AUX = ((DIKT_SPECIAL) | (0x34)),
+ DIKS_MP3 = ((DIKT_SPECIAL) | (0x35)),
+ DIKS_PHONE = ((DIKT_SPECIAL) | (0x36)),
+ DIKS_AUDIO = ((DIKT_SPECIAL) | (0x37)),
+ DIKS_VIDEO = ((DIKT_SPECIAL) | (0x38)),
+ DIKS_INTERNET = ((DIKT_SPECIAL) | (0x39)),
+ DIKS_MAIL = ((DIKT_SPECIAL) | (0x3A)),
+ DIKS_NEWS = ((DIKT_SPECIAL) | (0x3B)),
+ DIKS_DIRECTORY = ((DIKT_SPECIAL) | (0x3C)),
+ DIKS_LIST = ((DIKT_SPECIAL) | (0x3D)),
+ DIKS_CALCULATOR = ((DIKT_SPECIAL) | (0x3E)),
+ DIKS_MEMO = ((DIKT_SPECIAL) | (0x3F)),
+ DIKS_CALENDAR = ((DIKT_SPECIAL) | (0x40)),
+ DIKS_EDITOR = ((DIKT_SPECIAL) | (0x41)),
+ DIKS_RED = ((DIKT_SPECIAL) | (0x42)),
+ DIKS_GREEN = ((DIKT_SPECIAL) | (0x43)),
+ DIKS_YELLOW = ((DIKT_SPECIAL) | (0x44)),
+ DIKS_BLUE = ((DIKT_SPECIAL) | (0x45)),
+ DIKS_CHANNEL_UP = ((DIKT_SPECIAL) | (0x46)),
+ DIKS_CHANNEL_DOWN = ((DIKT_SPECIAL) | (0x47)),
+ DIKS_BACK = ((DIKT_SPECIAL) | (0x48)),
+ DIKS_FORWARD = ((DIKT_SPECIAL) | (0x49)),
+ DIKS_FIRST = ((DIKT_SPECIAL) | (0x4A)),
+ DIKS_LAST = ((DIKT_SPECIAL) | (0x4B)),
+ DIKS_VOLUME_UP = ((DIKT_SPECIAL) | (0x4C)),
+ DIKS_VOLUME_DOWN = ((DIKT_SPECIAL) | (0x4D)),
+ DIKS_MUTE = ((DIKT_SPECIAL) | (0x4E)),
+ DIKS_AB = ((DIKT_SPECIAL) | (0x4F)),
+ DIKS_PLAYPAUSE = ((DIKT_SPECIAL) | (0x50)),
+ DIKS_PLAY = ((DIKT_SPECIAL) | (0x51)),
+ DIKS_STOP = ((DIKT_SPECIAL) | (0x52)),
+ DIKS_RESTART = ((DIKT_SPECIAL) | (0x53)),
+ DIKS_SLOW = ((DIKT_SPECIAL) | (0x54)),
+ DIKS_FAST = ((DIKT_SPECIAL) | (0x55)),
+ DIKS_RECORD = ((DIKT_SPECIAL) | (0x56)),
+ DIKS_EJECT = ((DIKT_SPECIAL) | (0x57)),
+ DIKS_SHUFFLE = ((DIKT_SPECIAL) | (0x58)),
+ DIKS_REWIND = ((DIKT_SPECIAL) | (0x59)),
+ DIKS_FASTFORWARD = ((DIKT_SPECIAL) | (0x5A)),
+ DIKS_PREVIOUS = ((DIKT_SPECIAL) | (0x5B)),
+ DIKS_NEXT = ((DIKT_SPECIAL) | (0x5C)),
+ DIKS_BEGIN = ((DIKT_SPECIAL) | (0x5D)),
+ DIKS_DIGITS = ((DIKT_SPECIAL) | (0x5E)),
+ DIKS_TEEN = ((DIKT_SPECIAL) | (0x5F)),
+ DIKS_TWEN = ((DIKT_SPECIAL) | (0x60)),
+ DIKS_BREAK = ((DIKT_SPECIAL) | (0x61)),
+ DIKS_EXIT = ((DIKT_SPECIAL) | (0x62)),
+ DIKS_SETUP = ((DIKT_SPECIAL) | (0x63)),
+ DIKS_CURSOR_LEFT_UP = ((DIKT_SPECIAL) | (0x64)),
+ DIKS_CURSOR_LEFT_DOWN = ((DIKT_SPECIAL) | (0x65)),
+ DIKS_CURSOR_UP_RIGHT = ((DIKT_SPECIAL) | (0x66)),
+ DIKS_CURSOR_DOWN_RIGHT = ((DIKT_SPECIAL) | (0x67)),
+ DIKS_F1 = (((DIKT_FUNCTION) | (1))),
+ DIKS_F2 = (((DIKT_FUNCTION) | (2))),
+ DIKS_F3 = (((DIKT_FUNCTION) | (3))),
+ DIKS_F4 = (((DIKT_FUNCTION) | (4))),
+ DIKS_F5 = (((DIKT_FUNCTION) | (5))),
+ DIKS_F6 = (((DIKT_FUNCTION) | (6))),
+ DIKS_F7 = (((DIKT_FUNCTION) | (7))),
+ DIKS_F8 = (((DIKT_FUNCTION) | (8))),
+ DIKS_F9 = (((DIKT_FUNCTION) | (9))),
+ DIKS_F10 = (((DIKT_FUNCTION) | (10))),
+ DIKS_F11 = (((DIKT_FUNCTION) | (11))),
+ DIKS_F12 = (((DIKT_FUNCTION) | (12))),
+ DIKS_SHIFT = (((DIKT_MODIFIER) | ((1 << DIMKI_SHIFT)))),
+ DIKS_CONTROL = (((DIKT_MODIFIER) | ((1 << DIMKI_CONTROL)))),
+ DIKS_ALT = (((DIKT_MODIFIER) | ((1 << DIMKI_ALT)))),
+ DIKS_ALTGR = (((DIKT_MODIFIER) | ((1 << DIMKI_ALTGR)))),
+ DIKS_META = (((DIKT_MODIFIER) | ((1 << DIMKI_META)))),
+ DIKS_SUPER = (((DIKT_MODIFIER) | ((1 << DIMKI_SUPER)))),
+ DIKS_HYPER = (((DIKT_MODIFIER) | ((1 << DIMKI_HYPER)))),
+ DIKS_CAPS_LOCK = ((DIKT_LOCK) | (0x00)),
+ DIKS_NUM_LOCK = ((DIKT_LOCK) | (0x01)),
+ DIKS_SCROLL_LOCK = ((DIKT_LOCK) | (0x02)),
+ DIKS_DEAD_ABOVEDOT = ((DIKT_DEAD) | (0x00)),
+ DIKS_DEAD_ABOVERING = ((DIKT_DEAD) | (0x01)),
+ DIKS_DEAD_ACUTE = ((DIKT_DEAD) | (0x02)),
+ DIKS_DEAD_BREVE = ((DIKT_DEAD) | (0x03)),
+ DIKS_DEAD_CARON = ((DIKT_DEAD) | (0x04)),
+ DIKS_DEAD_CEDILLA = ((DIKT_DEAD) | (0x05)),
+ DIKS_DEAD_CIRCUMFLEX = ((DIKT_DEAD) | (0x06)),
+ DIKS_DEAD_DIAERESIS = ((DIKT_DEAD) | (0x07)),
+ DIKS_DEAD_DOUBLEACUTE = ((DIKT_DEAD) | (0x08)),
+ DIKS_DEAD_GRAVE = ((DIKT_DEAD) | (0x09)),
+ DIKS_DEAD_IOTA = ((DIKT_DEAD) | (0x0A)),
+ DIKS_DEAD_MACRON = ((DIKT_DEAD) | (0x0B)),
+ DIKS_DEAD_OGONEK = ((DIKT_DEAD) | (0x0C)),
+ DIKS_DEAD_SEMIVOICED_SOUND = ((DIKT_DEAD) | (0x0D)),
+ DIKS_DEAD_TILDE = ((DIKT_DEAD) | (0x0E)),
+ DIKS_DEAD_VOICED_SOUND = ((DIKT_DEAD) | (0x0F)),
+ DIKS_CUSTOM0 = (((DIKT_CUSTOM) | (0))),
+ DIKS_CUSTOM1 = (((DIKT_CUSTOM) | (1))),
+ DIKS_CUSTOM2 = (((DIKT_CUSTOM) | (2))),
+ DIKS_CUSTOM3 = (((DIKT_CUSTOM) | (3))),
+ DIKS_CUSTOM4 = (((DIKT_CUSTOM) | (4))),
+ DIKS_CUSTOM5 = (((DIKT_CUSTOM) | (5))),
+ DIKS_CUSTOM6 = (((DIKT_CUSTOM) | (6))),
+ DIKS_CUSTOM7 = (((DIKT_CUSTOM) | (7))),
+ DIKS_CUSTOM8 = (((DIKT_CUSTOM) | (8))),
+ DIKS_CUSTOM9 = (((DIKT_CUSTOM) | (9)))
+} DFBInputDeviceKeySymbol;
+typedef enum
+{
+ DILS_SCROLL = 0x00000001,
+ DILS_NUM = 0x00000002,
+ DILS_CAPS = 0x00000004
+} DFBInputDeviceLockState;
+typedef enum
+{
+ DIKSI_BASE = 0x00,
+ DIKSI_BASE_SHIFT = 0x01,
+ DIKSI_ALT = 0x02,
+ DIKSI_ALT_SHIFT = 0x03,
+ DIKSI_LAST = DIKSI_ALT_SHIFT
+} DFBInputDeviceKeymapSymbolIndex;
+typedef struct
+{
+ int code;
+ DFBInputDeviceLockState locks;
+ DFBInputDeviceKeyIdentifier identifier;
+ DFBInputDeviceKeySymbol symbols[DIKSI_LAST + 1];
+} DFBInputDeviceKeymapEntry;
+extern const unsigned int directfb_major_version;
+extern const unsigned int directfb_minor_version;
+extern const unsigned int directfb_micro_version;
+extern const unsigned int directfb_binary_age;
+extern const unsigned int directfb_interface_age;
+const char *DirectFBCheckVersion(unsigned int required_major,
+ unsigned int required_minor,
+ unsigned int required_micro);
+
+typedef struct _IDirectFB IDirectFB;
+typedef struct _IDirectFBScreen IDirectFBScreen;
+typedef struct _IDirectFBDisplayLayer IDirectFBDisplayLayer;
+typedef struct _IDirectFBSurface IDirectFBSurface;
+typedef struct _IDirectFBPalette IDirectFBPalette;
+typedef struct _IDirectFBWindow IDirectFBWindow;
+typedef struct _IDirectFBInputDevice IDirectFBInputDevice;
+typedef struct _IDirectFBEventBuffer IDirectFBEventBuffer;
+typedef struct _IDirectFBFont IDirectFBFont;
+typedef struct _IDirectFBImageProvider IDirectFBImageProvider;
+typedef struct _IDirectFBVideoProvider IDirectFBVideoProvider;
+typedef struct _IDirectFBDataBuffer IDirectFBDataBuffer;
+typedef struct _IDirectFBGL IDirectFBGL;
+typedef enum
+{
+ DFB_OK,
+ DFB_FAILURE,
+ DFB_INIT,
+ DFB_BUG,
+ DFB_DEAD,
+ DFB_UNSUPPORTED,
+ DFB_UNIMPLEMENTED,
+ DFB_ACCESSDENIED,
+ DFB_INVARG,
+ DFB_NOSYSTEMMEMORY,
+ DFB_NOVIDEOMEMORY,
+ DFB_LOCKED,
+ DFB_BUFFEREMPTY,
+ DFB_FILENOTFOUND,
+ DFB_IO,
+ DFB_BUSY,
+ DFB_NOIMPL,
+ DFB_MISSINGFONT,
+ DFB_TIMEOUT,
+ DFB_MISSINGIMAGE,
+ DFB_THIZNULL,
+ DFB_IDNOTFOUND,
+ DFB_INVAREA,
+ DFB_DESTROYED,
+ DFB_FUSION,
+ DFB_BUFFERTOOLARGE,
+ DFB_INTERRUPTED,
+ DFB_NOCONTEXT,
+ DFB_TEMPUNAVAIL,
+ DFB_LIMITEXCEEDED,
+ DFB_NOSUCHMETHOD,
+ DFB_NOSUCHINSTANCE,
+ DFB_ITEMNOTFOUND,
+ DFB_VERSIONMISMATCH,
+ DFB_NOSHAREDMEMORY
+} DFBResult;
+typedef enum
+{
+ DFB_FALSE = 0,
+ DFB_TRUE = !DFB_FALSE
+} DFBBoolean;
+typedef struct
+{
+ int x;
+ int y;
+} DFBPoint;
+typedef struct
+{
+ int x;
+ int w;
+} DFBSpan;
+typedef struct
+{
+ int w;
+ int h;
+} DFBDimension;
+typedef struct
+{
+ int x;
+ int y;
+ int w;
+ int h;
+} DFBRectangle;
+typedef struct
+{
+ float x;
+ float y;
+ float w;
+ float h;
+} DFBLocation;
+typedef struct
+{
+ int x1;
+ int y1;
+ int x2;
+ int y2;
+} DFBRegion;
+typedef struct
+{
+ int l;
+ int t;
+ int r;
+ int b;
+} DFBInsets;
+typedef struct
+{
+ int x1;
+ int y1;
+ int x2;
+ int y2;
+ int x3;
+ int y3;
+} DFBTriangle;
+typedef struct
+{
+ __u8 a;
+ __u8 r;
+ __u8 g;
+ __u8 b;
+} DFBColor;
+DFBResult DirectFBError(
+ const char *msg,
+ DFBResult result
+ );
+DFBResult DirectFBErrorFatal(
+ const char *msg,
+ DFBResult result
+ );
+const char *DirectFBErrorString(
+ DFBResult result
+ );
+const char *DirectFBUsageString(void);
+DFBResult DirectFBInit(
+ int *argc,
+ char **argv[]
+ );
+DFBResult DirectFBSetOption(
+ const char *name,
+ const char *value
+ );
+DFBResult DirectFBCreate(
+ IDirectFB **interface
+ );
+
+typedef unsigned int DFBScreenID;
+typedef unsigned int DFBDisplayLayerID;
+typedef unsigned int DFBDisplayLayerSourceID;
+typedef unsigned int DFBWindowID;
+typedef unsigned int DFBInputDeviceID;
+typedef __u32 DFBDisplayLayerIDs;
+typedef enum
+{
+ DFSCL_NORMAL = 0x00000000,
+ DFSCL_FULLSCREEN,
+ DFSCL_EXCLUSIVE
+} DFBCooperativeLevel;
+typedef enum
+{
+ DLCAPS_NONE = 0x00000000,
+ DLCAPS_SURFACE = 0x00000001,
+ DLCAPS_OPACITY = 0x00000002,
+ DLCAPS_ALPHACHANNEL = 0x00000004,
+ DLCAPS_SCREEN_LOCATION = 0x00000008,
+ DLCAPS_FLICKER_FILTERING = 0x00000010,
+ DLCAPS_DEINTERLACING = 0x00000020,
+ DLCAPS_SRC_COLORKEY = 0x00000040,
+ DLCAPS_DST_COLORKEY = 0x00000080,
+ DLCAPS_BRIGHTNESS = 0x00000100,
+ DLCAPS_CONTRAST = 0x00000200,
+ DLCAPS_HUE = 0x00000400,
+ DLCAPS_SATURATION = 0x00000800,
+ DLCAPS_LEVELS = 0x00001000,
+ DLCAPS_FIELD_PARITY = 0x00002000,
+ DLCAPS_WINDOWS = 0x00004000,
+ DLCAPS_SOURCES = 0x00008000,
+ DLCAPS_ALPHA_RAMP = 0x00010000,
+ DLCAPS_PREMULTIPLIED = 0x00020000,
+ DLCAPS_SCREEN_POSITION = 0x00100000,
+ DLCAPS_SCREEN_SIZE = 0x00200000,
+ DLCAPS_ALL = 0x0033FFFF
+} DFBDisplayLayerCapabilities;
+typedef enum
+{
+ DSCCAPS_NONE = 0x00000000,
+ DSCCAPS_VSYNC = 0x00000001,
+ DSCCAPS_POWER_MANAGEMENT = 0x00000002,
+ DSCCAPS_MIXERS = 0x00000010,
+ DSCCAPS_ENCODERS = 0x00000020,
+ DSCCAPS_OUTPUTS = 0x00000040,
+ DSCCAPS_ALL = 0x00000073
+} DFBScreenCapabilities;
+typedef enum
+{
+ DLOP_NONE = 0x00000000,
+ DLOP_ALPHACHANNEL = 0x00000001,
+ DLOP_FLICKER_FILTERING = 0x00000002,
+ DLOP_DEINTERLACING = 0x00000004,
+ DLOP_SRC_COLORKEY = 0x00000008,
+ DLOP_DST_COLORKEY = 0x00000010,
+ DLOP_OPACITY = 0x00000020,
+ DLOP_FIELD_PARITY = 0x00000040
+} DFBDisplayLayerOptions;
+typedef enum
+{
+ DLBM_UNKNOWN = 0x00000000,
+ DLBM_FRONTONLY = 0x00000001,
+ DLBM_BACKVIDEO = 0x00000002,
+ DLBM_BACKSYSTEM = 0x00000004,
+ DLBM_TRIPLE = 0x00000008,
+ DLBM_WINDOWS = 0x00000010
+} DFBDisplayLayerBufferMode;
+typedef enum
+{
+ DSDESC_CAPS = 0x00000001,
+ DSDESC_WIDTH = 0x00000002,
+ DSDESC_HEIGHT = 0x00000004,
+ DSDESC_PIXELFORMAT = 0x00000008,
+ DSDESC_PREALLOCATED = 0x00000010,
+ DSDESC_PALETTE = 0x00000020
+} DFBSurfaceDescriptionFlags;
+typedef enum
+{
+ DPDESC_CAPS = 0x00000001,
+ DPDESC_SIZE = 0x00000002,
+ DPDESC_ENTRIES = 0x00000004
+} DFBPaletteDescriptionFlags;
+typedef enum
+{
+ DSCAPS_NONE = 0x00000000,
+ DSCAPS_PRIMARY = 0x00000001,
+ DSCAPS_SYSTEMONLY = 0x00000002,
+ DSCAPS_VIDEOONLY = 0x00000004,
+ DSCAPS_DOUBLE = 0x00000010,
+ DSCAPS_SUBSURFACE = 0x00000020,
+ DSCAPS_INTERLACED = 0x00000040,
+ DSCAPS_SEPARATED = 0x00000080,
+ DSCAPS_STATIC_ALLOC = 0x00000100,
+ DSCAPS_TRIPLE = 0x00000200,
+ DSCAPS_PREMULTIPLIED = 0x00001000,
+ DSCAPS_DEPTH = 0x00010000,
+ DSCAPS_ALL = 0x000113F7,
+ DSCAPS_FLIPPING = DSCAPS_DOUBLE | DSCAPS_TRIPLE
+} DFBSurfaceCapabilities;
+typedef enum
+{
+ DPCAPS_NONE = 0x00000000
+} DFBPaletteCapabilities;
+typedef enum
+{
+ DSDRAW_NOFX = 0x00000000,
+ DSDRAW_BLEND = 0x00000001,
+ DSDRAW_DST_COLORKEY = 0x00000002,
+ DSDRAW_SRC_PREMULTIPLY = 0x00000004,
+ DSDRAW_DST_PREMULTIPLY = 0x00000008,
+ DSDRAW_DEMULTIPLY = 0x00000010,
+ DSDRAW_XOR = 0x00000020
+} DFBSurfaceDrawingFlags;
+typedef enum
+{
+ DSBLIT_NOFX = 0x00000000,
+ DSBLIT_BLEND_ALPHACHANNEL = 0x00000001,
+ DSBLIT_BLEND_COLORALPHA = 0x00000002,
+ DSBLIT_COLORIZE = 0x00000004,
+ DSBLIT_SRC_COLORKEY = 0x00000008,
+ DSBLIT_DST_COLORKEY = 0x00000010,
+ DSBLIT_SRC_PREMULTIPLY = 0x00000020,
+ DSBLIT_DST_PREMULTIPLY = 0x00000040,
+ DSBLIT_DEMULTIPLY = 0x00000080,
+ DSBLIT_DEINTERLACE = 0x00000100
+} DFBSurfaceBlittingFlags;
+typedef enum
+{
+ DFXL_NONE = 0x00000000,
+ DFXL_FILLRECTANGLE = 0x00000001,
+ DFXL_DRAWRECTANGLE = 0x00000002,
+ DFXL_DRAWLINE = 0x00000004,
+ DFXL_FILLTRIANGLE = 0x00000008,
+ DFXL_BLIT = 0x00010000,
+ DFXL_STRETCHBLIT = 0x00020000,
+ DFXL_TEXTRIANGLES = 0x00040000,
+ DFXL_DRAWSTRING = 0x01000000,
+ DFXL_ALL = 0x0107000F
+} DFBAccelerationMask;
+typedef struct
+{
+ DFBAccelerationMask acceleration_mask;
+ DFBSurfaceDrawingFlags drawing_flags;
+ DFBSurfaceBlittingFlags blitting_flags;
+ unsigned int video_memory;
+} DFBCardCapabilities;
+typedef enum
+{
+ DLTF_NONE = 0x00000000,
+ DLTF_GRAPHICS = 0x00000001,
+ DLTF_VIDEO = 0x00000002,
+ DLTF_STILL_PICTURE = 0x00000004,
+ DLTF_BACKGROUND = 0x00000008,
+ DLTF_ALL = 0x0000000F
+} DFBDisplayLayerTypeFlags;
+typedef enum
+{
+ DIDTF_NONE = 0x00000000,
+ DIDTF_KEYBOARD = 0x00000001,
+ DIDTF_MOUSE = 0x00000002,
+ DIDTF_JOYSTICK = 0x00000004,
+ DIDTF_REMOTE = 0x00000008,
+ DIDTF_VIRTUAL = 0x00000010,
+ DIDTF_ALL = 0x0000001F
+} DFBInputDeviceTypeFlags;
+typedef enum
+{
+ DICAPS_KEYS = 0x00000001,
+ DICAPS_AXES = 0x00000002,
+ DICAPS_BUTTONS = 0x00000004,
+ DICAPS_ALL = 0x00000007
+} DFBInputDeviceCapabilities;
+typedef enum
+{
+ DIBI_LEFT = 0x00000000,
+ DIBI_RIGHT = 0x00000001,
+ DIBI_MIDDLE = 0x00000002,
+ DIBI_FIRST = DIBI_LEFT,
+ DIBI_LAST = 0x0000001F
+} DFBInputDeviceButtonIdentifier;
+typedef enum
+{
+ DIAI_X = 0x00000000,
+ DIAI_Y = 0x00000001,
+ DIAI_Z = 0x00000002,
+ DIAI_FIRST = DIAI_X,
+ DIAI_LAST = 0x0000001F
+} DFBInputDeviceAxisIdentifier;
+typedef enum
+{
+ DWDESC_CAPS = 0x00000001,
+ DWDESC_WIDTH = 0x00000002,
+ DWDESC_HEIGHT = 0x00000004,
+ DWDESC_PIXELFORMAT = 0x00000008,
+ DWDESC_POSX = 0x00000010,
+ DWDESC_POSY = 0x00000020,
+ DWDESC_SURFACE_CAPS = 0x00000040
+} DFBWindowDescriptionFlags;
+typedef enum
+{
+ DBDESC_FILE = 0x00000001,
+ DBDESC_MEMORY = 0x00000002
+} DFBDataBufferDescriptionFlags;
+typedef enum
+{
+ DWCAPS_NONE = 0x00000000,
+ DWCAPS_ALPHACHANNEL = 0x00000001,
+ DWCAPS_DOUBLEBUFFER = 0x00000002,
+ DWCAPS_INPUTONLY = 0x00000004,
+ DWCAPS_NODECORATION = 0x00000008,
+ DWCAPS_ALL = 0x0000000F
+} DFBWindowCapabilities;
+typedef enum
+{
+ DFFA_NONE = 0x00000000,
+ DFFA_NOKERNING = 0x00000001,
+ DFFA_NOHINTING = 0x00000002,
+ DFFA_MONOCHROME = 0x00000004,
+ DFFA_NOCHARMAP = 0x00000008
+} DFBFontAttributes;
+typedef enum
+{
+ DFDESC_ATTRIBUTES = 0x00000001,
+ DFDESC_HEIGHT = 0x00000002,
+ DFDESC_WIDTH = 0x00000004,
+ DFDESC_INDEX = 0x00000008,
+ DFDESC_FIXEDADVANCE = 0x00000010
+} DFBFontDescriptionFlags;
+typedef struct
+{
+ DFBFontDescriptionFlags flags;
+ DFBFontAttributes attributes;
+ int height;
+ int width;
+ unsigned int index;
+ int fixed_advance;
+} DFBFontDescription;
+typedef enum
+{
+ DSPF_UNKNOWN = 0x00000000,
+ DSPF_ARGB1555 = ((((0) & 0x7F)) | (((15) & 0x1F) << 7) | (((1) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((2) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_RGB16 = ((((1) & 0x7F)) | (((16) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((2) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_RGB24 = ((((2) & 0x7F)) | (((24) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((3) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_RGB32 = ((((3) & 0x7F)) | (((24) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((4) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_ARGB = ((((4) & 0x7F)) | (((24) & 0x1F) << 7) | (((8) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((4) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_A8 = ((((5) & 0x7F)) | (((0) & 0x1F) << 7) | (((8) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_YUY2 = ((((6) & 0x7F)) | (((16) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((2) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_RGB332 = ((((7) & 0x7F)) | (((8) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_UYVY = ((((8) & 0x7F)) | (((16) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((2) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_I420 = ((((9) & 0x7F)) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((2) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_YV12 = ((((10) & 0x7F)) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((2) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_LUT8 = ((((11) & 0x7F)) | (((8) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((1) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_ALUT44 = ((((12) & 0x7F)) | (((4) & 0x1F) << 7) | (((4) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((1) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_AiRGB = ((((13) & 0x7F)) | (((24) & 0x1F) << 7) | (((8) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((4) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((1) ? 1 : 0) << 31)),
+ DSPF_A1 = ((((14) & 0x7F)) | (((0) & 0x1F) << 7) | (((1) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((1) & 0x07) << 17) | (((0) & 0x07) << 20) | (((7) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_NV12 = ((((15) & 0x7F)) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((2) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_NV16 = ((((16) & 0x7F)) | (((24) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((2) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_ARGB2554 = ((((17) & 0x7F)) | (((14) & 0x1F) << 7) | (((2) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((2) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_ARGB4444 = ((((18) & 0x7F)) | (((12) & 0x1F) << 7) | (((4) & 0x0F) << 12) | (((1) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((2) & 0x07) << 20) | (((0) & 0x07) << 23) | (((0) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31)),
+ DSPF_NV21 = ((((19) & 0x7F)) | (((12) & 0x1F) << 7) | (((0) & 0x0F) << 12) | (((0) ? 1 : 0) << 16) | (((0) & 0x07) << 17) | (((1) & 0x07) << 20) | (((0) & 0x07) << 23) | (((2) & 0x03) << 26) | (((0) & 0x03) << 28) | (((0) ? 1 : 0) << 30) | (((0) ? 1 : 0) << 31))
+} DFBSurfacePixelFormat;
+typedef struct
+{
+ DFBSurfaceDescriptionFlags flags;
+ DFBSurfaceCapabilities caps;
+ int width;
+ int height;
+ DFBSurfacePixelFormat pixelformat;
+ struct
+ {
+ void *data;
+ int pitch;
+ } preallocated[2];
+ struct
+ {
+ DFBColor *entries;
+ unsigned int size;
+ } palette;
+} DFBSurfaceDescription;
+typedef struct
+{
+ DFBPaletteDescriptionFlags flags;
+ DFBPaletteCapabilities caps;
+ unsigned int size;
+ DFBColor *entries;
+} DFBPaletteDescription;
+typedef struct
+{
+ DFBDisplayLayerTypeFlags type;
+ DFBDisplayLayerCapabilities caps;
+ char name[32];
+ int level;
+ int regions;
+ int sources;
+} DFBDisplayLayerDescription;
+typedef struct
+{
+ DFBDisplayLayerSourceID source_id;
+ char name[24];
+} DFBDisplayLayerSourceDescription;
+typedef struct
+{
+ DFBScreenCapabilities caps;
+ char name[32];
+ int mixers;
+ int encoders;
+ int outputs;
+} DFBScreenDescription;
+typedef struct
+{
+ DFBInputDeviceTypeFlags type;
+ DFBInputDeviceCapabilities caps;
+ int min_keycode;
+ int max_keycode;
+ DFBInputDeviceAxisIdentifier max_axis;
+ DFBInputDeviceButtonIdentifier max_button;
+ char name[32];
+ char vendor[40];
+} DFBInputDeviceDescription;
+typedef struct
+{
+ DFBWindowDescriptionFlags flags;
+ DFBWindowCapabilities caps;
+ int width;
+ int height;
+ DFBSurfacePixelFormat pixelformat;
+ int posx;
+ int posy;
+ DFBSurfaceCapabilities surface_caps;
+} DFBWindowDescription;
+typedef struct
+{
+ DFBDataBufferDescriptionFlags flags;
+ const char *file;
+ struct
+ {
+ const void *data;
+ unsigned int length;
+ } memory;
+} DFBDataBufferDescription;
+typedef enum
+{
+ DFENUM_OK = 0x00000000,
+ DFENUM_CANCEL = 0x00000001
+} DFBEnumerationResult;
+typedef DFBEnumerationResult (*DFBVideoModeCallback)(
+ int width,
+ int height,
+ int bpp,
+ void *callbackdata
+ );
+typedef DFBEnumerationResult (*DFBScreenCallback)(
+ DFBScreenID screen_id,
+ DFBScreenDescription desc,
+ void *callbackdata
+ );
+typedef DFBEnumerationResult (*DFBDisplayLayerCallback)(
+ DFBDisplayLayerID layer_id,
+ DFBDisplayLayerDescription desc,
+ void *callbackdata
+ );
+typedef DFBEnumerationResult (*DFBInputDeviceCallback)(
+ DFBInputDeviceID device_id,
+ DFBInputDeviceDescription desc,
+ void *callbackdata
+ );
+typedef int (*DFBGetDataCallback)(
+ void *buffer,
+ unsigned int length,
+ void *callbackdata
+ );
+typedef enum
+{
+ DVCAPS_BASIC = 0x00000000,
+ DVCAPS_SEEK = 0x00000001,
+ DVCAPS_SCALE = 0x00000002,
+ DVCAPS_INTERLACED = 0x00000004,
+ DVCAPS_BRIGHTNESS = 0x00000010,
+ DVCAPS_CONTRAST = 0x00000020,
+ DVCAPS_HUE = 0x00000040,
+ DVCAPS_SATURATION = 0x00000080
+} DFBVideoProviderCapabilities;
+typedef enum
+{
+ DCAF_NONE = 0x00000000,
+ DCAF_BRIGHTNESS = 0x00000001,
+ DCAF_CONTRAST = 0x00000002,
+ DCAF_HUE = 0x00000004,
+ DCAF_SATURATION = 0x00000008
+} DFBColorAdjustmentFlags;
+typedef struct
+{
+ DFBColorAdjustmentFlags flags;
+ __u16 brightness;
+ __u16 contrast;
+ __u16 hue;
+ __u16 saturation;
+} DFBColorAdjustment;
+struct _IDirectFB
+{
+ void *priv;
+ int magic;
+ DFBResult (*AddRef)(IDirectFB *thiz);
+ DFBResult (*Release)(IDirectFB *thiz);
+ DFBResult (*SetCooperativeLevel)(IDirectFB *thiz, DFBCooperativeLevel level);
+ DFBResult (*SetVideoMode)(IDirectFB *thiz, int width, int height, int bpp);
+ DFBResult (*GetCardCapabilities)(IDirectFB *thiz, DFBCardCapabilities *ret_caps);
+ DFBResult (*EnumVideoModes)(IDirectFB *thiz, DFBVideoModeCallback callback, void *callbackdata);
+ DFBResult (*CreateSurface)(IDirectFB *thiz, const DFBSurfaceDescription *desc, IDirectFBSurface **ret_interface);
+ DFBResult (*CreatePalette)(IDirectFB *thiz, const DFBPaletteDescription *desc, IDirectFBPalette **ret_interface);
+ DFBResult (*EnumScreens)(IDirectFB *thiz, DFBScreenCallback callback, void *callbackdata);
+ DFBResult (*GetScreen)(IDirectFB *thiz, DFBScreenID screen_id, IDirectFBScreen **ret_interface);
+ DFBResult (*EnumDisplayLayers)(IDirectFB *thiz, DFBDisplayLayerCallback callback, void *callbackdata);
+ DFBResult (*GetDisplayLayer)(IDirectFB *thiz, DFBDisplayLayerID layer_id, IDirectFBDisplayLayer **ret_interface);
+ DFBResult (*EnumInputDevices)(IDirectFB *thiz, DFBInputDeviceCallback callback, void *callbackdata);
+ DFBResult (*GetInputDevice)(IDirectFB *thiz, DFBInputDeviceID device_id, IDirectFBInputDevice **ret_interface);
+ DFBResult (*CreateEventBuffer)(IDirectFB *thiz, IDirectFBEventBuffer **ret_buffer);
+ DFBResult (*CreateInputEventBuffer)(IDirectFB *thiz, DFBInputDeviceCapabilities caps, DFBBoolean global, IDirectFBEventBuffer **ret_buffer);
+ DFBResult (*CreateImageProvider)(IDirectFB *thiz, const char *filename, IDirectFBImageProvider **ret_interface);
+ DFBResult (*CreateVideoProvider)(IDirectFB *thiz, const char *filename, IDirectFBVideoProvider **ret_interface);
+ DFBResult (*CreateFont)(IDirectFB *thiz, const char *filename, const DFBFontDescription *desc, IDirectFBFont **ret_interface);
+ DFBResult (*CreateDataBuffer)(IDirectFB *thiz, const DFBDataBufferDescription *desc, IDirectFBDataBuffer **ret_interface);
+ DFBResult (*SetClipboardData)(IDirectFB *thiz, const char *mime_type, const void *data, unsigned int size, struct timeval *ret_timestamp);
+ DFBResult (*GetClipboardData)(IDirectFB *thiz, char **ret_mimetype, void **ret_data, unsigned int *ret_size);
+ DFBResult (*GetClipboardTimeStamp)(IDirectFB *thiz, struct timeval *ret_timestamp);
+ DFBResult (*Suspend)(IDirectFB *thiz);
+ DFBResult (*Resume)(IDirectFB *thiz);
+ DFBResult (*WaitIdle)(IDirectFB *thiz);
+ DFBResult (*WaitForSync)(IDirectFB *thiz);
+ DFBResult (*GetInterface)(IDirectFB *thiz, const char *type, const char *implementation, void *arg, void **ret_interface);
+};
+typedef enum
+{
+ DLSCL_SHARED = 0,
+ DLSCL_EXCLUSIVE,
+ DLSCL_ADMINISTRATIVE
+} DFBDisplayLayerCooperativeLevel;
+typedef enum
+{
+ DLBM_DONTCARE = 0,
+ DLBM_COLOR,
+ DLBM_IMAGE,
+ DLBM_TILE
+} DFBDisplayLayerBackgroundMode;
+typedef enum
+{
+ DLCONF_NONE = 0x00000000,
+ DLCONF_WIDTH = 0x00000001,
+ DLCONF_HEIGHT = 0x00000002,
+ DLCONF_PIXELFORMAT = 0x00000004,
+ DLCONF_BUFFERMODE = 0x00000008,
+ DLCONF_OPTIONS = 0x00000010,
+ DLCONF_SOURCE = 0x00000020,
+ DLCONF_SURFACE_CAPS = 0x00000040,
+ DLCONF_ALL = 0x0000007F
+} DFBDisplayLayerConfigFlags;
+typedef struct
+{
+ DFBDisplayLayerConfigFlags flags;
+ int width;
+ int height;
+ DFBSurfacePixelFormat pixelformat;
+ DFBDisplayLayerBufferMode buffermode;
+ DFBDisplayLayerOptions options;
+ DFBDisplayLayerSourceID source;
+ DFBSurfaceCapabilities surface_caps;
+} DFBDisplayLayerConfig;
+typedef enum
+{
+ DSPM_ON = 0,
+ DSPM_STANDBY,
+ DSPM_SUSPEND,
+ DSPM_OFF
+} DFBScreenPowerMode;
+typedef enum
+{
+ DSMCAPS_NONE = 0x00000000,
+ DSMCAPS_FULL = 0x00000001,
+ DSMCAPS_SUB_LEVEL = 0x00000002,
+ DSMCAPS_SUB_LAYERS = 0x00000004,
+ DSMCAPS_BACKGROUND = 0x00000008
+} DFBScreenMixerCapabilities;
+typedef struct
+{
+ DFBScreenMixerCapabilities caps;
+ DFBDisplayLayerIDs layers;
+ int sub_num;
+ DFBDisplayLayerIDs sub_layers;
+ char name[24];
+} DFBScreenMixerDescription;
+typedef enum
+{
+ DSMCONF_NONE = 0x00000000,
+ DSMCONF_TREE = 0x00000001,
+ DSMCONF_LEVEL = 0x00000002,
+ DSMCONF_LAYERS = 0x00000004,
+ DSMCONF_BACKGROUND = 0x00000010,
+ DSMCONF_ALL = 0x00000017
+} DFBScreenMixerConfigFlags;
+typedef enum
+{
+ DSMT_UNKNOWN = 0x00000000,
+ DSMT_FULL = 0x00000001,
+ DSMT_SUB_LEVEL = 0x00000002,
+ DSMT_SUB_LAYERS = 0x00000003
+} DFBScreenMixerTree;
+typedef struct
+{
+ DFBScreenMixerConfigFlags flags;
+ DFBScreenMixerTree tree;
+ int level;
+ DFBDisplayLayerIDs layers;
+ DFBColor background;
+} DFBScreenMixerConfig;
+typedef enum
+{
+ DSOCAPS_NONE = 0x00000000,
+ DSOCAPS_CONNECTORS = 0x00000001,
+ DSOCAPS_ENCODER_SEL = 0x00000010,
+ DSOCAPS_SIGNAL_SEL = 0x00000020,
+ DSOCAPS_CONNECTOR_SEL = 0x00000040,
+ DSOCAPS_ALL = 0x00000071
+} DFBScreenOutputCapabilities;
+typedef enum
+{
+ DSOC_UNKNOWN = 0x00000000,
+ DSOC_VGA = 0x00000001,
+ DSOC_SCART = 0x00000002,
+ DSOC_YC = 0x00000004,
+ DSOC_CVBS = 0x00000008
+} DFBScreenOutputConnectors;
+typedef enum
+{
+ DSOS_NONE = 0x00000000,
+ DSOS_VGA = 0x00000001,
+ DSOS_YC = 0x00000002,
+ DSOS_CVBS = 0x00000004,
+ DSOS_RGB = 0x00000008,
+ DSOS_YCBCR = 0x00000010
+} DFBScreenOutputSignals;
+typedef struct
+{
+ DFBScreenOutputCapabilities caps;
+ DFBScreenOutputConnectors all_connectors;
+ DFBScreenOutputSignals all_signals;
+ char name[24];
+} DFBScreenOutputDescription;
+typedef enum
+{
+ DSOCONF_NONE = 0x00000000,
+ DSOCONF_ENCODER = 0x00000001,
+ DSOCONF_SIGNALS = 0x00000002,
+ DSOCONF_CONNECTORS = 0x00000004,
+ DSOCONF_ALL = 0x00000007
+} DFBScreenOutputConfigFlags;
+typedef struct
+{
+ DFBScreenOutputConfigFlags flags;
+ int encoder;
+ DFBScreenOutputSignals out_signals;
+ DFBScreenOutputConnectors out_connectors;
+} DFBScreenOutputConfig;
+typedef enum
+{
+ DSECAPS_NONE = 0x00000000,
+ DSECAPS_TV_STANDARDS = 0x00000001,
+ DSECAPS_TEST_PICTURE = 0x00000002,
+ DSECAPS_MIXER_SEL = 0x00000004,
+ DSECAPS_OUT_SIGNALS = 0x00000008,
+ DSECAPS_SCANMODE = 0x00000010,
+ DSECAPS_BRIGHTNESS = 0x00000100,
+ DSECAPS_CONTRAST = 0x00000200,
+ DSECAPS_HUE = 0x00000400,
+ DSECAPS_SATURATION = 0x00000800,
+ DSECAPS_ALL = 0x00000f1f
+} DFBScreenEncoderCapabilities;
+typedef enum
+{
+ DSET_UNKNOWN = 0x00000000,
+ DSET_CRTC = 0x00000001,
+ DSET_TV = 0x00000002
+} DFBScreenEncoderType;
+typedef enum
+{
+ DSETV_UNKNOWN = 0x00000000,
+ DSETV_PAL = 0x00000001,
+ DSETV_NTSC = 0x00000002,
+ DSETV_SECAM = 0x00000004
+} DFBScreenEncoderTVStandards;
+typedef enum
+{
+ DSESM_UNKNOWN = 0x00000000,
+ DSESM_INTERLACED = 0x00000001,
+ DSESM_PROGRESSIVE = 0x00000002
+} DFBScreenEncoderScanMode;
+typedef struct
+{
+ DFBScreenEncoderCapabilities caps;
+ DFBScreenEncoderType type;
+ DFBScreenEncoderTVStandards tv_standards;
+ DFBScreenOutputSignals out_signals;
+ char name[24];
+} DFBScreenEncoderDescription;
+typedef enum
+{
+ DSECONF_NONE = 0x00000000,
+ DSECONF_TV_STANDARD = 0x00000001,
+ DSECONF_TEST_PICTURE = 0x00000002,
+ DSECONF_MIXER = 0x00000004,
+ DSECONF_OUT_SIGNALS = 0x00000008,
+ DSECONF_SCANMODE = 0x00000010,
+ DSECONF_TEST_COLOR = 0x00000020,
+ DSECONF_ADJUSTMENT = 0x00000040,
+ DSECONF_ALL = 0x0000007F
+} DFBScreenEncoderConfigFlags;
+typedef enum
+{
+ DSETP_OFF = 0x00000000,
+ DSETP_MULTI = 0x00000001,
+ DSETP_SINGLE = 0x00000002,
+ DSETP_WHITE = 0x00000010,
+ DSETP_YELLOW = 0x00000020,
+ DSETP_CYAN = 0x00000030,
+ DSETP_GREEN = 0x00000040,
+ DSETP_MAGENTA = 0x00000050,
+ DSETP_RED = 0x00000060,
+ DSETP_BLUE = 0x00000070,
+ DSETP_BLACK = 0x00000080
+} DFBScreenEncoderTestPicture;
+typedef struct
+{
+ DFBScreenEncoderConfigFlags flags;
+ DFBScreenEncoderTVStandards tv_standard;
+ DFBScreenEncoderTestPicture test_picture;
+ int mixer;
+ DFBScreenOutputSignals out_signals;
+ DFBScreenEncoderScanMode scanmode;
+ DFBColor test_color;
+ DFBColorAdjustment adjustment;
+} DFBScreenEncoderConfig;
+struct _IDirectFBScreen
+{
+ void *priv;
+ int magic;
+ DFBResult (*AddRef)(IDirectFBScreen *thiz);
+ DFBResult (*Release)(IDirectFBScreen *thiz);
+ DFBResult (*GetID)(IDirectFBScreen *thiz, DFBScreenID *ret_screen_id);
+ DFBResult (*GetDescription)(IDirectFBScreen *thiz, DFBScreenDescription *ret_desc);
+ DFBResult (*EnumDisplayLayers)(IDirectFBScreen *thiz, DFBDisplayLayerCallback callback, void *callbackdata);
+ DFBResult (*SetPowerMode)(IDirectFBScreen *thiz, DFBScreenPowerMode mode);
+ DFBResult (*WaitForSync)(IDirectFBScreen *thiz);
+ DFBResult (*GetMixerDescriptions)(IDirectFBScreen *thiz, DFBScreenMixerDescription *ret_descriptions);
+ DFBResult (*GetMixerConfiguration)(IDirectFBScreen *thiz, int mixer, DFBScreenMixerConfig *ret_config);
+ DFBResult (*TestMixerConfiguration)(IDirectFBScreen *thiz, int mixer, const DFBScreenMixerConfig *config, DFBScreenMixerConfigFlags *ret_failed);
+ DFBResult (*SetMixerConfiguration)(IDirectFBScreen *thiz, int mixer, const DFBScreenMixerConfig *config);
+ DFBResult (*GetEncoderDescriptions)(IDirectFBScreen *thiz, DFBScreenEncoderDescription *ret_descriptions);
+ DFBResult (*GetEncoderConfiguration)(IDirectFBScreen *thiz, int encoder, DFBScreenEncoderConfig *ret_config);
+ DFBResult (*TestEncoderConfiguration)(IDirectFBScreen *thiz, int encoder, const DFBScreenEncoderConfig *config, DFBScreenEncoderConfigFlags *ret_failed);
+ DFBResult (*SetEncoderConfiguration)(IDirectFBScreen *thiz, int encoder, const DFBScreenEncoderConfig *config);
+ DFBResult (*GetOutputDescriptions)(IDirectFBScreen *thiz, DFBScreenOutputDescription *ret_descriptions);
+ DFBResult (*GetOutputConfiguration)(IDirectFBScreen *thiz, int output, DFBScreenOutputConfig *ret_config);
+ DFBResult (*TestOutputConfiguration)(IDirectFBScreen *thiz, int output, const DFBScreenOutputConfig *config, DFBScreenOutputConfigFlags *ret_failed);
+ DFBResult (*SetOutputConfiguration)(IDirectFBScreen *thiz, int output, const DFBScreenOutputConfig *config);
+};
+struct _IDirectFBDisplayLayer
+{
+ void *priv;
+ int magic;
+ DFBResult (*AddRef)(IDirectFBDisplayLayer *thiz);
+ DFBResult (*Release)(IDirectFBDisplayLayer *thiz);
+ DFBResult (*GetID)(IDirectFBDisplayLayer *thiz, DFBDisplayLayerID *ret_layer_id);
+ DFBResult (*GetDescription)(IDirectFBDisplayLayer *thiz, DFBDisplayLayerDescription *ret_desc);
+ DFBResult (*GetSourceDescriptions)(IDirectFBDisplayLayer *thiz, DFBDisplayLayerSourceDescription *ret_descriptions);
+ DFBResult (*GetCurrentOutputField)(IDirectFBDisplayLayer *thiz, int *ret_field);
+ DFBResult (*GetSurface)(IDirectFBDisplayLayer *thiz, IDirectFBSurface **ret_interface);
+ DFBResult (*GetScreen)(IDirectFBDisplayLayer *thiz, IDirectFBScreen **ret_interface);
+ DFBResult (*SetCooperativeLevel)(IDirectFBDisplayLayer *thiz, DFBDisplayLayerCooperativeLevel level);
+ DFBResult (*GetConfiguration)(IDirectFBDisplayLayer *thiz, DFBDisplayLayerConfig *ret_config);
+ DFBResult (*TestConfiguration)(IDirectFBDisplayLayer *thiz, const DFBDisplayLayerConfig *config, DFBDisplayLayerConfigFlags *ret_failed);
+ DFBResult (*SetConfiguration)(IDirectFBDisplayLayer *thiz, const DFBDisplayLayerConfig *config);
+ DFBResult (*SetScreenLocation)(IDirectFBDisplayLayer *thiz, float x, float y, float width, float height);
+ DFBResult (*SetScreenPosition)(IDirectFBDisplayLayer *thiz, int x, int y);
+ DFBResult (*SetScreenRectangle)(IDirectFBDisplayLayer *thiz, int x, int y, int width, int height);
+ DFBResult (*SetOpacity)(IDirectFBDisplayLayer *thiz, __u8 opacity);
+ DFBResult (*SetSourceRectangle)(IDirectFBDisplayLayer *thiz, int x, int y, int width, int height);
+ DFBResult (*SetFieldParity)(IDirectFBDisplayLayer *thiz, int field);
+ DFBResult (*SetSrcColorKey)(IDirectFBDisplayLayer *thiz, __u8 r, __u8 g, __u8 b);
+ DFBResult (*SetDstColorKey)(IDirectFBDisplayLayer *thiz, __u8 r, __u8 g, __u8 b);
+ DFBResult (*GetLevel)(IDirectFBDisplayLayer *thiz, int *ret_level);
+ DFBResult (*SetLevel)(IDirectFBDisplayLayer *thiz, int level);
+ DFBResult (*SetBackgroundMode)(IDirectFBDisplayLayer *thiz, DFBDisplayLayerBackgroundMode mode);
+ DFBResult (*SetBackgroundImage)(IDirectFBDisplayLayer *thiz, IDirectFBSurface *surface);
+ DFBResult (*SetBackgroundColor)(IDirectFBDisplayLayer *thiz, __u8 r, __u8 g, __u8 b, __u8 a);
+ DFBResult (*GetColorAdjustment)(IDirectFBDisplayLayer *thiz, DFBColorAdjustment *ret_adj);
+ DFBResult (*SetColorAdjustment)(IDirectFBDisplayLayer *thiz, const DFBColorAdjustment *adj);
+ DFBResult (*CreateWindow)(IDirectFBDisplayLayer *thiz, const DFBWindowDescription *desc, IDirectFBWindow **ret_interface);
+ DFBResult (*GetWindow)(IDirectFBDisplayLayer *thiz, DFBWindowID window_id, IDirectFBWindow **ret_interface);
+ DFBResult (*EnableCursor)(IDirectFBDisplayLayer *thiz, int enable);
+ DFBResult (*GetCursorPosition)(IDirectFBDisplayLayer *thiz, int *ret_x, int *ret_y);
+ DFBResult (*WarpCursor)(IDirectFBDisplayLayer *thiz, int x, int y);
+ DFBResult (*SetCursorAcceleration)(IDirectFBDisplayLayer *thiz, int numerator, int denominator, int threshold);
+ DFBResult (*SetCursorShape)(IDirectFBDisplayLayer *thiz, IDirectFBSurface *shape, int hot_x, int hot_y);
+ DFBResult (*SetCursorOpacity)(IDirectFBDisplayLayer *thiz, __u8 opacity);
+ DFBResult (*WaitForSync)(IDirectFBDisplayLayer *thiz);
+};
+typedef enum
+{
+ DSFLIP_NONE = 0x00000000,
+ DSFLIP_WAIT = 0x00000001,
+ DSFLIP_BLIT = 0x00000002,
+ DSFLIP_ONSYNC = 0x00000004,
+ DSFLIP_PIPELINE = 0x00000008,
+ DSFLIP_WAITFORSYNC = DSFLIP_WAIT | DSFLIP_ONSYNC
+} DFBSurfaceFlipFlags;
+typedef enum
+{
+ DSTF_LEFT = 0x00000000,
+ DSTF_CENTER = 0x00000001,
+ DSTF_RIGHT = 0x00000002,
+ DSTF_TOP = 0x00000004,
+ DSTF_BOTTOM = 0x00000008,
+ DSTF_TOPLEFT = DSTF_TOP | DSTF_LEFT,
+ DSTF_TOPCENTER = DSTF_TOP | DSTF_CENTER,
+ DSTF_TOPRIGHT = DSTF_TOP | DSTF_RIGHT,
+ DSTF_BOTTOMLEFT = DSTF_BOTTOM | DSTF_LEFT,
+ DSTF_BOTTOMCENTER = DSTF_BOTTOM | DSTF_CENTER,
+ DSTF_BOTTOMRIGHT = DSTF_BOTTOM | DSTF_RIGHT
+} DFBSurfaceTextFlags;
+typedef enum
+{
+ DSLF_READ = 0x00000001,
+ DSLF_WRITE = 0x00000002
+} DFBSurfaceLockFlags;
+typedef enum
+{
+ DSPD_NONE = 0,
+ DSPD_CLEAR = 1,
+ DSPD_SRC = 2,
+ DSPD_SRC_OVER = 3,
+ DSPD_DST_OVER = 4,
+ DSPD_SRC_IN = 5,
+ DSPD_DST_IN = 6,
+ DSPD_SRC_OUT = 7,
+ DSPD_DST_OUT = 8
+} DFBSurfacePorterDuffRule;
+typedef enum
+{
+ DSBF_ZERO = 1,
+ DSBF_ONE = 2,
+ DSBF_SRCCOLOR = 3,
+ DSBF_INVSRCCOLOR = 4,
+ DSBF_SRCALPHA = 5,
+ DSBF_INVSRCALPHA = 6,
+ DSBF_DESTALPHA = 7,
+ DSBF_INVDESTALPHA = 8,
+ DSBF_DESTCOLOR = 9,
+ DSBF_INVDESTCOLOR = 10,
+ DSBF_SRCALPHASAT = 11
+} DFBSurfaceBlendFunction;
+typedef struct
+{
+ float x;
+ float y;
+ float z;
+ float w;
+ float s;
+ float t;
+} DFBVertex;
+typedef enum
+{
+ DTTF_LIST,
+ DTTF_STRIP,
+ DTTF_FAN
+} DFBTriangleFormation;
+struct _IDirectFBSurface
+{
+ void *priv;
+ int magic;
+ DFBResult (*AddRef)(IDirectFBSurface *thiz);
+ DFBResult (*Release)(IDirectFBSurface *thiz);
+ DFBResult (*GetCapabilities)(IDirectFBSurface *thiz, DFBSurfaceCapabilities *ret_caps);
+ DFBResult (*GetSize)(IDirectFBSurface *thiz, int *ret_width, int *ret_height);
+ DFBResult (*GetVisibleRectangle)(IDirectFBSurface *thiz, DFBRectangle *ret_rect);
+ DFBResult (*GetPixelFormat)(IDirectFBSurface *thiz, DFBSurfacePixelFormat *ret_format);
+ DFBResult (*GetAccelerationMask)(IDirectFBSurface *thiz, IDirectFBSurface *source, DFBAccelerationMask *ret_mask);
+ DFBResult (*GetPalette)(IDirectFBSurface *thiz, IDirectFBPalette **ret_interface);
+ DFBResult (*SetPalette)(IDirectFBSurface *thiz, IDirectFBPalette *palette);
+ DFBResult (*SetAlphaRamp)(IDirectFBSurface *thiz, __u8 a0, __u8 a1, __u8 a2, __u8 a3);
+ DFBResult (*Lock)(IDirectFBSurface *thiz, DFBSurfaceLockFlags flags, void **ret_ptr, int *ret_pitch);
+ DFBResult (*Unlock)(IDirectFBSurface *thiz);
+ DFBResult (*Flip)(IDirectFBSurface *thiz, const DFBRegion *region, DFBSurfaceFlipFlags flags);
+ DFBResult (*SetField)(IDirectFBSurface *thiz, int field);
+ DFBResult (*Clear)(IDirectFBSurface *thiz, __u8 r, __u8 g, __u8 b, __u8 a);
+ DFBResult (*SetClip)(IDirectFBSurface *thiz, const DFBRegion *clip);
+ DFBResult (*SetColor)(IDirectFBSurface *thiz, __u8 r, __u8 g, __u8 b, __u8 a);
+ DFBResult (*SetColorIndex)(IDirectFBSurface *thiz, unsigned int index);
+ DFBResult (*SetSrcBlendFunction)(IDirectFBSurface *thiz, DFBSurfaceBlendFunction function);
+ DFBResult (*SetDstBlendFunction)(IDirectFBSurface *thiz, DFBSurfaceBlendFunction function);
+ DFBResult (*SetPorterDuff)(IDirectFBSurface *thiz, DFBSurfacePorterDuffRule rule);
+ DFBResult (*SetSrcColorKey)(IDirectFBSurface *thiz, __u8 r, __u8 g, __u8 b);
+ DFBResult (*SetSrcColorKeyIndex)(IDirectFBSurface *thiz, unsigned int index);
+ DFBResult (*SetDstColorKey)(IDirectFBSurface *thiz, __u8 r, __u8 g, __u8 b);
+ DFBResult (*SetDstColorKeyIndex)(IDirectFBSurface *thiz, unsigned int index);
+ DFBResult (*SetBlittingFlags)(IDirectFBSurface *thiz, DFBSurfaceBlittingFlags flags);
+ DFBResult (*Blit)(IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rect, int x, int y);
+ DFBResult (*TileBlit)(IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rect, int x, int y);
+ DFBResult (*BatchBlit)(IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rects, const DFBPoint *dest_points, int num);
+ DFBResult (*StretchBlit)(IDirectFBSurface *thiz, IDirectFBSurface *source, const DFBRectangle *source_rect, const DFBRectangle *destination_rect);
+ DFBResult (*TextureTriangles)(IDirectFBSurface *thiz, IDirectFBSurface *texture, const DFBVertex *vertices, const int *indices, int num, DFBTriangleFormation formation);
+ DFBResult (*SetDrawingFlags)(IDirectFBSurface *thiz, DFBSurfaceDrawingFlags flags);
+ DFBResult (*FillRectangle)(IDirectFBSurface *thiz, int x, int y, int w, int h);
+ DFBResult (*DrawRectangle)(IDirectFBSurface *thiz, int x, int y, int w, int h);
+ DFBResult (*DrawLine)(IDirectFBSurface *thiz, int x1, int y1, int x2, int y2);
+ DFBResult (*DrawLines)(IDirectFBSurface *thiz, const DFBRegion *lines, unsigned int num_lines);
+ DFBResult (*FillTriangle)(IDirectFBSurface *thiz, int x1, int y1, int x2, int y2, int x3, int y3);
+ DFBResult (*FillRectangles)(IDirectFBSurface *thiz, const DFBRectangle *rects, unsigned int num);
+ DFBResult (*FillSpans)(IDirectFBSurface *thiz, int y, const DFBSpan *spans, unsigned int num);
+ DFBResult (*SetFont)(IDirectFBSurface *thiz, IDirectFBFont *font);
+ DFBResult (*GetFont)(IDirectFBSurface *thiz, IDirectFBFont **ret_font);
+ DFBResult (*DrawString)(IDirectFBSurface *thiz, const char *text, int bytes, int x, int y, DFBSurfaceTextFlags flags);
+ DFBResult (*DrawGlyph)(IDirectFBSurface *thiz, unsigned int index, int x, int y, DFBSurfaceTextFlags flags);
+ DFBResult (*GetSubSurface)(IDirectFBSurface *thiz, const DFBRectangle *rect, IDirectFBSurface **ret_interface);
+ DFBResult (*GetGL)(IDirectFBSurface *thiz, IDirectFBGL **ret_interface);
+ DFBResult (*Dump)(IDirectFBSurface *thiz, const char *directory, const char *prefix);
+};
+struct _IDirectFBPalette
+{
+ void *priv;
+ int magic;
+ DFBResult (*AddRef)(IDirectFBPalette *thiz);
+ DFBResult (*Release)(IDirectFBPalette *thiz);
+ DFBResult (*GetCapabilities)(IDirectFBPalette *thiz, DFBPaletteCapabilities *ret_caps);
+ DFBResult (*GetSize)(IDirectFBPalette *thiz, unsigned int *ret_size);
+ DFBResult (*SetEntries)(IDirectFBPalette *thiz, const DFBColor *entries, unsigned int num_entries, unsigned int offset);
+ DFBResult (*GetEntries)(IDirectFBPalette *thiz, DFBColor *ret_entries, unsigned int num_entries, unsigned int offset);
+ DFBResult (*FindBestMatch)(IDirectFBPalette *thiz, __u8 r, __u8 g, __u8 b, __u8 a, unsigned int *ret_index);
+ DFBResult (*CreateCopy)(IDirectFBPalette *thiz, IDirectFBPalette **ret_interface);
+};
+typedef enum
+{
+ DIKS_UP = 0x00000000,
+ DIKS_DOWN = 0x00000001
+} DFBInputDeviceKeyState;
+typedef enum
+{
+ DIBS_UP = 0x00000000,
+ DIBS_DOWN = 0x00000001
+} DFBInputDeviceButtonState;
+typedef enum
+{
+ DIBM_LEFT = 0x00000001,
+ DIBM_RIGHT = 0x00000002,
+ DIBM_MIDDLE = 0x00000004
+} DFBInputDeviceButtonMask;
+typedef enum
+{
+ DIMM_SHIFT = (1 << DIMKI_SHIFT),
+ DIMM_CONTROL = (1 << DIMKI_CONTROL),
+ DIMM_ALT = (1 << DIMKI_ALT),
+ DIMM_ALTGR = (1 << DIMKI_ALTGR),
+ DIMM_META = (1 << DIMKI_META),
+ DIMM_SUPER = (1 << DIMKI_SUPER),
+ DIMM_HYPER = (1 << DIMKI_HYPER)
+} DFBInputDeviceModifierMask;
+struct _IDirectFBInputDevice
+{
+ void *priv;
+ int magic;
+ DFBResult (*AddRef)(IDirectFBInputDevice *thiz);
+ DFBResult (*Release)(IDirectFBInputDevice *thiz);
+ DFBResult (*GetID)(IDirectFBInputDevice *thiz, DFBInputDeviceID *ret_device_id);
+ DFBResult (*GetDescription)(IDirectFBInputDevice *thiz, DFBInputDeviceDescription *ret_desc);
+ DFBResult (*GetKeymapEntry)(IDirectFBInputDevice *thiz, int keycode, DFBInputDeviceKeymapEntry *ret_entry);
+ DFBResult (*CreateEventBuffer)(IDirectFBInputDevice *thiz, IDirectFBEventBuffer **ret_buffer);
+ DFBResult (*AttachEventBuffer)(IDirectFBInputDevice *thiz, IDirectFBEventBuffer *buffer);
+ DFBResult (*GetKeyState)(IDirectFBInputDevice *thiz, DFBInputDeviceKeyIdentifier key_id, DFBInputDeviceKeyState *ret_state);
+ DFBResult (*GetModifiers)(IDirectFBInputDevice *thiz, DFBInputDeviceModifierMask *ret_modifiers);
+ DFBResult (*GetLockState)(IDirectFBInputDevice *thiz, DFBInputDeviceLockState *ret_locks);
+ DFBResult (*GetButtons)(IDirectFBInputDevice *thiz, DFBInputDeviceButtonMask *ret_buttons);
+ DFBResult (*GetButtonState)(IDirectFBInputDevice *thiz, DFBInputDeviceButtonIdentifier button, DFBInputDeviceButtonState *ret_state);
+ DFBResult (*GetAxis)(IDirectFBInputDevice *thiz, DFBInputDeviceAxisIdentifier axis, int *ret_pos);
+ DFBResult (*GetXY)(IDirectFBInputDevice *thiz, int *ret_x, int *ret_y);
+};
+typedef enum
+{
+ DFEC_NONE = 0x00,
+ DFEC_INPUT = 0x01,
+ DFEC_WINDOW = 0x02,
+ DFEC_USER = 0x03
+} DFBEventClass;
+typedef enum
+{
+ DIET_UNKNOWN = 0,
+ DIET_KEYPRESS,
+ DIET_KEYRELEASE,
+ DIET_BUTTONPRESS,
+ DIET_BUTTONRELEASE,
+ DIET_AXISMOTION
+} DFBInputEventType;
+typedef enum
+{
+ DIEF_NONE = 0x000,
+ DIEF_TIMESTAMP = 0x001,
+ DIEF_AXISABS = 0x002,
+ DIEF_AXISREL = 0x004,
+ DIEF_KEYCODE = 0x008,
+ DIEF_KEYID = 0x010,
+ DIEF_KEYSYMBOL = 0x020,
+ DIEF_MODIFIERS = 0x040,
+ DIEF_LOCKS = 0x080,
+ DIEF_BUTTONS = 0x100,
+ DIEF_GLOBAL = 0x200
+} DFBInputEventFlags;
+typedef struct
+{
+ DFBEventClass clazz;
+ DFBInputEventType type;
+ DFBInputDeviceID device_id;
+ DFBInputEventFlags flags;
+ struct timeval timestamp;
+ int key_code;
+ DFBInputDeviceKeyIdentifier key_id;
+ DFBInputDeviceKeySymbol key_symbol;
+ DFBInputDeviceModifierMask modifiers;
+ DFBInputDeviceLockState locks;
+ DFBInputDeviceButtonIdentifier button;
+ DFBInputDeviceButtonMask buttons;
+ DFBInputDeviceAxisIdentifier axis;
+ int axisabs;
+ int axisrel;
+} DFBInputEvent;
+typedef enum
+{
+ DWET_NONE = 0x00000000,
+ DWET_POSITION = 0x00000001,
+ DWET_SIZE = 0x00000002,
+ DWET_CLOSE = 0x00000004,
+ DWET_DESTROYED = 0x00000008,
+ DWET_GOTFOCUS = 0x00000010,
+ DWET_LOSTFOCUS = 0x00000020,
+ DWET_KEYDOWN = 0x00000100,
+ DWET_KEYUP = 0x00000200,
+ DWET_BUTTONDOWN = 0x00010000,
+ DWET_BUTTONUP = 0x00020000,
+ DWET_MOTION = 0x00040000,
+ DWET_ENTER = 0x00080000,
+ DWET_LEAVE = 0x00100000,
+ DWET_WHEEL = 0x00200000,
+ DWET_POSITION_SIZE = DWET_POSITION | DWET_SIZE,
+ DWET_ALL = 0x003F033F
+} DFBWindowEventType;
+typedef struct
+{
+ DFBEventClass clazz;
+ DFBWindowEventType type;
+ DFBWindowID window_id;
+ int x;
+ int y;
+ int cx;
+ int cy;
+ int step;
+ int w;
+ int h;
+ int key_code;
+ DFBInputDeviceKeyIdentifier key_id;
+ DFBInputDeviceKeySymbol key_symbol;
+ DFBInputDeviceModifierMask modifiers;
+ DFBInputDeviceLockState locks;
+ DFBInputDeviceButtonIdentifier button;
+ DFBInputDeviceButtonMask buttons;
+ struct timeval timestamp;
+} DFBWindowEvent;
+typedef struct
+{
+ DFBEventClass clazz;
+ unsigned int type;
+ void *data;
+} DFBUserEvent;
+typedef union
+{
+ DFBEventClass clazz;
+ DFBInputEvent input;
+ DFBWindowEvent window;
+ DFBUserEvent user;
+} DFBEvent;
+struct _IDirectFBEventBuffer
+{
+ void *priv;
+ int magic;
+ DFBResult (*AddRef)(IDirectFBEventBuffer *thiz);
+ DFBResult (*Release)(IDirectFBEventBuffer *thiz);
+ DFBResult (*Reset)(IDirectFBEventBuffer *thiz);
+ DFBResult (*WaitForEvent)(IDirectFBEventBuffer *thiz);
+ DFBResult (*WaitForEventWithTimeout)(IDirectFBEventBuffer *thiz, unsigned int seconds, unsigned int milli_seconds);
+ DFBResult (*GetEvent)(IDirectFBEventBuffer *thiz, DFBEvent *ret_event);
+ DFBResult (*PeekEvent)(IDirectFBEventBuffer *thiz, DFBEvent *ret_event);
+ DFBResult (*HasEvent)(IDirectFBEventBuffer *thiz);
+ DFBResult (*PostEvent)(IDirectFBEventBuffer *thiz, const DFBEvent *event);
+ DFBResult (*WakeUp)(IDirectFBEventBuffer *thiz);
+ DFBResult (*CreateFileDescriptor)(IDirectFBEventBuffer *thiz, int *ret_fd);
+};
+typedef enum
+{
+ DWOP_NONE = 0x00000000,
+ DWOP_COLORKEYING = 0x00000001,
+ DWOP_ALPHACHANNEL = 0x00000002,
+ DWOP_OPAQUE_REGION = 0x00000004,
+ DWOP_SHAPED = 0x00000008,
+ DWOP_KEEP_POSITION = 0x00000010,
+ DWOP_KEEP_SIZE = 0x00000020,
+ DWOP_KEEP_STACKING = 0x00000040,
+ DWOP_GHOST = 0x00001000,
+ DWOP_INDESTRUCTIBLE = 0x00002000,
+ DWOP_ALL = 0x0000307F
+} DFBWindowOptions;
+typedef enum
+{
+ DWSC_MIDDLE = 0x00000000,
+ DWSC_UPPER = 0x00000001,
+ DWSC_LOWER = 0x00000002
+} DFBWindowStackingClass;
+struct _IDirectFBWindow
+{
+ void *priv;
+ int magic;
+ DFBResult (*AddRef)(IDirectFBWindow *thiz);
+ DFBResult (*Release)(IDirectFBWindow *thiz);
+ DFBResult (*GetID)(IDirectFBWindow *thiz, DFBWindowID *ret_window_id);
+ DFBResult (*GetPosition)(IDirectFBWindow *thiz, int *ret_x, int *ret_y);
+ DFBResult (*GetSize)(IDirectFBWindow *thiz, int *ret_width, int *ret_height);
+ DFBResult (*CreateEventBuffer)(IDirectFBWindow *thiz, IDirectFBEventBuffer **ret_buffer);
+ DFBResult (*AttachEventBuffer)(IDirectFBWindow *thiz, IDirectFBEventBuffer *buffer);
+ DFBResult (*EnableEvents)(IDirectFBWindow *thiz, DFBWindowEventType mask);
+ DFBResult (*DisableEvents)(IDirectFBWindow *thiz, DFBWindowEventType mask);
+ DFBResult (*GetSurface)(IDirectFBWindow *thiz, IDirectFBSurface **ret_surface);
+ DFBResult (*SetOptions)(IDirectFBWindow *thiz, DFBWindowOptions options);
+ DFBResult (*GetOptions)(IDirectFBWindow *thiz, DFBWindowOptions *ret_options);
+ DFBResult (*SetColorKey)(IDirectFBWindow *thiz, __u8 r, __u8 g, __u8 b);
+ DFBResult (*SetColorKeyIndex)(IDirectFBWindow *thiz, unsigned int index);
+ DFBResult (*SetOpacity)(IDirectFBWindow *thiz, __u8 opacity);
+ DFBResult (*SetOpaqueRegion)(IDirectFBWindow *thiz, int x1, int y1, int x2, int y2);
+ DFBResult (*GetOpacity)(IDirectFBWindow *thiz, __u8 *ret_opacity);
+ DFBResult (*SetCursorShape)(IDirectFBWindow *thiz, IDirectFBSurface *shape, int hot_x, int hot_y);
+ DFBResult (*RequestFocus)(IDirectFBWindow *thiz);
+ DFBResult (*GrabKeyboard)(IDirectFBWindow *thiz);
+ DFBResult (*UngrabKeyboard)(IDirectFBWindow *thiz);
+ DFBResult (*GrabPointer)(IDirectFBWindow *thiz);
+ DFBResult (*UngrabPointer)(IDirectFBWindow *thiz);
+ DFBResult (*GrabKey)(IDirectFBWindow *thiz, DFBInputDeviceKeySymbol symbol, DFBInputDeviceModifierMask modifiers);
+ DFBResult (*UngrabKey)(IDirectFBWindow *thiz, DFBInputDeviceKeySymbol symbol, DFBInputDeviceModifierMask modifiers);
+ DFBResult (*Move)(IDirectFBWindow *thiz, int dx, int dy);
+ DFBResult (*MoveTo)(IDirectFBWindow *thiz, int x, int y);
+ DFBResult (*Resize)(IDirectFBWindow *thiz, int width, int height);
+ DFBResult (*SetStackingClass)(IDirectFBWindow *thiz, DFBWindowStackingClass stacking_class);
+ DFBResult (*Raise)(IDirectFBWindow *thiz);
+ DFBResult (*Lower)(IDirectFBWindow *thiz);
+ DFBResult (*RaiseToTop)(IDirectFBWindow *thiz);
+ DFBResult (*LowerToBottom)(IDirectFBWindow *thiz);
+ DFBResult (*PutAtop)(IDirectFBWindow *thiz, IDirectFBWindow *lower);
+ DFBResult (*PutBelow)(IDirectFBWindow *thiz, IDirectFBWindow *upper);
+ DFBResult (*Close)(IDirectFBWindow *thiz);
+ DFBResult (*Destroy)(IDirectFBWindow *thiz);
+};
+struct _IDirectFBFont
+{
+ void *priv;
+ int magic;
+ DFBResult (*AddRef)(IDirectFBFont *thiz);
+ DFBResult (*Release)(IDirectFBFont *thiz);
+ DFBResult (*GetAscender)(IDirectFBFont *thiz, int *ret_ascender);
+ DFBResult (*GetDescender)(IDirectFBFont *thiz, int *ret_descender);
+ DFBResult (*GetHeight)(IDirectFBFont *thiz, int *ret_height);
+ DFBResult (*GetMaxAdvance)(IDirectFBFont *thiz, int *ret_maxadvance);
+ DFBResult (*GetKerning)(IDirectFBFont *thiz, unsigned int prev_index, unsigned int current_index, int *ret_kern_x, int *ret_kern_y);
+ DFBResult (*GetStringWidth)(IDirectFBFont *thiz, const char *text, int bytes, int *ret_width);
+ DFBResult (*GetStringExtents)(IDirectFBFont *thiz, const char *text, int bytes, DFBRectangle *ret_logical_rect, DFBRectangle *ret_ink_rect);
+ DFBResult (*GetGlyphExtents)(IDirectFBFont *thiz, unsigned int index, DFBRectangle *ret_rect, int *ret_advance);
+};
+typedef enum
+{
+ DICAPS_NONE = 0x00000000,
+ DICAPS_ALPHACHANNEL = 0x00000001,
+ DICAPS_COLORKEY = 0x00000002
+} DFBImageCapabilities;
+typedef struct
+{
+ DFBImageCapabilities caps;
+ __u8 colorkey_r;
+ __u8 colorkey_g;
+ __u8 colorkey_b;
+} DFBImageDescription;
+typedef void (*DIRenderCallback)(DFBRectangle *rect, void *ctx);
+struct _IDirectFBImageProvider
+{
+ void *priv;
+ int magic;
+ DFBResult (*AddRef)(IDirectFBImageProvider *thiz);
+ DFBResult (*Release)(IDirectFBImageProvider *thiz);
+ DFBResult (*GetSurfaceDescription)(IDirectFBImageProvider *thiz, DFBSurfaceDescription *ret_dsc);
+ DFBResult (*GetImageDescription)(IDirectFBImageProvider *thiz, DFBImageDescription *ret_dsc);
+ DFBResult (*RenderTo)(IDirectFBImageProvider *thiz, IDirectFBSurface *destination, const DFBRectangle *destination_rect);
+ DFBResult (*SetRenderCallback)(IDirectFBImageProvider *thiz, DIRenderCallback callback, void *callback_data);
+};
+typedef int (*DVFrameCallback)(void *ctx);
+struct _IDirectFBVideoProvider
+{
+ void *priv;
+ int magic;
+ DFBResult (*AddRef)(IDirectFBVideoProvider *thiz);
+ DFBResult (*Release)(IDirectFBVideoProvider *thiz);
+ DFBResult (*GetCapabilities)(IDirectFBVideoProvider *thiz, DFBVideoProviderCapabilities *ret_caps);
+ DFBResult (*GetSurfaceDescription)(IDirectFBVideoProvider *thiz, DFBSurfaceDescription *ret_dsc);
+ DFBResult (*PlayTo)(IDirectFBVideoProvider *thiz, IDirectFBSurface *destination, const DFBRectangle *destination_rect, DVFrameCallback callback, void *ctx);
+ DFBResult (*Stop)(IDirectFBVideoProvider *thiz);
+ DFBResult (*SeekTo)(IDirectFBVideoProvider *thiz, double seconds);
+ DFBResult (*GetPos)(IDirectFBVideoProvider *thiz, double *ret_seconds);
+ DFBResult (*GetLength)(IDirectFBVideoProvider *thiz, double *ret_seconds);
+ DFBResult (*GetColorAdjustment)(IDirectFBVideoProvider *thiz, DFBColorAdjustment *ret_adj);
+ DFBResult (*SetColorAdjustment)(IDirectFBVideoProvider *thiz, const DFBColorAdjustment *adj);
+};
+struct _IDirectFBDataBuffer
+{
+ void *priv;
+ int magic;
+ DFBResult (*AddRef)(IDirectFBDataBuffer *thiz);
+ DFBResult (*Release)(IDirectFBDataBuffer *thiz);
+ DFBResult (*Flush)(IDirectFBDataBuffer *thiz);
+ DFBResult (*SeekTo)(IDirectFBDataBuffer *thiz, unsigned int offset);
+ DFBResult (*GetPosition)(IDirectFBDataBuffer *thiz, unsigned int *ret_offset);
+ DFBResult (*GetLength)(IDirectFBDataBuffer *thiz, unsigned int *ret_length);
+ DFBResult (*WaitForData)(IDirectFBDataBuffer *thiz, unsigned int length);
+ DFBResult (*WaitForDataWithTimeout)(IDirectFBDataBuffer *thiz, unsigned int length, unsigned int seconds, unsigned int milli_seconds);
+ DFBResult (*GetData)(IDirectFBDataBuffer *thiz, unsigned int length, void *ret_data, unsigned int *ret_read);
+ DFBResult (*PeekData)(IDirectFBDataBuffer *thiz, unsigned int length, int offset, void *ret_data, unsigned int *ret_read);
+ DFBResult (*HasData)(IDirectFBDataBuffer *thiz);
+ DFBResult (*PutData)(IDirectFBDataBuffer *thiz, const void *data, unsigned int length);
+ DFBResult (*CreateImageProvider)(IDirectFBDataBuffer *thiz, IDirectFBImageProvider **interface);
+};