diff options
author | Jonathon Jongsma <jjongsma@redhat.com> | 2018-04-03 10:54:48 -0500 |
---|---|---|
committer | Jonathon Jongsma <jjongsma@redhat.com> | 2018-04-03 10:55:39 -0500 |
commit | 91c79580370318d095290a0a33ebfd83e1f8022f (patch) | |
tree | 9c670ba8fb32d2f90c52873c02671eafebca3843 | |
parent | e891a37f4e952033246e8f4b2bd28bedb841f7f3 (diff) |
Create cursor channel in stream devicevsock
-rw-r--r-- | server/red-stream-device.c | 12 |
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); } |