コード例 #1
0
static gboolean
plugin_load(PurplePlugin *plugin)
{
	PurplePlugin *server_plugin;
	gboolean ok;
	int result;

	server_plugin = purple_plugins_find_with_id("core-ipc-test-server");

	if (server_plugin == NULL)
	{
		purple_debug_error("ipc-test-client",
						 "Unable to locate plugin core-ipc-test-server, "
						 "needed for IPC.\n");

		return TRUE;
	}

	result = (int)purple_plugin_ipc_call(server_plugin, "add", &ok, 36, 6);

	if (!ok)
	{
		purple_debug_error("ipc-test-client",
						 "Unable to call IPC function 'add' in "
						 "core-ipc-test-server plugin.");

		return TRUE;
	}

	purple_debug_info("ipc-test-client", "36 + 6 = %d\n", result);

	result = (int)purple_plugin_ipc_call(server_plugin, "sub", &ok, 50, 8);

	if (!ok)
	{
		purple_debug_error("ipc-test-client",
						 "Unable to call IPC function 'sub' in "
						 "core-ipc-test-server plugin.");

		return TRUE;
	}

	purple_debug_info("ipc-test-client", "50 - 8 = %d\n", result);

	return TRUE;
}
コード例 #2
0
static gboolean
plugin_load(PurplePlugin *plugin)
{
	PurplePlugin *jabber = purple_find_prpl("prpl-jabber");

	if (!jabber)
		return FALSE;
	
	//Publish support via caps
	gboolean ok;
	purple_plugin_ipc_call (jabber, "add_feature", &ok, "urn:xmpp:receipts");

	#ifdef DEBUG
	if (ok)
		printf("receipt feature added\n");
	else
		printf("receipt feature not added (will work anyway with most clients)\n");
	#endif

	xmpp_console_handle = plugin;

	ht_locations	= g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);

	purple_signal_connect(jabber, "jabber-receiving-xmlnode", xmpp_console_handle,
			    PURPLE_CALLBACK(xmlnode_received_cb), NULL);
	purple_signal_connect(jabber, "jabber-sending-xmlnode", xmpp_console_handle,
			    PURPLE_CALLBACK(xmlnode_sending_cb), NULL);


    //Connect signals for conversations to clean references
    void *conv_handle = purple_conversations_get_handle();

    purple_signal_connect(conv_handle, "deleting-conversation",
							plugin,
							PURPLE_CALLBACK(deleting_conversation_cb),
							NULL);

	return TRUE;
}