Mercurial > pidgin
view src/protocols/sametime/meanwhile/mw_srvc_conf.h @ 11943:0110fc7c6a8a
[gaim-migrate @ 14234]
Bringing things up to date with the last Meanwhile release, 0.5.0 and the last
gaim-meanwhile plugin release, 1.2.5 (which should be the last plugin release
against oldstatus, if all goes well with HEAD and no major bugs crop up)
It builds, so that's a start. The status bits that have been empty since the
first import of the sametime stuff are still empty, but I'm going to try and
fill those in tomorrow. I've decided to try and start using HEAD actively, to
encourage me to get this freaking prpl fully functional.
committer: Tailor Script <tailor@pidgin.im>
author | Christopher O'Brien <siege@pidgin.im> |
---|---|
date | Wed, 02 Nov 2005 03:39:03 +0000 |
parents | 3ef77720e577 |
children |
line wrap: on
line source
/* Meanwhile - Unofficial Lotus Sametime Community Client Library Copyright (C) 2004 Christopher (siege) O'Brien This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library 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 Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef _MW_SRVC_CONF_H #define _MW_SRVC_CONF_H #include <glib/glist.h> #include "mw_common.h" /** Type identifier for the conference service */ #define mwService_CONFERENCE 0x80000010 enum mwConferenceState { mwConference_NEW, /**< new outgoing conference */ mwConference_PENDING, /**< outgoing conference pending creation */ mwConference_INVITED, /**< invited to incoming conference */ mwConference_OPEN, /**< conference open and active */ mwConference_CLOSING, /**< conference is closing */ mwConference_ERROR, /**< conference is closing due to error */ mwConference_UNKNOWN, /**< unable to determine conference state */ }; /** @struct mwServiceConference Instance of the multi-user conference service */ struct mwServiceConference; /** @struct mwConference A multi-user chat */ struct mwConference; /** Handler structure used to provide callbacks for an instance of the conferencing service */ struct mwConferenceHandler { /** triggered when we receive a conference invitation. Call mwConference_accept to accept the invitation and join the conference, or mwConference_close to reject the invitation. @param conf the newly created conference @param inviter the indentity of the user who sent the invitation @param invite the invitation text */ void (*on_invited)(struct mwConference *conf, struct mwLoginInfo *inviter, const char *invite); /** triggered when we enter the conference. Provides the initial conference membership list as a GList of mwLoginInfo structures @param conf the conference just joined @param members mwLoginInfo list of existing conference members */ void (*conf_opened)(struct mwConference *conf, GList *members); /** triggered when a conference is closed. This is typically when we've left it */ void (*conf_closed)(struct mwConference *, guint32 reason); /** triggered when someone joins the conference */ void (*on_peer_joined)(struct mwConference *, struct mwLoginInfo *); /** triggered when someone leaves the conference */ void (*on_peer_parted)(struct mwConference *, struct mwLoginInfo *); /** triggered when someone says something */ void (*on_text)(struct mwConference *conf, struct mwLoginInfo *who, const char *what); /** typing notification */ void (*on_typing)(struct mwConference *conf, struct mwLoginInfo *who, gboolean typing); /** optional. called from mwService_free */ void (*clear)(struct mwServiceConference *srvc); }; /** Allocate a new conferencing service, attaching the given handler @param sess owning session @param handler handler providing call-back functions for the service */ struct mwServiceConference * mwServiceConference_new(struct mwSession *sess, struct mwConferenceHandler *handler); /** @returns the conference handler for the service */ struct mwConferenceHandler * mwServiceConference_getHandler(struct mwServiceConference *srvc); /** a mwConference list of the conferences in this service. The GList will need to be destroyed with g_list_free after use */ GList *mwServiceConference_getConferences(struct mwServiceConference *srvc); /** Allocate a new conference, in state NEW with the given title. @see mwConference_create */ struct mwConference *mwConference_new(struct mwServiceConference *srvc, const char *title); /** @returns the owning service of a conference */ struct mwServiceConference *mwConference_getService(struct mwConference *conf); /** @returns unique conference name */ const char *mwConference_getName(struct mwConference *conf); /** @returns conference title */ const char *mwConference_getTitle(struct mwConference *conf); /** a mwIdBlock list of the members of the conference. The GList will need to be free'd after use */ GList *mwConference_getMembers(struct mwConference *conf); /** Initiate a conference. Conference must be in state NEW. If no name or title for the conference has been set, they will be generated. Conference will be placed into state PENDING. */ int mwConference_open(struct mwConference *conf); /** Leave and close an existing conference, or reject an invitation. Triggers mwServiceConfHandler::conf_closed and free's the conference. */ int mwConference_destroy(struct mwConference *conf, guint32 reason, const char *text); #define mwConference_reject(c,r,t) \ mwConference_destroy((c),(r),(t)) /** accept a conference invitation. Conference must be in the state INVITED. */ int mwConference_accept(struct mwConference *conf); /** invite another user to an ACTIVE conference @param conf conference @param who user to invite @param text invitation message */ int mwConference_invite(struct mwConference *conf, struct mwIdBlock *who, const char *text); /** send a text message over an open conference */ int mwConference_sendText(struct mwConference *conf, const char *text); /** send typing notification over an open conference */ int mwConference_sendTyping(struct mwConference *conf, gboolean typing); /** associate arbitrary client data and an optional cleanup function with a conference. If there is already client data with a clear function, it will not be called. */ void mwConference_setClientData(struct mwConference *conf, gpointer data, GDestroyNotify clear); /** reference associated client data */ gpointer mwConference_getClientData(struct mwConference *conf); /** remove associated client data if any, and call the cleanup function on the data as necessary */ void mwConference_removeClientData(struct mwConference *conf); #endif