Új hozzászólás Aktív témák

  • Domonkos

    addikt

    válasz Domonkos #56 üzenetére

    📈

    Vegul mar csak egy feladat maradt, tudatni a hoszttal hogy mi is tortent. Ez szerencsere egyszeru. Annyit kell tennunk, hogy az usb_keyboard.h altal deklaralt keyboard_modifier_keys-t es keyboard_keys[]-t a korabban osszegyujtott scan code-okkal feltoltsuk, majd meghivjuk az usb_keyboard_send() fuggvenyt. A tobbit a hardverhez kapott fuggvenyek intezik.
    Szoval a kuldes rank eso reszet implementalhatjuk mondjuk igy:

    static uint8_t
    send_updates(void)
    {
    static uint8_t prev_keys[NKRO] = { 0 };

    if (!memcmp(keys, prev_keys, sizeof (keys))) {
    return 0;
    }
    memcpy(prev_keys, keys, sizeof (prev_keys));

    keyboard_modifier_keys = 0;
    memcpy(keyboard_keys, keys, sizeof (keyboard_keys));

    return usb_keyboard_send();
    }

    Sajnos ma sem usszuk ezt meg kisebb trukkok nelkul, itt is be kell vetnunk egyet. Ha nem tortent valtozas, akkor nem kell semmi valtozast kuldjunk. (A jelenlegi megertesem alapjan a tobbszori kuldessel nem csinalnank kart, de abszolut felesleges.) A billentyuk nyomva tartasat nem kell egyeb modon kozolnunk, mint amikor a lenyomas tortenik, akkor elkulnedi a lenyomott karakterkodot - a tobbi lenyomott billentyu kodjaival egyutt - majd felengedeskor kikuldeni a tovabbra is nyomva tartott billentyuk kodjait a felengedett billentyunek a kodja nelkul. Ha azt szeretnenk jelezni, hogy egy billentyu sincs epp tartva, akkor egy csak 0-kat tartalmazo tombot kell kuldjunk.
    A keyboard_modifier_keys hasonloan mukodik a modokra, viszont ott minden egyes bit egy-egy modosito billentyunek lenne megfeleltetheto. Mivel mi nem hasznaltunk eddig egyet sem, igy ezt most fixen 0-n hagyhatjuk. Kesobb erre persze szuksegunk lesz, szoval mar most sem erdemes kihagyni a kodbol.
    Tovabba mar csak ez a par deklaracio hianyozhat:

    extern uint8_t keyboard_modifier_keys;
    extern uint8_t keyboard_keys[6];

    Es egyebkent keszen is lennenk. Ha mindent jol csinaltunk akkor nem maradt mas hatra, mint egy forditas plusz egy flasheles; es utana johet az elesben valo teszteles - egy oldallal. :( Mert a tovabbhaladas jelenleg csak a postan fog mulani. Ha sikerul a heten kihozniuk a csomagjaimat, akkor a blog szunet nelkul folytatodik, ha nem akkor lehet hogy egy kis kenyszerszunet kovetkezhet. Elnezest miatta, de nem tudom mar lassabban irni a blogot. :D

    Egyebkent kerdesek johetnek! :K

Új hozzászólás Aktív témák

Hirdetés