From 2dd32c7adb7116f1ad9ab2632d9fcf57a31e9fa2 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Mon, 21 Nov 2011 08:44:10 +0000 Subject: Improve API to allow for RAM surfaces instead of direct blitting Improve and update tests Fix RAM surface Fix VNC surface svn path=/trunk/libnsfb/; revision=13158 --- test/frontend.c | 52 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 14 deletions(-) (limited to 'test/frontend.c') diff --git a/test/frontend.c b/test/frontend.c index 3d72229..5cf0651 100644 --- a/test/frontend.c +++ b/test/frontend.c @@ -4,12 +4,16 @@ #include #include "libnsfb.h" +#include "libnsfb_event.h" int main(int argc, char **argv) { nsfb_t *nsfb; const char *fename; - enum nsfb_frontend_e fetype; + enum nsfb_type_e fetype; + nsfb_event_t event; + + int waitloop = 3; if (argc < 2) { fename="sdl"; @@ -17,32 +21,52 @@ int main(int argc, char **argv) fename = argv[1]; } - fetype = nsfb_frontend_from_name(fename); - if (fetype == NSFB_FRONTEND_NONE) { - fprintf(stderr, "Unable to initialise nsfb with %s frontend\n", fename); + fetype = nsfb_type_from_name(fename); + if (fetype == NSFB_SURFACE_NONE) { + fprintf(stderr, "Unable to convert \"%s\" to nsfb surface type\n", fename); return 1; } - nsfb = nsfb_init(fetype); + nsfb = nsfb_new(fetype); if (nsfb == NULL) { - fprintf(stderr, "Unable to initialise nsfb with %s frontend\n", fename); + fprintf(stderr, "Unable to allocate \"%s\" nsfb surface\n", fename); return 2; } - if (nsfb_set_geometry(nsfb, 0, 0, 32) == -1) { - fprintf(stderr, "Unable to set geometry\n"); - nsfb_finalise(nsfb); + if (nsfb_set_geometry(nsfb, 0, 0, NSFB_FMT_ANY) == -1) { + fprintf(stderr, "Unable to set surface geometry\n"); + nsfb_free(nsfb); return 3; } - if (nsfb_init_frontend(nsfb) == -1) { - fprintf(stderr, "Unable to initialise nsfb frontend\n"); - nsfb_finalise(nsfb); + if (nsfb_init(nsfb) == -1) { + fprintf(stderr, "Unable to initialise nsfb surface\n"); + nsfb_free(nsfb); return 4; } - sleep(2); + /* wait for quit event or timeout */ + while (waitloop > 0) { + if (nsfb_event(nsfb, &event, 1000) == false) { + break; + } + if (event.type == NSFB_EVENT_CONTROL) { + if (event.value.controlcode == NSFB_CONTROL_TIMEOUT) { + /* timeout */ + waitloop--; + } else if (event.value.controlcode == NSFB_CONTROL_QUIT) { + break; + } + } + } - nsfb_finalise(nsfb); + nsfb_free(nsfb); return 0; } + +/* + * Local variables: + * c-basic-offset: 4 + * tab-width: 8 + * End: + */ -- cgit v1.2.3