Changeset 50cfa6c in mainline for uspace/srv/console/console.c


Ignore:
Timestamp:
2009-07-14T21:25:13Z (15 years ago)
Author:
Jiri Svoboda <jirik.svoboda@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
bf5443d
Parents:
7d88587
Message:

Method for getting console color capabilities. Use to fix invisible tetris pieces.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/console/console.c

    r7d88587 r50cfa6c  
    7070        ipcarg_t cols;  /**< Framebuffer columns */
    7171        ipcarg_t rows;  /**< Framebuffer rows */
     72        int color_cap;  /**< Color capabilities (FB_CCAP_xxx) */
    7273} fb_info;
    7374
     
    171172                break;
    172173        }
     174}
     175
     176int ccap_fb_to_con(int ccap_fb, int *ccap_con)
     177{
     178        switch (ccap_fb) {
     179        case FB_CCAP_NONE: *ccap_con = CONSOLE_CCAP_NONE; break;
     180        case FB_CCAP_STYLE: *ccap_con = CONSOLE_CCAP_STYLE; break;
     181        case FB_CCAP_INDEXED: *ccap_con = CONSOLE_CCAP_INDEXED; break;
     182        case FB_CCAP_RGB: *ccap_con = CONSOLE_CCAP_RGB; break;
     183        default: return EINVAL;
     184        }
     185
     186        return EOK;
    173187}
    174188
     
    527541        ipcarg_t arg2;
    528542        ipcarg_t arg3;
     543
     544        int cons_ccap;
     545        int rc;
    529546       
    530547        async_serialize_start();
     
    589606                        arg2 = fb_info.rows;
    590607                        break;
     608                case CONSOLE_GET_COLOR_CAP:
     609                        rc = ccap_fb_to_con(fb_info.color_cap, &cons_ccap);
     610                        if (rc != EOK) {
     611                                ipc_answer_0(callid, rc);
     612                                continue;
     613                        }
     614                        arg1 = cons_ccap;
     615                        break;
    591616                case CONSOLE_SET_STYLE:
    592617                        fb_pending_flush();
     
    640665static bool console_init(void)
    641666{
     667        ipcarg_t color_cap;
     668
    642669        /* Connect to keyboard driver */
    643670        kbd_phone = ipc_connect_me_to_blocking(PHONE_NS, SERVICE_KEYBOARD, 0, 0);
     
    675702        async_req_0_0(fb_info.phone, FB_FLUSH);
    676703        async_req_0_2(fb_info.phone, FB_GET_CSIZE, &fb_info.cols, &fb_info.rows);
     704        async_req_0_1(fb_info.phone, FB_GET_COLOR_CAP, &color_cap);
     705        fb_info.color_cap = color_cap;
    677706       
    678707        /* Set up shared memory buffer. */
Note: See TracChangeset for help on using the changeset viewer.