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 < +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: