All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gerd Hoffmann <kraxel@redhat.com>
To: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	spice-devel <spice-devel@lists.freedesktop.org>
Subject: [Qemu-devel] paravirtual tablet v2
Date: Fri, 14 Jan 2011 13:02:35 +0100	[thread overview]
Message-ID: <4D303B5B.6070609@redhat.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 89 bytes --]

   Hi,

Updated according to the feedback.  Multitouch not added (yet).

cheers,
   Gerd

[-- Attachment #2: pvtablet.h --]
[-- Type: text/x-chdr, Size: 2556 bytes --]

#ifndef __QEMU_PVTABLET__
#define __QEMU_PVTABLET__ 1

/*
 * qemu patavirtual tablet interface
 */

#include <inttypes.h>

/*
 * our virtio-serial channel name(s)
 */
#define QEMU_PVTABLET_FORMAT "org.qemu.pvtablet.%d"

enum qemu_pvtablet_type {
    QEMU_PVTABLET_MSG_INIT,
    QEMU_PVTABLET_MSG_ACK,
    QEMU_PVTABLET_MSG_MOVE,
    QEMU_PVTABLET_MSG_BTN_DOWN,
    QEMU_PVTABLET_MSG_BTN_UP,
};

typedef enum qemu_pvtablet_features {
    /* None yet */
};

typedef enum qemu_pvtablet_buttons {
    QEMU_PVTABLET_BTN_LEFT,
    QEMU_PVTABLET_BTN_RIGHT,
    QEMU_PVTABLET_BTN_MIDDLE,
    QEMU_PVTABLET_BTN_SCROLL_UP,
    QEMU_PVTABLET_BTN_SCROLL_DOWN,
    /*
     * we can handle up to 32 buttons although
     * not every has a individual name ;)
     */
};

/*
 * QEMU_PVTABLET_MSG_INIT, host -> guest
 * first message, sent before any other event
 */
typedef struct qemu_pvtablet_init {
    uint32_t res_x;        /* x axis resolution */
    uint32_t res_y;        /* y axis resolution */
    uint32_t features;     /* qemu_pvtablet_features */
    uint32_t buttons_mask; /* mouse buttons available */
} qemu_pvtablet_init;

/*
 * QEMU_PVTABLET_MSG_ACK, guest -> host
 * sent after pvtablet_init.  host will not send
 * additional messages until this is received
 */
typedef struct qemu_pvtablet_ack {
    uint32_t features; /* qemu_pvtable_features */
};

/*
 * QEMU_PVTABLET_MSG_BTN_{DOWN,UP}, host -> guest
 * send button press+release events
 */
typedef struct qemu_pvtablet_button {
    uint32_t button;
    uint32_t mask;
} qemu_pvtablet_button;

/*
 * QEMU_PVTABLET_MSG_MOVE, host -> guest
 * send pointer move events
 */
typedef struct qemu_pvtablet_position {
    uint32_t pos_x;
    uint32_t pos_y;
} qemu_pvtablet_position;


typedef struct qemu_pvtablet_header {
    uint32_t size;            /* whole message size */
    uint32_t type;            /* qemu_pvtablet_type */
    /*
     * Timestamp is specified in nanoseconds.  Timebase is undefined.
     * This is supposed to be used to figure how much time passed
     * between two events, to decide whenever two mouse clicks should
     * be interpreted as double click or not and simliar stuff.
     */
    uint64_t timestamp;
} qemu_pvtablet_header;

typedef union qemu_pvtablet_payload {
    qemu_pvtablet_init     init;
    qemu_pvtablet_ack      ack;
    qemu_pvtablet_position position;
    qemu_pvtablet_button   button;
};

typedef struct qemu_pvtablet_message {
    qemu_pvtablet_header  hdr;
    qemu_pvtablet_payload data;
} qemu_pvtablet_message;

#endif /* __QEMU_PVTABLET__ */

             reply	other threads:[~2011-01-14 12:02 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-14 12:02 Gerd Hoffmann [this message]
2011-01-14 14:18 ` [Qemu-devel] paravirtual tablet v2 Anthony Liguori
2011-01-14 14:23   ` Gerd Hoffmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D303B5B.6070609@redhat.com \
    --to=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=spice-devel@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.