struct SpiceImplementation {
        SpiceBaseInterface *interface;
};

struct SpiceKeyboard {
        SpiceImplementation parent;
};

Those two are pretty simliar to SpiceInterfaceState and SpiceKbdState.

struct KeyboardInterface {
     SpiceBaseInterface base;

     void (*push_scan_freg)(SpiceKeyboard *keyboard, uint8_t frag);
     uint8_t (*get_leds)(SpiceKeyboard *keyboard);
};

I've considered something simliar, but decided to *not* do this.

I don't want to make the SpiceKbdState struct layout part of the library interface, so we can easily extend it as needed without breaking the ABI.

struct SpiceQxlDevice {
        SpiceImplementation parent;
        int id;
};

struct SpiceQxlInterface {
        SpiceImplementation parent;
        ...
};

Yea, especially for QXL the "..." is likely to change as we cleanup the code base, going away from global variables everythere.

cheers,
  Gerd
_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to