Mercurial > pidgin.yaz
view libpurple/protocols/novell/nmmessage.c @ 29573:a39696686dd6
Move set_remote_codecs functionality to the Fs2 media backend.
author | maiku@pidgin.im |
---|---|
date | Mon, 26 Oct 2009 23:10:53 +0000 |
parents | af3cabc8746e |
children |
line wrap: on
line source
/* * nmmessage.c * * Copyright (c) 2004 Novell, Inc. All Rights Reserved. * * 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; version 2 of the License. * * 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 * */ #include "nmmessage.h" struct _NMMessage { NMConference *conference; char *text; guint32 ref_count; }; /** Message API **/ NMMessage * nm_create_message(const char *text) { NMMessage *msg = g_new0(NMMessage, 1); if (text) msg->text = g_strdup(text); msg->ref_count = 1; return msg; } void nm_message_add_ref(NMMessage * msg) { if (msg) msg->ref_count++; } void nm_release_message(NMMessage * msg) { if (msg && (--(msg->ref_count) == 0)) { if (msg->text) g_free(msg->text); if (msg->conference) nm_release_conference(msg->conference); g_free(msg); } } const char * nm_message_get_text(NMMessage * msg) { if (msg == NULL) return NULL; return msg->text; } void nm_message_set_conference(NMMessage * msg, NMConference * conf) { if (msg == NULL || conf == NULL) return; /* Need to ref the conference first so that it doesn't * get released out from under us */ nm_conference_add_ref(conf); msg->conference = conf; } NMConference * nm_message_get_conference(NMMessage * msg) { if (msg == NULL) return NULL; return msg->conference; }