From 1fa1894ec4ac7dd2ba314716d5565f3dac87592a Mon Sep 17 00:00:00 2001 From: Matúš Kukan Date: Tue, 7 Aug 2012 23:11:50 +0200 Subject: tubes: use file channel description for sending UUID Change-Id: I44129798110491cd59e1eb39d2f4c2cf3eb3c81b --- tubes/source/conference.cxx | 13 +++++++++---- tubes/source/file-transfer-helper.c | 24 ++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) (limited to 'tubes/source') diff --git a/tubes/source/conference.cxx b/tubes/source/conference.cxx index bf33ebd27582..4bfd51c63b2e 100644 --- a/tubes/source/conference.cxx +++ b/tubes/source/conference.cxx @@ -474,16 +474,20 @@ void TeleConference::invite( TpContact *pContact ) -1, &handles, NULL, NULL, NULL, NULL, NULL ); } - +namespace { class SendFileRequest { public: - SendFileRequest( TeleConference::FileSentCallback pCallback, void* pUserData) + SendFileRequest( TeleConference::FileSentCallback pCallback, void* pUserData, const char* sUuid ) : mpCallback(pCallback) - , mpUserData(pUserData) {}; + , mpUserData(pUserData) + , msUuid(sUuid) + {} TeleConference::FileSentCallback mpCallback; void* mpUserData; + const char* msUuid; }; +} static void TeleConference_TransferDone( EmpathyFTHandler *handler, TpFileTransferChannel *, gpointer user_data) { @@ -525,6 +529,7 @@ static void TeleConference_FTReady( EmpathyFTHandler *handler, GError *error, gp g_signal_connect(handler, "transfer-error", G_CALLBACK (TeleConference_TransferError), request); empathy_ft_handler_set_service_name(handler, TeleManager::getFullServiceName().getStr()); + empathy_ft_handler_set_description(handler, request->msUuid); empathy_ft_handler_start_transfer(handler); } } @@ -549,7 +554,7 @@ void TeleConference::sendFile( TpContact* pContact, const OUString& localUri, Fi GFile *pSource = g_file_new_for_uri( OUStringToOString( localUri, RTL_TEXTENCODING_UTF8).getStr() ); - SendFileRequest *pReq = new SendFileRequest( pCallback, pUserData); + SendFileRequest *pReq = new SendFileRequest( pCallback, pUserData, msUuid.getStr() ); empathy_ft_handler_new_outgoing( mpAccount, pContact, diff --git a/tubes/source/file-transfer-helper.c b/tubes/source/file-transfer-helper.c index c5049f8dcfb4..6450343bbb09 100644 --- a/tubes/source/file-transfer-helper.c +++ b/tubes/source/file-transfer-helper.c @@ -923,6 +923,9 @@ ft_handler_populate_outgoing_request (EmpathyFTHandler *handler) if (priv->service_name != NULL) tp_asv_set_string (priv->request, TP_PROP_CHANNEL_INTERFACE_FILE_TRANSFER_METADATA_SERVICE_NAME, priv->service_name); + if (priv->description != NULL) + tp_asv_set_string (priv->request, TP_PROP_CHANNEL_TYPE_FILE_TRANSFER_DESCRIPTION, priv->description); + g_free (uri); } @@ -1455,6 +1458,15 @@ empathy_ft_handler_set_service_name ( self->priv->service_name = g_strdup (service_name); } +void +empathy_ft_handler_set_description ( + EmpathyFTHandler *self, + const gchar *description) +{ + g_free (self->priv->description); + self->priv->description = g_strdup (description); +} + /** * empathy_ft_handler_new_incoming: * @channel: the #TpFileTransferChannel proxy to the incoming channel @@ -1616,6 +1628,18 @@ empathy_ft_handler_get_filename (EmpathyFTHandler *handler) return priv->filename; } +const char * +empathy_ft_handler_get_description (EmpathyFTHandler *handler) +{ + EmpathyFTHandlerPriv *priv; + + g_return_val_if_fail (EMPATHY_IS_FT_HANDLER (handler), NULL); + + priv = handler->priv; + + return priv->description; +} + /** * empathy_ft_handler_get_content_type: * @handler: an #EmpathyFTHandler -- cgit