summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathon Jongsma <jjongsma@redhat.com>2018-04-03 10:54:48 -0500
committerJonathon Jongsma <jjongsma@redhat.com>2018-04-03 10:55:39 -0500
commit91c79580370318d095290a0a33ebfd83e1f8022f (patch)
tree9c670ba8fb32d2f90c52873c02671eafebca3843
parente891a37f4e952033246e8f4b2bd28bedb841f7f3 (diff)
Create cursor channel in stream devicevsock
-rw-r--r--server/red-stream-device.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/server/red-stream-device.c b/server/red-stream-device.c
index 6c5c3f44..68850f70 100644
--- a/server/red-stream-device.c
+++ b/server/red-stream-device.c
@@ -602,9 +602,9 @@ static void
stream_device_constructed(GObject *object)
{
StreamDevice *self = STREAM_DEVICE(object);
+ SpiceCoreInterfaceInternal* core = reds_get_core_interface(self->reds);
if (self->socket > 0) {
- self->socket_watch = reds_core_watch_add(self->reds, self->socket, SPICE_WATCH_EVENT_READ,
- socket_event, self);
+ core->watch_add(core, self->socket, SPICE_WATCH_EVENT_READ, socket_event, self);
}
int id = reds_get_free_channel_id(self->reds, SPICE_CHANNEL_DISPLAY);
@@ -612,6 +612,14 @@ stream_device_constructed(GObject *object)
self->stream_channel = stream_channel_new(self->reds, id);
+ CursorChannel *cursor_channel = cursor_channel_new(self->reds, id, core);
+ ClientCbs client_cbs = { NULL, };
+ client_cbs.connect = (channel_client_connect_proc) cursor_channel_connect;
+ client_cbs.migrate = cursor_channel_client_migrate;
+ red_channel_register_client_cbs(RED_CHANNEL(cursor_channel), &client_cbs, NULL);
+ reds_register_channel(self->reds, RED_CHANNEL(cursor_channel));
+ self->cursor_channel = cursor_channel;
+
stream_channel_register_start_cb(self->stream_channel, stream_device_stream_start, self);
stream_channel_register_queue_stat_cb(self->stream_channel, stream_device_stream_queue_stat, self);
}