From fb8bdaab12f8cf8daf39354fc1e28eefc5b7b50d Mon Sep 17 00:00:00 2001 From: Jakub Adam Date: Thu, 1 Oct 2015 07:58:42 +0200 Subject: [PATCH] media: add sipe_backend_ft_write_file() --- src/api/sipe-backend.h | 12 ++++++++++++ src/miranda/miranda-ft.c | 7 +++++++ src/purple/purple-ft.c | 13 +++++++++++++ src/telepathy/telepathy-stubs.c | 3 +++ 4 files changed, 35 insertions(+) diff --git a/src/api/sipe-backend.h b/src/api/sipe-backend.h index c77a5679..96c81c34 100644 --- a/src/api/sipe-backend.h +++ b/src/api/sipe-backend.h @@ -230,6 +230,18 @@ gssize sipe_backend_ft_write(struct sipe_file_transfer *ft, const guchar *data, gsize size); +/** + * Writes received data to a file. + * + * @param ft file transfer data + * @param data data to write + * @param size length of the data in bytes + * + * @return number of bytes written or -1 on error. + */ +gssize sipe_backend_ft_write_file(struct sipe_file_transfer *ft, + const guchar *data, gsize size); + void sipe_backend_ft_set_completed(struct sipe_file_transfer *ft); void sipe_backend_ft_cancel_local(struct sipe_file_transfer *ft); diff --git a/src/miranda/miranda-ft.c b/src/miranda/miranda-ft.c index 4cd6289d..cf9bc5a3 100644 --- a/src/miranda/miranda-ft.c +++ b/src/miranda/miranda-ft.c @@ -259,6 +259,13 @@ gssize sipe_backend_ft_write(struct sipe_file_transfer *ft, return bytes_written; } +gssize sipe_backend_ft_write_file(struct sipe_file_transfer *ft, + const guchar *data, + gsize size) +{ + _NIF(); +} + static void cancel_local(struct sipe_backend_file_transfer *xfer) { diff --git a/src/purple/purple-ft.c b/src/purple/purple-ft.c index d9d779b3..add1fc58 100644 --- a/src/purple/purple-ft.c +++ b/src/purple/purple-ft.c @@ -134,6 +134,19 @@ gssize sipe_backend_ft_write(struct sipe_file_transfer *ft, return bytes_written; } +#ifdef HAVE_XDATA +gssize sipe_backend_ft_write_file(struct sipe_file_transfer *ft, + const guchar *data, gsize size) +{ + if (purple_xfer_write_file(FT_TO_PURPLE_XFER, data, size)) { + purple_xfer_update_progress(FT_TO_PURPLE_XFER); + return size; + } + + return -1; +} +#endif + static gboolean end_transfer_cb(gpointer data) { diff --git a/src/telepathy/telepathy-stubs.c b/src/telepathy/telepathy-stubs.c index 76054b19..6f73e5e5 100644 --- a/src/telepathy/telepathy-stubs.c +++ b/src/telepathy/telepathy-stubs.c @@ -133,6 +133,9 @@ gssize sipe_backend_ft_read(SIPE_UNUSED_PARAMETER struct sipe_file_transfer *ft, gssize sipe_backend_ft_write(SIPE_UNUSED_PARAMETER struct sipe_file_transfer *ft, SIPE_UNUSED_PARAMETER const guchar *data, SIPE_UNUSED_PARAMETER gsize size) { return(-1); } +gssize sipe_backend_ft_write_file(SIPE_UNUSED_PARAMETER struct sipe_file_transfer *ft, + SIPE_UNUSED_PARAMETER const guchar *data, + SIPE_UNUSED_PARAMETER gsize size) {} void sipe_backend_ft_set_completed(SIPE_UNUSED_PARAMETER struct sipe_file_transfer *ft) {} void sipe_backend_ft_cancel_local(SIPE_UNUSED_PARAMETER struct sipe_file_transfer *ft) {} void sipe_backend_ft_cancel_remote(SIPE_UNUSED_PARAMETER struct sipe_file_transfer *ft) {} -- 2.11.4.GIT