summaryrefslogtreecommitdiff
path: root/test/frontend.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/frontend.c')
-rw-r--r--test/frontend.c52
1 files changed, 38 insertions, 14 deletions
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 <unistd.h>
#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:
+ */