Changeset 6af4b4f in mainline for uspace/srv/hid/display/main.c


Ignore:
Timestamp:
2019-10-05T08:45:25Z (5 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
bef51cf
Parents:
c8cf261
git-author:
Jiri Svoboda <jiri@…> (2019-10-04 17:52:54)
git-committer:
Jiri Svoboda <jiri@…> (2019-10-05 08:45:25)
Message:

Introduce ds_display_t, ds_window_t

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/display/main.c

    rc8cf261 r6af4b4f  
    4646#include <task.h>
    4747#include "display.h"
    48 #include "wingc.h"
     48#include "window.h"
    4949
    5050#define NAME  "display"
     
    5555static errno_t display_srv_init(void)
    5656{
     57        ds_display_t *disp = NULL;
    5758        errno_t rc;
     59
     60        rc = ds_display_create(&disp);
     61        if (rc != EOK)
     62                goto error;
    5863
    5964        log_msg(LOG_DEFAULT, LVL_DEBUG, "display_srv_init()");
    6065
    61         async_set_fallback_port_handler(display_client_conn, NULL/*parts*/);
     66        async_set_fallback_port_handler(display_client_conn, disp);
    6267
    6368        rc = loc_server_register(NAME);
     
    7782        return EOK;
    7883error:
     84        if (disp != NULL)
     85                ds_display_destroy(disp);
    7986        return rc;
    8087}
     
    8693        sysarg_t wnd_id;
    8794        sysarg_t svc_id;
    88         win_gc_t *wgc = NULL;
     95        ds_window_t *wnd;
     96        ds_display_t *disp = (ds_display_t *) arg;
    8997        gfx_context_t *gc;
    90         errno_t rc;
    9198
    9299        log_msg(LOG_DEFAULT, LVL_NOTE, "display_client_conn arg1=%zu arg2=%zu arg3=%zu arg4=%zu.",
     
    103110                /* Display management */
    104111                srv.ops = &display_srv_ops;
    105                 srv.arg = NULL;
     112                srv.arg = disp;
    106113
    107114                display_conn(icall, &srv);
    108115        } else {
    109                 (void) wnd_id;
    110116                /* Window GC */
    111                 rc = win_gc_create(&wgc);
    112                 if (rc != EOK) {
    113                         async_answer_0(icall, ENOMEM);
     117                wnd = ds_display_find_window(disp, wnd_id);
     118                if (wnd == NULL) {
     119                        async_answer_0(icall, ENOENT);
    114120                        return;
    115121                }
    116122
    117                 gc = win_gc_get_ctx(wgc);
     123                gc = ds_window_get_ctx(wnd);
    118124                gc_conn(icall, gc);
    119 
    120                 win_gc_delete(wgc);
    121125        }
    122126}
Note: See TracChangeset for help on using the changeset viewer.