summaryrefslogtreecommitdiffstats
path: root/server/reds.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2010-03-30 12:55:32 +0200
committerGerd Hoffmann <kraxel@redhat.com>2010-05-19 11:22:06 +0200
commitd3735feea6b50acef050a79fff5c4dd8143e3e38 (patch)
tree095610e46b5595f628baf592a1c9e550553d39df /server/reds.c
parent58273e3a32d89e59eb7da742c9b4a059dbfdfd37 (diff)
downloadspice-d3735feea6b50acef050a79fff5c4dd8143e3e38.tar.gz
spice-d3735feea6b50acef050a79fff5c4dd8143e3e38.tar.xz
spice-d3735feea6b50acef050a79fff5c4dd8143e3e38.zip
QXL: redesign.
Diffstat (limited to 'server/reds.c')
-rw-r--r--server/reds.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/server/reds.c b/server/reds.c
index 8d6e14d1..ab1f6da9 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -4029,8 +4029,7 @@ static void attach_to_red_agent(VDIPortInterface *interface)
}
__visible__ int spice_server_add_interface(SpiceServer *s,
- SpiceBaseInstance *sin,
- int id)
+ SpiceBaseInstance *sin)
{
SpiceBaseInterface *interface = sin->sif;
@@ -4083,17 +4082,20 @@ __visible__ int spice_server_add_interface(SpiceServer *s,
red_error("migration register failed");
}
- } else if (strcmp(interface->type, VD_INTERFACE_QXL) == 0) {
- QXLInterface *qxl_interface;
+ } else if (strcmp(interface->type, SPICE_INTERFACE_QXL) == 0) {
+ QXLInstance *qxl;
- red_printf("VD_INTERFACE_QXL");
- if (interface->major_version != VD_INTERFACE_QXL_MAJOR ||
- interface->minor_version < VD_INTERFACE_QXL_MINOR) {
+ red_printf("SPICE_INTERFACE_QXL");
+ if (interface->major_version != SPICE_INTERFACE_QXL_MAJOR ||
+ interface->minor_version < SPICE_INTERFACE_QXL_MINOR) {
red_printf("unsuported qxl interface");
return -1;
}
- qxl_interface = (QXLInterface *)interface;
- red_dispatcher_init(qxl_interface, id);
+
+ qxl = SPICE_CONTAINEROF(sin, QXLInstance, base);
+ qxl->st = spice_new0(QXLState, 1);
+ qxl->st->qif = SPICE_CONTAINEROF(interface, QXLInterface, base);
+ qxl->st->dispatcher = red_dispatcher_init(qxl);
} else if (strcmp(interface->type, VD_INTERFACE_TABLET) == 0) {
red_printf("VD_INTERFACE_TABLET");