summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfigure17
-rw-r--r--libvo/vo_directfb.c14
2 files changed, 30 insertions, 1 deletions
diff --git a/configure b/configure
index 937133e9b7..213f3a0f08 100755
--- a/configure
+++ b/configure
@@ -1507,6 +1507,23 @@ else
fi
echores "$_directfb"
+echocheck "DirectFB >= 0.9.9"
+if test "$_directfb" = auto; then
+ _directfb=no
+ cat > $TMPC <<EOF
+#include <directfb.h>
+nt main(void) { IDirectFBEventBuffer *foo; return 0; }
+EOF
+ linux && test -c /dev/fb0 && cc_check -ldirectfb && _directfb=yes
+fi
+if test "$_directfb" = yes ; then
+ _def_directfb='#define HAVE_DIRECTFB099 1'
+else
+ _def_directfb='#undef HAVE_DIRECTFB'
+fi
+echores "$_directfb"
+
+
# Checking for localization ...
echocheck "language"
diff --git a/libvo/vo_directfb.c b/libvo/vo_directfb.c
index 078988b1d8..728c7d44a0 100644
--- a/libvo/vo_directfb.c
+++ b/libvo/vo_directfb.c
@@ -108,7 +108,12 @@ static IDirectFBSurface *frame = NULL;
/*
* A buffer for input events.
*/
+
+#ifdef HAVE_DIRECTFB099
+static IDirectFBEventBuffer *buffer = NULL;
+#else
static IDirectFBInputBuffer *buffer = NULL;
+#endif
/******************************
* vo_directfb *
@@ -574,7 +579,11 @@ static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
/*
* Create an input buffer for the keyboard.
*/
+#ifdef HAVE_DIRECTFB099
+ DFBCHECK (keyboard->CreateEventBuffer (DICAPS_ALL, &buffer));
+#else
DFBCHECK (keyboard->CreateInputBuffer (keyboard, &buffer));
+#endif
// yuv2rgb transform init
@@ -797,8 +806,11 @@ static void check_events(void)
{
DFBInputEvent event;
-
+#ifdef HAVE_DIRECTFB099
+if (buffer->GetEvent (buffer, DFB_EVENT(&event)) == DFB_OK) {
+#else
if (buffer->GetEvent (buffer, &event) == DFB_OK) {
+#endif
if (event.type == DIET_KEYPRESS) {
switch (event.keycode) {
case DIKC_ESCAPE: