API/Behaviour changes ===================== - The library has been split in half. To use high-level APIs, use the pkg-config module "telepathy-glib-1" and #include . To use lower-level APIs that rely on dbus-glib GTypes or specific D-Bus interfaces, methods or signals, also use the pkg-config module "telepathy-glib-1-dbus" and #include . - TpSimpleClientFactory got renamed to TpClientFactory - tp_automatic_client_factory_new() now returns a TpClientFactory* for less boring casting. - Tp{Basic,Automatic}ProxyFactory and TpClientChannelFactory, as well as all related APIs got removed. TpClientFactory and TpAutomaricClientFactory are their replacement. - tp_simple_{observer,approver,handler}_new() now takes a TpClientFactory as first argument, and _new_with_factory() got removed. - TpBaseClient lost its "account-manager" property, applications only interested by channels does not have to create a full TpAccountManager, TpAccount objects will be created only when a channel comes up for that account. - TpContact now uses GQuark instead of TpContactFeature. This make them consistent with TpProxy features. - TpAutomaticClientFactory now only has CORE features by default, other features must be added explicitly by the user using tp_client_factory_add_*_features(). - TP_CHANNEL_FEATURE_CONTACTS is removed: * TpChannel:target-contact and TpChannel:initiator-contact are now prepared as part of TP_CHANNEL_FEATURE_CORE; * group TpContacts are now prepared as part of TP_CHANNEL_FEATURE_GROUP. - TP_CHANNEL_FEATURE_GROUP is not CORE anymore, so must be requested explicitly to introspect Group interface. - Some of the Group APIs of TpChannel has been renamed: * tp_channel_group_dup_members_contacts -> tp_channel_group_dup_members; * tp_channel_group_dup_local_pending_contacts -> tp_channel_group_dup_local_pending; * tp_channel_group_get_local_pending_contact_info -> tp_channel_group_get_local_pending_info; * tp_channel_group_dup_remote_pending_contacts -> tp_channel_group_dup_remote_pending; * "group-contacts-changed" -> "group-members-changed". - "contact-chat-state-changed" signal has been renamed to "chat-state-changed". - TpContact does not ref its TpConnection anymore, to fix refcycle caused by TpConnection reffing its roster contacts, or TpChannel reffing its members. Apps should now keep their own reference to the TpConnection in order to use its TpContact. Note that keeping a reference to the TpAccountManager or TpAccount is good as well. - tp_connection_manager_get_protocol_object() has been renamed to tp_connection_manager_get_protocol(). - TpGroupMixin and TpMessageMixin now require TpBaseChannel. TpPresenceMixin now require TpBaseConnection. - TpAccountRequest::connection-manager property has been renamed to ::cm-name, and TpAccountRequest::protocol property has been renamed to ::protocol-name. - tp_group_mixin_change_members() now has the signature of tp_group_mixin_change_members_detailed(). To help transition this function can be added internally: static void change_members (GObject *obj, const gchar *message, const TpIntset *add, const TpIntset *del, const TpIntset *add_local_pending, const TpIntset *add_remote_pending, TpHandle actor, TpChannelGroupChangeReason reason) { GHashTable *details; details = tp_asv_new ( "actor", G_TYPE_UINT, actor, "change-reason", G_TYPE_UINT, reason, NULL); if (message != NULL) tp_asv_set_string (details, "message", message); tp_group_mixin_change_members (obj, add, del, add_local_pending, add_remote_pending, details); g_hash_table_unref (details); } - TpBaseContactList is not a channel manager anymore. An instance should be created in TpBaseConnection::constructed instead of TpBaseConnection::create_channel_factories. - Protocol and service names contain "_" where they used to contain "-" (in real life, this mostly affects Salut and Haze for local_xmpp, and Haze for skype_dbus and skype_x11).