view libpurple/protocols/gg/confer.h @ 31917:64d1be114e02

Recently I found out a small issue: if another user changes it's avatar, we don't get it updated. New avatar is visible after our reconnect, or after this other user status change. I found out, that we get these updates in XML event packet, but we don't handle them. XML events can contain: - GGLive messages (I think, it's something like tweeter service) - notifications about avatar changes - notifications about user's new blog entries - graphical statuses (I hope we will NOT support this one) Detailed information (in Polish): http://toxygen.net/libgadu/protocol/#ch1.13 I have implemented general support for XML events, so we could provide support for new !GaduGadu features in the future. Also, I have fixed that small issue, by implementing avatar change notifications, provided by these events. committer: John Bailey <rekkanoryo@rekkanoryo.org>
author tomkiewicz@o2.pl
date Sat, 16 Apr 2011 15:35:53 +0000
parents 44f53d3fc54f
children
line wrap: on
line source

/**
 * @file confer.h
 *
 * purple
 *
 * Copyright (C) 2005  Bartosz Oler <bartosz@bzimage.us>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02111-1301  USA
 */


#ifndef _PURPLE_GG_CONFER_H
#define _PURPLE_GG_CONFER_H

#include "gg.h"

/**
 * Finds a CHAT conversation for the current account with the specified name.
 *
 * @param gc   PurpleConnection instance.
 * @param name Name of the conversation.
 *
 * @return PurpleConversation or NULL if not found.
 */
PurpleConversation *
ggp_confer_find_by_name(PurpleConnection *gc, const gchar *name);

/**
 * Adds the specified UIN to the specified conversation.
 *
 * @param gc        PurpleConnection.
 * @param chat_name Name of the conversation.
 */
void
ggp_confer_participants_add_uin(PurpleConnection *gc, const gchar *chat_name,
						    const uin_t uin);

/**
 * Add the specified UINs to the specified conversation.
 *
 * @param gc         PurpleConnection.
 * @param chat_name  Name of the conversation.
 * @param recipients List of the UINs.
 * @param count      Number of the UINs.
 */
void
ggp_confer_participants_add(PurpleConnection *gc, const gchar *chat_name,
			    const uin_t *recipients, int count);

/**
 * Finds a conversation in which all the specified recipients participate.
 *
 * TODO: This function should be rewritten to better handle situations when
 * somebody adds more people to the converation.
 *
 * @param gc         PurpleConnection.
 * @param recipients List of the people in the conversation.
 * @param count      Number of people.
 *
 * @return Name of the conversation.
 */
const char*
ggp_confer_find_by_participants(PurpleConnection *gc, const uin_t *recipients,
						    int count);

/**
 * Adds a new conversation to the internal list of conversations.
 * If name is NULL then it will be automagically generated.
 *
 * @param gc   PurpleConnection.
 * @param name Name of the conversation.
 *
 * @return Name of the conversation.
 */
const char*
ggp_confer_add_new(PurpleConnection *gc, const char *name);


#endif /* _PURPLE_GG_CONFER_H */

/* vim: set ts=8 sts=0 sw=8 noet: */