Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. #include <stdio.h>
  2. #include <stdbool.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5.  
  6. #include "libnsfb.h"
  7. #include "libnsfb_event.h"
  8.  
  9. int main(int argc, char **argv)
  10. {
  11.     nsfb_t *nsfb;
  12.     const char *fename;
  13.     enum nsfb_type_e fetype;
  14.     nsfb_event_t event;
  15.  
  16.     int waitloop = 3;
  17.  
  18.     if (argc < 2) {
  19.         fename="sdl";
  20.     } else {
  21.         fename = argv[1];
  22.     }
  23.  
  24.     fetype = nsfb_type_from_name(fename);
  25.     if (fetype == NSFB_SURFACE_NONE) {
  26.         fprintf(stderr, "Unable to convert \"%s\" to nsfb surface type\n", fename);
  27.         return 1;
  28.     }
  29.  
  30.     nsfb = nsfb_new(fetype);
  31.     if (nsfb == NULL) {
  32.         fprintf(stderr, "Unable to allocate \"%s\" nsfb surface\n", fename);
  33.         return 2;
  34.     }
  35.  
  36.     if (nsfb_set_geometry(nsfb, 0, 0, NSFB_FMT_ANY) == -1) {
  37.         fprintf(stderr, "Unable to set surface geometry\n");
  38.         nsfb_free(nsfb);
  39.         return 3;
  40.     }
  41.  
  42.     if (nsfb_init(nsfb) == -1) {
  43.         fprintf(stderr, "Unable to initialise nsfb surface\n");
  44.         nsfb_free(nsfb);
  45.         return 4;
  46.     }
  47.  
  48.     /* wait for quit event or timeout */
  49.     while (waitloop > 0) {
  50.         if (nsfb_event(nsfb, &event, 1000)  == false) {
  51.             break;
  52.         }
  53.         if (event.type == NSFB_EVENT_CONTROL) {
  54.             if (event.value.controlcode == NSFB_CONTROL_TIMEOUT) {
  55.                 /* timeout */
  56.                 waitloop--;
  57.             } else if (event.value.controlcode == NSFB_CONTROL_QUIT) {
  58.                 break;
  59.             }
  60.         }
  61.     }
  62.  
  63.     nsfb_free(nsfb);
  64.     return 0;
  65. }
  66.  
  67. /*
  68.  * Local variables:
  69.  *  c-basic-offset: 4
  70.  *  tab-width: 8
  71.  * End:
  72.  */
  73.