annotate libpurple/protocols/silc10/wb.c @ 21095:cab348e39751

disapproval of revision '0e5385979f58d6ee74f668bb9b5dfd1ae3b6043f'
author Richard Laager <rlaager@wiktel.com>
date Sun, 14 Oct 2007 00:26:00 +0000
parents 8c9aad9479c0
children 51cf02dbdb0e fba1f6c3df0b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
17805
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
1 /*
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
2
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
3 wb.c
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
4
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
5 Author: Pekka Riikonen <priikone@silcnet.org>
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
6
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
7 Copyright (C) 2005 Pekka Riikonen
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
8
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
9 This program is free software; you can redistribute it and/or modify
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
10 it under the terms of the GNU General Public License as published by
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
11 the Free Software Foundation; version 2 of the License.
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
12
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
13 This program is distributed in the hope that it will be useful,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
16 GNU General Public License for more details.
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
17
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
18 */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
19
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
20 #include "silcincludes.h"
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
21 #include "silcclient.h"
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
22 #include "silcpurple.h"
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
23 #include "wb.h"
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
24
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
25 /*
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
26 SILC Whiteboard packet:
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
27
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
28 1 byte command
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
29 2 bytes width
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
30 2 bytes height
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
31 4 bytes brush color
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
32 2 bytes brush size
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
33 n bytes data
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
34
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
35 Data:
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
36
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
37 4 bytes x
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
38 4 bytes y
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
39
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
40 Commands:
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
41
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
42 0x01 draw
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
43 0x02 clear
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
44
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
45 MIME:
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
46
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
47 MIME-Version: 1.0
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
48 Content-Type: application/x-wb
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
49 Content-Transfer-Encoding: binary
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
50
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
51 */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
52
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
53 #define SILCPURPLE_WB_MIME "MIME-Version: 1.0\r\nContent-Type: application/x-wb\r\nContent-Transfer-Encoding: binary\r\n\r\n"
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
54 #define SILCPURPLE_WB_HEADER strlen(SILCPURPLE_WB_MIME) + 11
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
55
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
56 #define SILCPURPLE_WB_WIDTH 500
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
57 #define SILCPURPLE_WB_HEIGHT 400
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
58 #define SILCPURPLE_WB_WIDTH_MAX 1024
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
59 #define SILCPURPLE_WB_HEIGHT_MAX 1024
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
60
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
61 /* Commands */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
62 typedef enum {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
63 SILCPURPLE_WB_DRAW = 0x01,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
64 SILCPURPLE_WB_CLEAR = 0x02,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
65 } SilcPurpleWbCommand;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
66
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
67 /* Brush size */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
68 typedef enum {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
69 SILCPURPLE_WB_BRUSH_SMALL = 2,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
70 SILCPURPLE_WB_BRUSH_MEDIUM = 5,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
71 SILCPURPLE_WB_BRUSH_LARGE = 10,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
72 } SilcPurpleWbBrushSize;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
73
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
74 /* Brush color (XXX Purple should provide default colors) */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
75 typedef enum {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
76 SILCPURPLE_WB_COLOR_BLACK = 0,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
77 SILCPURPLE_WB_COLOR_RED = 13369344,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
78 SILCPURPLE_WB_COLOR_GREEN = 52224,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
79 SILCPURPLE_WB_COLOR_BLUE = 204,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
80 SILCPURPLE_WB_COLOR_YELLOW = 15658496,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
81 SILCPURPLE_WB_COLOR_ORANGE = 16737792,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
82 SILCPURPLE_WB_COLOR_CYAN = 52428,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
83 SILCPURPLE_WB_COLOR_VIOLET = 5381277,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
84 SILCPURPLE_WB_COLOR_PURPLE = 13369548,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
85 SILCPURPLE_WB_COLOR_TAN = 12093547,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
86 SILCPURPLE_WB_COLOR_BROWN = 5256485,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
87 SILCPURPLE_WB_COLOR_GREY = 11184810,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
88 SILCPURPLE_WB_COLOR_WHITE = 16777215,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
89 } SilcPurpleWbColor;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
90
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
91 typedef struct {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
92 int type; /* 0 = buddy, 1 = channel */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
93 union {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
94 SilcClientEntry client;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
95 SilcChannelEntry channel;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
96 } u;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
97 int width;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
98 int height;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
99 int brush_size;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
100 int brush_color;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
101 } *SilcPurpleWb;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
102
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
103 /* Initialize whiteboard */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
104
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
105 PurpleWhiteboard *silcpurple_wb_init(SilcPurple sg, SilcClientEntry client_entry)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
106 {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
107 SilcClientConnection conn;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
108 PurpleWhiteboard *wb;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
109 SilcPurpleWb wbs;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
110
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
111 conn = sg->conn;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
112 wb = purple_whiteboard_get_session(sg->account, client_entry->nickname);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
113 if (!wb)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
114 wb = purple_whiteboard_create(sg->account, client_entry->nickname, 0);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
115 if (!wb)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
116 return NULL;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
117
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
118 if (!wb->proto_data) {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
119 wbs = silc_calloc(1, sizeof(*wbs));
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
120 if (!wbs)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
121 return NULL;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
122 wbs->type = 0;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
123 wbs->u.client = client_entry;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
124 wbs->width = SILCPURPLE_WB_WIDTH;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
125 wbs->height = SILCPURPLE_WB_HEIGHT;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
126 wbs->brush_size = SILCPURPLE_WB_BRUSH_SMALL;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
127 wbs->brush_color = SILCPURPLE_WB_COLOR_BLACK;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
128 wb->proto_data = wbs;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
129
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
130 /* Start the whiteboard */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
131 purple_whiteboard_start(wb);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
132 purple_whiteboard_clear(wb);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
133 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
134
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
135 return wb;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
136 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
137
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
138 PurpleWhiteboard *silcpurple_wb_init_ch(SilcPurple sg, SilcChannelEntry channel)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
139 {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
140 PurpleWhiteboard *wb;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
141 SilcPurpleWb wbs;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
142
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
143 wb = purple_whiteboard_get_session(sg->account, channel->channel_name);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
144 if (!wb)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
145 wb = purple_whiteboard_create(sg->account, channel->channel_name, 0);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
146 if (!wb)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
147 return NULL;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
148
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
149 if (!wb->proto_data) {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
150 wbs = silc_calloc(1, sizeof(*wbs));
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
151 if (!wbs)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
152 return NULL;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
153 wbs->type = 1;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
154 wbs->u.channel = channel;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
155 wbs->width = SILCPURPLE_WB_WIDTH;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
156 wbs->height = SILCPURPLE_WB_HEIGHT;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
157 wbs->brush_size = SILCPURPLE_WB_BRUSH_SMALL;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
158 wbs->brush_color = SILCPURPLE_WB_COLOR_BLACK;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
159 wb->proto_data = wbs;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
160
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
161 /* Start the whiteboard */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
162 purple_whiteboard_start(wb);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
163 purple_whiteboard_clear(wb);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
164 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
165
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
166 return wb;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
167 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
168
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
169 static void
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
170 silcpurple_wb_parse(SilcPurpleWb wbs, PurpleWhiteboard *wb,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
171 unsigned char *message, SilcUInt32 message_len)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
172 {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
173 SilcUInt8 command;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
174 SilcUInt16 width, height, brush_size;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
175 SilcUInt32 brush_color, x, y, dx, dy;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
176 SilcBufferStruct buf;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
177 int ret;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
178
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
179 /* Parse the packet */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
180 silc_buffer_set(&buf, message, message_len);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
181 ret = silc_buffer_unformat(&buf,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
182 SILC_STR_UI_CHAR(&command),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
183 SILC_STR_UI_SHORT(&width),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
184 SILC_STR_UI_SHORT(&height),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
185 SILC_STR_UI_INT(&brush_color),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
186 SILC_STR_UI_SHORT(&brush_size),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
187 SILC_STR_END);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
188 if (ret < 0)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
189 return;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
190 silc_buffer_pull(&buf, ret);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
191
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
192 /* Update whiteboard if its dimensions changed */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
193 if (width != wbs->width || height != wbs->height)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
194 silcpurple_wb_set_dimensions(wb, height, width);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
195
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
196 if (command == SILCPURPLE_WB_DRAW) {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
197 /* Parse data and draw it */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
198 ret = silc_buffer_unformat(&buf,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
199 SILC_STR_UI_INT(&dx),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
200 SILC_STR_UI_INT(&dy),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
201 SILC_STR_END);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
202 if (ret < 0)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
203 return;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
204 silc_buffer_pull(&buf, 8);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
205 x = dx;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
206 y = dy;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
207 while (buf.len > 0) {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
208 ret = silc_buffer_unformat(&buf,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
209 SILC_STR_UI_INT(&dx),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
210 SILC_STR_UI_INT(&dy),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
211 SILC_STR_END);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
212 if (ret < 0)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
213 return;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
214 silc_buffer_pull(&buf, 8);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
215
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
216 purple_whiteboard_draw_line(wb, x, y, x + dx, y + dy,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
217 brush_color, brush_size);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
218 x += dx;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
219 y += dy;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
220 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
221 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
222
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
223 if (command == SILCPURPLE_WB_CLEAR)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
224 purple_whiteboard_clear(wb);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
225 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
226
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
227 typedef struct {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
228 unsigned char *message;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
229 SilcUInt32 message_len;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
230 SilcPurple sg;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
231 SilcClientEntry sender;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
232 SilcChannelEntry channel;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
233 } *SilcPurpleWbRequest;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
234
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
235 static void
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
236 silcpurple_wb_request_cb(SilcPurpleWbRequest req, gint id)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
237 {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
238 PurpleWhiteboard *wb;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
239
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
240 if (id != 1)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
241 goto out;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
242
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
243 if (!req->channel)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
244 wb = silcpurple_wb_init(req->sg, req->sender);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
245 else
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
246 wb = silcpurple_wb_init_ch(req->sg, req->channel);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
247
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
248 silcpurple_wb_parse(wb->proto_data, wb, req->message, req->message_len);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
249
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
250 out:
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
251 silc_free(req->message);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
252 silc_free(req);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
253 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
254
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
255 static void
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
256 silcpurple_wb_request(SilcClient client, const unsigned char *message,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
257 SilcUInt32 message_len, SilcClientEntry sender,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
258 SilcChannelEntry channel)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
259 {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
260 char tmp[128];
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
261 SilcPurpleWbRequest req;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
262 PurpleConnection *gc;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
263 SilcPurple sg;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
264
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
265 gc = client->application;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
266 sg = gc->proto_data;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
267
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
268 /* Open whiteboard automatically if requested */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
269 if (purple_account_get_bool(sg->account, "open-wb", FALSE)) {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
270 PurpleWhiteboard *wb;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
271
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
272 if (!channel)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
273 wb = silcpurple_wb_init(sg, sender);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
274 else
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
275 wb = silcpurple_wb_init_ch(sg, channel);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
276
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
277 silcpurple_wb_parse(wb->proto_data, wb, (unsigned char *)message,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
278 message_len);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
279 return;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
280 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
281
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
282 if (!channel) {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
283 g_snprintf(tmp, sizeof(tmp),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
284 _("%s sent message to whiteboard. Would you like "
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
285 "to open the whiteboard?"), sender->nickname);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
286 } else {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
287 g_snprintf(tmp, sizeof(tmp),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
288 _("%s sent message to whiteboard on %s channel. "
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
289 "Would you like to open the whiteboard?"),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
290 sender->nickname, channel->channel_name);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
291 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
292
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
293 req = silc_calloc(1, sizeof(*req));
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
294 if (!req)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
295 return;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
296 req->message = silc_memdup(message, message_len);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
297 req->message_len = message_len;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
298 req->sender = sender;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
299 req->channel = channel;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
300 req->sg = sg;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
301
21095
cab348e39751 disapproval of revision '0e5385979f58d6ee74f668bb9b5dfd1ae3b6043f'
Richard Laager <rlaager@wiktel.com>
parents: 21086
diff changeset
302 purple_request_action_with_hint(gc, _("Whiteboard"), tmp, NULL, 1,
cab348e39751 disapproval of revision '0e5385979f58d6ee74f668bb9b5dfd1ae3b6043f'
Richard Laager <rlaager@wiktel.com>
parents: 21086
diff changeset
303 sg->account, sender->nickname, NULL, "conversation", req, 2,
17805
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
304 _("Yes"), G_CALLBACK(silcpurple_wb_request_cb),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
305 _("No"), G_CALLBACK(silcpurple_wb_request_cb));
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
306 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
307
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
308 /* Process incoming whiteboard message */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
309
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
310 void silcpurple_wb_receive(SilcClient client, SilcClientConnection conn,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
311 SilcClientEntry sender, SilcMessagePayload payload,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
312 SilcMessageFlags flags, const unsigned char *message,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
313 SilcUInt32 message_len)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
314 {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
315 SilcPurple sg;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
316 PurpleConnection *gc;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
317 PurpleWhiteboard *wb;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
318 SilcPurpleWb wbs;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
319
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
320 gc = client->application;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
321 sg = gc->proto_data;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
322
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
323 wb = purple_whiteboard_get_session(sg->account, sender->nickname);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
324 if (!wb) {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
325 /* Ask user if they want to open the whiteboard */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
326 silcpurple_wb_request(client, message, message_len,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
327 sender, NULL);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
328 return;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
329 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
330
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
331 wbs = wb->proto_data;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
332 silcpurple_wb_parse(wbs, wb, (unsigned char *)message, message_len);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
333 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
334
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
335 /* Process incoming whiteboard message on channel */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
336
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
337 void silcpurple_wb_receive_ch(SilcClient client, SilcClientConnection conn,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
338 SilcClientEntry sender, SilcChannelEntry channel,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
339 SilcMessagePayload payload,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
340 SilcMessageFlags flags,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
341 const unsigned char *message,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
342 SilcUInt32 message_len)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
343 {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
344 SilcPurple sg;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
345 PurpleConnection *gc;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
346 PurpleWhiteboard *wb;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
347 SilcPurpleWb wbs;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
348
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
349 gc = client->application;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
350 sg = gc->proto_data;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
351
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
352 wb = purple_whiteboard_get_session(sg->account, channel->channel_name);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
353 if (!wb) {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
354 /* Ask user if they want to open the whiteboard */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
355 silcpurple_wb_request(client, message, message_len,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
356 sender, channel);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
357 return;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
358 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
359
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
360 wbs = wb->proto_data;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
361 silcpurple_wb_parse(wbs, wb, (unsigned char *)message, message_len);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
362 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
363
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
364 /* Send whiteboard message */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
365
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
366 void silcpurple_wb_send(PurpleWhiteboard *wb, GList *draw_list)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
367 {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
368 SilcPurpleWb wbs = wb->proto_data;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
369 SilcBuffer packet;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
370 GList *list;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
371 int len;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
372 PurpleConnection *gc;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
373 SilcPurple sg;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
374
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
375 g_return_if_fail(draw_list);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
376 gc = purple_account_get_connection(wb->account);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
377 g_return_if_fail(gc);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
378 sg = gc->proto_data;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
379 g_return_if_fail(sg);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
380
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
381 len = SILCPURPLE_WB_HEADER;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
382 for (list = draw_list; list; list = list->next)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
383 len += 4;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
384
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
385 packet = silc_buffer_alloc_size(len);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
386 if (!packet)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
387 return;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
388
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
389 /* Assmeble packet */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
390 silc_buffer_format(packet,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
391 SILC_STR_UI32_STRING(SILCPURPLE_WB_MIME),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
392 SILC_STR_UI_CHAR(SILCPURPLE_WB_DRAW),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
393 SILC_STR_UI_SHORT(wbs->width),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
394 SILC_STR_UI_SHORT(wbs->height),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
395 SILC_STR_UI_INT(wbs->brush_color),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
396 SILC_STR_UI_SHORT(wbs->brush_size),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
397 SILC_STR_END);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
398 silc_buffer_pull(packet, SILCPURPLE_WB_HEADER);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
399 for (list = draw_list; list; list = list->next) {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
400 silc_buffer_format(packet,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
401 SILC_STR_UI_INT(GPOINTER_TO_INT(list->data)),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
402 SILC_STR_END);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
403 silc_buffer_pull(packet, 4);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
404 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
405
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
406 /* Send the message */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
407 if (wbs->type == 0) {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
408 /* Private message */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
409 silc_client_send_private_message(sg->client, sg->conn,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
410 wbs->u.client,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
411 SILC_MESSAGE_FLAG_DATA,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
412 packet->head, len, TRUE);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
413 } else if (wbs->type == 1) {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
414 /* Channel message. Channel private keys are not supported. */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
415 silc_client_send_channel_message(sg->client, sg->conn,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
416 wbs->u.channel, NULL,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
417 SILC_MESSAGE_FLAG_DATA,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
418 packet->head, len, TRUE);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
419 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
420
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
421 silc_buffer_free(packet);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
422 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
423
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
424 /* Purple Whiteboard operations */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
425
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
426 void silcpurple_wb_start(PurpleWhiteboard *wb)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
427 {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
428 /* Nothing here. Everything is in initialization */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
429 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
430
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
431 void silcpurple_wb_end(PurpleWhiteboard *wb)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
432 {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
433 silc_free(wb->proto_data);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
434 wb->proto_data = NULL;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
435 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
436
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
437 void silcpurple_wb_get_dimensions(const PurpleWhiteboard *wb, int *width, int *height)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
438 {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
439 SilcPurpleWb wbs = wb->proto_data;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
440 *width = wbs->width;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
441 *height = wbs->height;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
442 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
443
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
444 void silcpurple_wb_set_dimensions(PurpleWhiteboard *wb, int width, int height)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
445 {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
446 SilcPurpleWb wbs = wb->proto_data;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
447 wbs->width = width > SILCPURPLE_WB_WIDTH_MAX ? SILCPURPLE_WB_WIDTH_MAX :
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
448 width;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
449 wbs->height = height > SILCPURPLE_WB_HEIGHT_MAX ? SILCPURPLE_WB_HEIGHT_MAX :
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
450 height;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
451
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
452 /* Update whiteboard */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
453 purple_whiteboard_set_dimensions(wb, wbs->width, wbs->height);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
454 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
455
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
456 void silcpurple_wb_get_brush(const PurpleWhiteboard *wb, int *size, int *color)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
457 {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
458 SilcPurpleWb wbs = wb->proto_data;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
459 *size = wbs->brush_size;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
460 *color = wbs->brush_color;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
461 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
462
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
463 void silcpurple_wb_set_brush(PurpleWhiteboard *wb, int size, int color)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
464 {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
465 SilcPurpleWb wbs = wb->proto_data;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
466 wbs->brush_size = size;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
467 wbs->brush_color = color;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
468
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
469 /* Update whiteboard */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
470 purple_whiteboard_set_brush(wb, size, color);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
471 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
472
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
473 void silcpurple_wb_clear(PurpleWhiteboard *wb)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
474 {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
475 SilcPurpleWb wbs = wb->proto_data;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
476 SilcBuffer packet;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
477 int len;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
478 PurpleConnection *gc;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
479 SilcPurple sg;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
480
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
481 gc = purple_account_get_connection(wb->account);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
482 g_return_if_fail(gc);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
483 sg = gc->proto_data;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
484 g_return_if_fail(sg);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
485
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
486 len = SILCPURPLE_WB_HEADER;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
487 packet = silc_buffer_alloc_size(len);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
488 if (!packet)
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
489 return;
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
490
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
491 /* Assmeble packet */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
492 silc_buffer_format(packet,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
493 SILC_STR_UI32_STRING(SILCPURPLE_WB_MIME),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
494 SILC_STR_UI_CHAR(SILCPURPLE_WB_CLEAR),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
495 SILC_STR_UI_SHORT(wbs->width),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
496 SILC_STR_UI_SHORT(wbs->height),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
497 SILC_STR_UI_INT(wbs->brush_color),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
498 SILC_STR_UI_SHORT(wbs->brush_size),
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
499 SILC_STR_END);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
500
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
501 /* Send the message */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
502 if (wbs->type == 0) {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
503 /* Private message */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
504 silc_client_send_private_message(sg->client, sg->conn,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
505 wbs->u.client,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
506 SILC_MESSAGE_FLAG_DATA,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
507 packet->head, len, TRUE);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
508 } else if (wbs->type == 1) {
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
509 /* Channel message */
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
510 silc_client_send_channel_message(sg->client, sg->conn,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
511 wbs->u.channel, NULL,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
512 SILC_MESSAGE_FLAG_DATA,
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
513 packet->head, len, TRUE);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
514 }
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
515
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
516 silc_buffer_free(packet);
ba1b50f114f6 Duplicate the current SILC prpl as silc10 for backwards compatibility with
Stu Tomlinson <stu@nosnilmot.com>
parents:
diff changeset
517 }