--- a/libpurple/whiteboard.c Fri Sep 13 19:02:07 2013 +0530 +++ b/libpurple/whiteboard.c Fri Sep 13 19:07:59 2013 +0530 @@ -39,6 +39,9 @@ PurpleAccount *account; /**< Account associated with this session */ char *who; /**< Name of the remote user */ + void *proto_data; /**< Protocol specific data + TODO Remove this, and use + protocol-specific subclasses */ PurpleWhiteboardOps *protocol_ops; /**< Protocol operations */ GList *draw_list; /**< List of drawing elements/deltas to @@ -282,6 +285,24 @@ priv->draw_list = draw_list; } +void purple_whiteboard_set_protocol_data(PurpleWhiteboard *wb, gpointer proto_data) +{ + PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + + g_return_if_fail(priv != NULL); + + priv->proto_data = proto_data; +} + +gpointer purple_whiteboard_get_protocol_data(const PurpleWhiteboard *wb) +{ + PurpleWhiteboardPrivate *priv = PURPLE_WHITEBOARD_GET_PRIVATE(wb); + + g_return_val_if_fail(priv != NULL, NULL); + + return priv->proto_data; +} + void purple_whiteboard_set_ui_data(PurpleWhiteboard *wb, gpointer ui_data) { g_return_if_fail(wb != NULL);