From 52be24181ca0847ab6e868da65cdbcaec82322cf Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 17 Aug 2020 16:04:59 +0300 Subject: WEBP support added to avatar support routines --- include/m_protocols.h | 1 + src/mir_app/src/proto_utils.cpp | 13 ++++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/include/m_protocols.h b/include/m_protocols.h index ae22742824..27a3963f1f 100644 --- a/include/m_protocols.h +++ b/include/m_protocols.h @@ -375,6 +375,7 @@ ProtoBroadcastAck(), listeners must hook ME_PROTO_ACK, note that lParam = ACKDAT #define PA_FORMAT_GIF 5 #define PA_FORMAT_SWF 6 #define PA_FORMAT_XML 7 +#define PA_FORMAT_WEBP 8 typedef struct { MCONTACT hContact; // this might have to be set by the caller too diff --git a/src/mir_app/src/proto_utils.cpp b/src/mir_app/src/proto_utils.cpp index 771ebc9cff..98b55fcdf8 100644 --- a/src/mir_app/src/proto_utils.cpp +++ b/src/mir_app/src/proto_utils.cpp @@ -209,6 +209,8 @@ MIR_APP_DLL(LPCTSTR) ProtoGetAvatarExtension(int format) return L".swf"; if (format == PA_FORMAT_XML) return L".xml"; + if (format == PA_FORMAT_WEBP) + return L".webp"; return L""; } @@ -243,6 +245,9 @@ MIR_APP_DLL(int) ProtoGetAvatarFormat(const wchar_t *ptszFileName) if (!wcsicmp(ptszExt, L".xml")) return PA_FORMAT_XML; + if (!wcsicmp(ptszExt, L".webp")) + return PA_FORMAT_WEBP; + return PA_FORMAT_UNKNOWN; } @@ -273,6 +278,11 @@ MIR_APP_DLL(int) ProtoGetBufferFormat(const void *pBuffer, const wchar_t **ptszE if (ptszExtension) *ptszExtension = L".bmp"; return PA_FORMAT_BMP; } + + if (!memcmp(pBuffer, "RIFF", 4) && !memcmp((char*)pBuffer+8, "WEBP", 4)) { + if (ptszExtension) *ptszExtension = L".webp"; + return PA_FORMAT_WEBP; + } } if (ptszExtension) *ptszExtension = L""; @@ -305,7 +315,8 @@ static char *wszMimeTypes[] = "image/bmp", // PA_FORMAT_BMP "image/gif", // PA_FORMAT_GIF "image/swf", // PA_FORMAT_SWF - "application/xml" // PA_FORMAT_XML + "application/xml", // PA_FORMAT_XML + "image/webp", // PA_FORMAT_WEBP }; MIR_APP_DLL(const char*) ProtoGetAvatarMimeType(int iFileType) -- cgit v1.2.3