Changeset 082feff in mainline


Ignore:
Timestamp:
2023-10-10T18:37:44Z (15 months ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c0efb2e
Parents:
f9ae472
Message:

GFX Demo should handle keyboard events in console mode

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/gfxdemo/gfxdemo.c

    rf9ae472 r082feff  
    6868};
    6969
     70static void demo_kbd_event(kbd_event_t *);
     71
    7072static bool quit = false;
    7173static FIBRIL_MUTEX_INITIALIZE(quit_lock);
     
    7476static gfx_font_t *font;
    7577static gfx_coord_t vpad;
     78static console_ctrl_t *con = NULL;
    7679
    7780/** Determine if we are running in text mode.
     
    9396static void demo_msleep(unsigned msec)
    9497{
     98        errno_t rc;
     99        usec_t usec;
     100        cons_event_t cevent;
     101
    95102        fibril_mutex_lock(&quit_lock);
    96 
    97103        if (!quit) {
    98                 (void) fibril_condvar_wait_timeout(&quit_cv, &quit_lock,
    99                     (usec_t)msec * 1000);
    100         }
    101 
     104                if (con != NULL) {
     105                        usec = (usec_t)msec * 1000;
     106                        while (usec > 0 && !quit) {
     107                                rc = console_get_event_timeout(con, &cevent, &usec);
     108                                if (rc == EOK) {
     109                                        if (cevent.type == CEV_KEY) {
     110                                                fibril_mutex_unlock(&quit_lock);
     111                                                demo_kbd_event(&cevent.ev.key);
     112                                                fibril_mutex_lock(&quit_lock);
     113                                        }
     114                                }
     115                        }
     116                } else {
     117                        (void) fibril_condvar_wait_timeout(&quit_cv, &quit_lock,
     118                            (usec_t)msec * 1000);
     119                }
     120        }
    102121        fibril_mutex_unlock(&quit_lock);
    103122}
     
    10501069static errno_t demo_console(void)
    10511070{
    1052         console_ctrl_t *con = NULL;
    10531071        console_gc_t *cgc = NULL;
    10541072        gfx_context_t *gc;
Note: See TracChangeset for help on using the changeset viewer.