Explain usage of the class. Signed-off-by: Frediano Ziglio <fziglio@xxxxxxxxxx> --- server/cursor-channel.h | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) I'm not sure I should add Jonathon name to the patch as the biggest comments was mainly written by him... diff --git a/server/cursor-channel.h b/server/cursor-channel.h index 6c89bc3..84592db 100644 --- a/server/cursor-channel.h +++ b/server/cursor-channel.h @@ -23,20 +23,52 @@ #include "red-worker.h" #include "red-parse-qxl.h" +/** + * This type it's a RedChannel class which implement cursor (mouse) + * movements. + * A pointer to CursorChannel can be converted to a RedChannel. + */ typedef struct CursorChannel CursorChannel; +/** + * Create CursorChannel. + * Since CursorChannel is intended to be run in a separate thread, + * it does not register its own client callbacks since they would + * be called from a different thread. Therefore users of this + * class are responsible for registering their own client callbacks + * for CursorChannel. These 'wrapper' client callbacks must forward + * execution on to the CursorChannel thread. + * cursor_channel_client_migrate() and cursor_channel_connect() are + * provided as helper functions and should only be called from the + * CursorChannel thread. + */ CursorChannel* cursor_channel_new (RedWorker *worker); -void cursor_channel_disconnect (CursorChannel *cursor_channel); + +/** + * Cause the channel to disconnect all clients + */ +void cursor_channel_disconnect (CursorChannel *cursor); void cursor_channel_reset (CursorChannel *cursor); void cursor_channel_init (CursorChannel *cursor); void cursor_channel_process_cmd (CursorChannel *cursor, RedCursorCmd *cursor_cmd); void cursor_channel_set_mouse_mode(CursorChannel *cursor, uint32_t mode); + +/** + * Connect a new client to CursorChannel. + * This is the equivalent of ReChannel client connect callback. + * See comment on cursor_channel_new. + */ void cursor_channel_connect (CursorChannel *cursor, RedClient *client, RedsStream *stream, int migrate, uint32_t *common_caps, int num_common_caps, uint32_t *caps, int num_caps); +/** + * Migrate a client channel from a CursorChannel. + * This is the equivalent of ReChannel client migrate callback. + * See comment on cursor_channel_new. + */ void cursor_channel_client_migrate(RedChannelClient *client); #endif /* CURSOR_CHANNEL_H_ */ -- 2.7.4 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel