Sun, 09 Nov 2008 20:55:10 +0000
Added menu items to buddy list context menu to start voice and video sessions
After discussing the matter with Maiku, we decided to have two choises.
"Audio call" which will show up if audio sessions is possible with a buddy and
the other item is either "Audio/Video" or "Video" depending on if the buddy
supports both at the same time or not
| 7746 | 1 | #include "internal.h" |
| 2 | #include "plugin.h" | |
| 3 | ||
| 4 | #include "account.h" | |
| 5 | #include "connection.h" | |
| 6 | #include "conversation.h" | |
| 9954 | 7 | #include "version.h" |
| 7746 | 8 | |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15442
diff
changeset
|
9 | /* include UI for pidgindialogs_about() */ |
| 7746 | 10 | #include "gtkplugin.h" |
|
9709
2e73f176cc80
[gaim-migrate @ 10570]
Mark Doliner <markdoliner@pidgin.im>
parents:
8999
diff
changeset
|
11 | #include "gtkdialogs.h" |
| 91 | 12 | |
| 15884 | 13 | #define PURPLEINC_PLUGIN_ID "core-purpleinc" |
| 5255 | 14 | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
15 | static void |
| 15884 | 16 | echo_hi(PurpleConnection *gc) |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
17 | { |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
18 | /* this doesn't do much, just lets you know who we are :) */ |
|
15562
8c8249fe5e3c
gaim_gtk to pidgin. I hope
Sean Egan <seanegan@pidgin.im>
parents:
15442
diff
changeset
|
19 | pidgindialogs_about(); |
| 91 | 20 | } |
|
92
b2cc29da946e
[gaim-migrate @ 102]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
91
diff
changeset
|
21 | |
| 7746 | 22 | static gboolean |
| 15884 | 23 | reverse(PurpleAccount *account, char **who, char **message, |
| 24 | PurpleConversation *conv, int *flags) | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
25 | { |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
26 | /* this will drive you insane. whenever you receive a message, |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
27 | * the text of the message (HTML and all) will be reversed. */ |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
28 | int i, l; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
29 | char tmp; |
|
99
eed3f8358586
[gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
96
diff
changeset
|
30 | |
|
eed3f8358586
[gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
96
diff
changeset
|
31 | /* this check is necessary in case bad plugins do bad things */ |
|
eed3f8358586
[gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
96
diff
changeset
|
32 | if (message == NULL || *message == NULL) |
| 7746 | 33 | return FALSE; |
|
99
eed3f8358586
[gaim-migrate @ 109]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
96
diff
changeset
|
34 | |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
35 | l = strlen(*message); |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
36 | |
| 15884 | 37 | if (!strcmp(*who, purple_account_get_username(account))) |
| 7746 | 38 | return FALSE; |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
39 | |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
40 | for (i = 0; i < l/2; i++) { |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
41 | tmp = (*message)[i]; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
42 | (*message)[i] = (*message)[l - i - 1]; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
43 | (*message)[l - i - 1] = tmp; |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
44 | } |
| 7746 | 45 | return FALSE; |
|
92
b2cc29da946e
[gaim-migrate @ 102]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
91
diff
changeset
|
46 | } |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
47 | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
48 | static void |
| 15884 | 49 | bud(PurpleBuddy *who) |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
50 | { |
| 15884 | 51 | PurpleAccount *acct = who->account; |
| 52 | PurpleConversation *conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, acct, who->name); | |
| 7746 | 53 | |
| 15884 | 54 | purple_conv_im_send(PURPLE_CONV_IM(conv), "Hello!"); |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
55 | } |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
56 | |
| 5255 | 57 | /* |
| 58 | * EXPORTED FUNCTIONS | |
| 59 | */ | |
| 60 | ||
| 61 | static gboolean | |
| 15884 | 62 | plugin_load(PurplePlugin *plugin) |
| 5255 | 63 | { |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
64 | /* this is for doing something fun when we sign on */ |
| 15884 | 65 | purple_signal_connect(purple_connections_get_handle(), "signed-on", |
| 66 | plugin, PURPLE_CALLBACK(echo_hi), NULL); | |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
67 | |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
68 | /* this is for doing something fun when we get a message */ |
| 15884 | 69 | purple_signal_connect(purple_conversations_get_handle(), "receiving-im-msg", |
| 70 | plugin, PURPLE_CALLBACK(reverse), NULL); | |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
71 | |
|
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
72 | /* this is for doing something fun when a buddy comes online */ |
| 15884 | 73 | purple_signal_connect(purple_blist_get_handle(), "buddy-signed-on", |
| 74 | plugin, PURPLE_CALLBACK(bud), NULL); | |
|
1047
783f8520d9a0
[gaim-migrate @ 1057]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
99
diff
changeset
|
75 | |
| 5255 | 76 | return TRUE; |
|
94
0c6ba3d3fa90
[gaim-migrate @ 104]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
92
diff
changeset
|
77 | } |
|
96
2b8586ab9456
[gaim-migrate @ 106]
Eric Warmenhoven <warmenhoven@yahoo.com>
parents:
94
diff
changeset
|
78 | |
| 15884 | 79 | static PurplePluginInfo info = |
| 5255 | 80 | { |
| 15884 | 81 | PURPLE_PLUGIN_MAGIC, |
| 82 | PURPLE_MAJOR_VERSION, | |
| 83 | PURPLE_MINOR_VERSION, | |
| 84 | PURPLE_PLUGIN_STANDARD, /**< type */ | |
| 5255 | 85 | NULL, /**< ui_requirement */ |
| 86 | 0, /**< flags */ | |
| 87 | NULL, /**< dependencies */ | |
| 15884 | 88 | PURPLE_PRIORITY_DEFAULT, /**< priority */ |
| 5255 | 89 | |
| 15884 | 90 | PURPLEINC_PLUGIN_ID, /**< id */ |
|
16073
e70e589dde54
more help for translators (I removed a few PIDGIN_NAME references
Nathan Walp <nwalp@pidgin.im>
parents:
15884
diff
changeset
|
91 | N_("Pidgin Demonstration Plugin"), /**< name */ |
|
20288
5ca925a094e2
applied changes from 03b709ec2a153e7e82719df0ba4635108bb1d3c6
John Bailey <rekkanoryo@rekkanoryo.org>
parents:
16404
diff
changeset
|
92 | DISPLAY_VERSION, /**< version */ |
| 5255 | 93 | /** summary */ |
| 94 | N_("An example plugin that does stuff - see the description."), | |
| 95 | /** description */ | |
| 96 | N_("This is a really cool plugin that does a lot of stuff:\n" | |
| 97 | "- It tells you who wrote the program when you log in\n" | |
| 98 | "- It reverses all incoming text\n" | |
| 99 | "- It sends a message to people on your list immediately" | |
| 100 | " when they sign on"), | |
| 101 | "Eric Warmenhoven <eric@warmenhoven.org>", /**< author */ | |
| 15884 | 102 | PURPLE_WEBSITE, /**< homepage */ |
| 5255 | 103 | |
| 104 | plugin_load, /**< load */ | |
|
6485
3c7ba18e32f1
[gaim-migrate @ 6999]
Christian Hammond <chipx86@chipx86.com>
parents:
6371
diff
changeset
|
105 | NULL, /**< unload */ |
| 5255 | 106 | NULL, /**< destroy */ |
| 107 | ||
| 108 | NULL, /**< ui_info */ | |
|
13471
e01689a020dd
[gaim-migrate @ 15846]
Richard Laager <rlaager@pidgin.im>
parents:
11338
diff
changeset
|
109 | NULL, /**< extra_info */ |
|
e01689a020dd
[gaim-migrate @ 15846]
Richard Laager <rlaager@pidgin.im>
parents:
11338
diff
changeset
|
110 | NULL, /**< prefs_info */ |
|
e01689a020dd
[gaim-migrate @ 15846]
Richard Laager <rlaager@pidgin.im>
parents:
11338
diff
changeset
|
111 | NULL /**< actions */ |
| 5255 | 112 | }; |
| 113 | ||
| 114 | static void | |
| 15884 | 115 | init_plugin(PurplePlugin *plugin) |
| 5255 | 116 | { |
| 3551 | 117 | } |
| 118 | ||
| 15884 | 119 | PURPLE_INIT_PLUGIN(purpleinc, init_plugin, info) |