view libpurple/dbus-maybe.h @ 31553:0485aed45f5b

This patch fixes #12758. If the user starts two parallel video calls, then ends one of them some time later, the user can still see and hear the participant from the non-ended call, but the other participant no longer receives the user's video or audio. The problem lies in purple_media_backend_fs2_dispose(), which calls gst_element_set_state() in such a way that the media sources stop sending data. Additional reference information is mentioned on #12758, comment 6 (http://developer.pidgin.im/ticket/12758#comment:6). committer: John Bailey <rekkanoryo@rekkanoryo.org>
author jakub.adam@ktknet.cz
date Sat, 08 Jan 2011 02:13:40 +0000
parents 1568dc7a14f8
children
line wrap: on
line source

/* This file contains macros that wrap calls to the purple dbus module.
   These macros call the appropriate functions if the build includes
   dbus support and do nothing otherwise.  See "dbus-server.h" for
   documentation.  */

#ifndef _PURPLE_DBUS_MAYBE_H_
#define _PURPLE_DBUS_MAYBE_H_

#ifdef HAVE_DBUS

#ifndef DBUS_API_SUBJECT_TO_CHANGE
#define DBUS_API_SUBJECT_TO_CHANGE
#endif

#include "dbus-server.h"

/* this provides a type check */
#define PURPLE_DBUS_REGISTER_POINTER(ptr, type) { \
    type *typed_ptr = ptr; \
    purple_dbus_register_pointer(typed_ptr, PURPLE_DBUS_TYPE(type));	\
}
#define PURPLE_DBUS_UNREGISTER_POINTER(ptr) purple_dbus_unregister_pointer(ptr)

#else  /* !HAVE_DBUS */

#define PURPLE_DBUS_REGISTER_POINTER(ptr, type) { \
    if (ptr) {} \
}

#define PURPLE_DBUS_UNREGISTER_POINTER(ptr)
#define DBUS_EXPORT

#endif	/* HAVE_DBUS */

#endif