# HG changeset patch # User Elliott Sales de Andrade # Date 1272229774 0 # Node ID afc9cec164e41c27748b2139bef4e3352a99ecc2 # Parent 905e291986bc43386fbced8a81f0b254be0c06f3 Rename purple_xfer_get_thumbnail_data/size to be more D-Bus friendly. diff -r 905e291986bc -r afc9cec164e4 libpurple/ft.c --- a/libpurple/ft.c Sun Apr 25 20:58:00 2010 +0000 +++ b/libpurple/ft.c Sun Apr 25 21:09:34 2010 +0000 @@ -281,11 +281,14 @@ PurpleConversation *conv = NULL; PurpleMessageFlags flags = PURPLE_MESSAGE_SYSTEM; char *escaped; - gconstpointer thumbnail_data = purple_xfer_get_thumbnail_data(xfer); + gconstpointer thumbnail_data; + gsize size; g_return_if_fail(xfer != NULL); g_return_if_fail(message != NULL); + thumbnail_data = purple_xfer_get_thumbnail(xfer, &size); + conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, xfer->who, purple_xfer_get_account(xfer)); @@ -299,7 +302,6 @@ if (print_thumbnail && thumbnail_data) { gchar *message_with_img; - gsize size = purple_xfer_get_thumbnail_size(xfer); gpointer data = g_memdup(thumbnail_data, size); int id = purple_imgstore_add_with_id(data, size, NULL); @@ -489,6 +491,8 @@ { char *buf, *size_buf; size_t size; + gconstpointer thumb; + gsize thumb_size; /* If we have already accepted the request, ask the destination file name directly */ @@ -514,11 +518,10 @@ serv_got_im(purple_account_get_connection(xfer->account), xfer->who, xfer->message, 0, time(NULL)); - if (purple_xfer_get_thumbnail_data(xfer)) { + if ((thumb = purple_xfer_get_thumbnail(xfer, &thumb_size))) { purple_request_accept_cancel_with_icon(xfer, NULL, buf, NULL, PURPLE_DEFAULT_ACTION_NONE, xfer->account, xfer->who, NULL, - purple_xfer_get_thumbnail_data(xfer), - purple_xfer_get_thumbnail_size(xfer), xfer, + thumb, thumb_size, xfer, G_CALLBACK(purple_xfer_choose_file), G_CALLBACK(cancel_recv_cb)); } else { @@ -1630,20 +1633,15 @@ ui_ops->update_progress(xfer, purple_xfer_get_progress(xfer)); } -const void * -purple_xfer_get_thumbnail_data(const PurpleXfer *xfer) +gconstpointer +purple_xfer_get_thumbnail(const PurpleXfer *xfer, gsize *len) { PurpleXferPrivData *priv = g_hash_table_lookup(xfers_data, xfer); - return priv->thumbnail_data; -} + if (len) + *len = priv->thumbnail_size; -gsize -purple_xfer_get_thumbnail_size(const PurpleXfer *xfer) -{ - PurpleXferPrivData *priv = g_hash_table_lookup(xfers_data, xfer); - - return priv->thumbnail_size; + return priv->thumbnail_data; } const gchar * diff -r 905e291986bc -r afc9cec164e4 libpurple/ft.h --- a/libpurple/ft.h Sun Apr 25 20:58:00 2010 +0000 +++ b/libpurple/ft.h Sun Apr 25 21:09:34 2010 +0000 @@ -696,17 +696,11 @@ * Gets the thumbnail data for a transfer * * @param xfer The file transfer to get the thumbnail for + * @param len If not @c NULL, the length of the thumbnail data returned + * will be set in the location pointed to by this. * @return The thumbnail data, or NULL if there is no thumbnail */ -const void *purple_xfer_get_thumbnail_data(const PurpleXfer *xfer); - -/** - * Gets the thumbnail size for a transfer - * - * @param xfer The file transfer to get the thumbnail size for - * @return The size, in bytes of the file transfer's thumbnail - */ -gsize purple_xfer_get_thumbnail_size(const PurpleXfer *xfer); +gconstpointer purple_xfer_get_thumbnail(const PurpleXfer *xfer, gsize *len); /** * Gets the mimetype of the thumbnail preview for a transfer diff -r 905e291986bc -r afc9cec164e4 libpurple/protocols/jabber/si.c --- a/libpurple/protocols/jabber/si.c Sun Apr 25 20:58:00 2010 +0000 +++ b/libpurple/protocols/jabber/si.c Sun Apr 25 21:09:34 2010 +0000 @@ -1247,6 +1247,8 @@ JabberIq *iq; xmlnode *si, *file, *feature, *x, *field, *option, *value; char buf[32]; + gconstpointer thumb; + gsize thumb_size; xfer->filename = g_path_get_basename(xfer->local_filename); purple_xfer_prepare_thumbnail(xfer, "jpeg,png"); @@ -1269,12 +1271,11 @@ /* maybe later we'll do hash and date attribs */ /* add thumbnail, if appropriate */ - if (purple_xfer_get_thumbnail_data(xfer)) { + if ((thumb = purple_xfer_get_thumbnail(xfer, &thumb_size))) { const gchar *mimetype = purple_xfer_get_thumbnail_mimetype(xfer); JabberData *thumbnail_data = - jabber_data_create_from_data(purple_xfer_get_thumbnail_data(xfer), - purple_xfer_get_thumbnail_size(xfer), mimetype, TRUE, - jsx->js); + jabber_data_create_from_data(thumb, thumb_size, + mimetype, TRUE, jsx->js); xmlnode *thumbnail = xmlnode_new_child(file, "thumbnail"); xmlnode_set_namespace(thumbnail, NS_THUMBS); xmlnode_set_attrib(thumbnail, "cid", diff -r 905e291986bc -r afc9cec164e4 libpurple/protocols/msn/slplink.c --- a/libpurple/protocols/msn/slplink.c Sun Apr 25 20:58:00 2010 +0000 +++ b/libpurple/protocols/msn/slplink.c Sun Apr 25 21:09:34 2010 +0000 @@ -720,11 +720,7 @@ u8 = NULL; } - preview = purple_xfer_get_thumbnail_data(xfer); - if (preview) - preview_len = purple_xfer_get_thumbnail_size(xfer); - else - preview_len = 0; + preview = purple_xfer_get_thumbnail(xfer, &preview_len); header = g_malloc(sizeof(MsnFileContext) + preview_len); header->length = GUINT32_TO_LE(sizeof(MsnFileContext) - 1);