From 7df19254e64619d6b077a7c69b456a39d4a810cb Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 30 Jan 2015 23:30:48 +0000 Subject: - avatar support functions moved to the separate module; - added support for setting our own avatar git-svn-id: http://svn.miranda-ng.org/main/trunk@11963 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/WhatsApp/src/proto.cpp | 63 ++-------------------------------------- 1 file changed, 2 insertions(+), 61 deletions(-) (limited to 'protocols/WhatsApp/src/proto.cpp') diff --git a/protocols/WhatsApp/src/proto.cpp b/protocols/WhatsApp/src/proto.cpp index 0d7285bb60..42ec1990eb 100644 --- a/protocols/WhatsApp/src/proto.cpp +++ b/protocols/WhatsApp/src/proto.cpp @@ -23,6 +23,8 @@ WhatsAppProto::WhatsAppProto(const char* proto_name, const TCHAR* username) : CreateProtoService(PS_GETAVATARINFOT, &WhatsAppProto::GetAvatarInfo); CreateProtoService(PS_GETAVATARCAPS, &WhatsAppProto::GetAvatarCaps); + CreateProtoService(PS_GETMYAVATART, &WhatsAppProto::GetMyAvatar); + CreateProtoService(PS_SETMYAVATART, &WhatsAppProto::SetMyAvatar); HookProtoEvent(ME_OPT_INITIALISE, &WhatsAppProto::OnOptionsInit); HookProtoEvent(ME_SYSTEM_MODULESLOADED, &WhatsAppProto::OnModulesLoaded); @@ -354,67 +356,6 @@ void WhatsAppProto::RequestFriendship(MCONTACT hContact) } } -INT_PTR WhatsAppProto::GetAvatarInfo(WPARAM wParam, LPARAM lParam) -{ - PROTO_AVATAR_INFORMATIONT* AI = (PROTO_AVATAR_INFORMATIONT*)lParam; - - ptrA id(getStringA(AI->hContact, WHATSAPP_KEY_ID)); - if (id == NULL) - return GAIR_NOAVATAR; - - std::tstring tszFileName = GetAvatarFileName(AI->hContact); - _tcsncpy_s(AI->filename, tszFileName.c_str(), _TRUNCATE); - AI->format = PA_FORMAT_JPEG; - - ptrA szAvatarId(getStringA(AI->hContact, WHATSAPP_KEY_AVATAR_ID)); - if (szAvatarId == NULL || (wParam & GAIF_FORCE) != 0) - if (AI->hContact != NULL && m_pConnection != NULL) { - m_pConnection->sendGetPicture((const char*)id, "image"); - return GAIR_WAITFOR; - } - - debugLogA("No avatar"); - return GAIR_NOAVATAR; -} - -INT_PTR WhatsAppProto::GetAvatarCaps(WPARAM wParam, LPARAM lParam) -{ - switch (wParam) { - case AF_PROPORTION: - return PIP_SQUARE; - - case AF_FORMATSUPPORTED: // Jabber supports avatars of virtually all formats - return PA_FORMAT_JPEG; - - case AF_ENABLED: - return TRUE; - - case AF_MAXSIZE: - POINT *size = (POINT*)lParam; - if (size) - size->x = size->y = 96; - return 0; - } - return -1; -} - -std::tstring WhatsAppProto::GetAvatarFileName(MCONTACT hContact) -{ - std::tstring result = m_tszAvatarFolder + _T("\\"); - - std::string jid; - if (hContact != NULL) { - ptrA szId(getStringA(hContact, "ID")); - if (szId == NULL) - return _T(""); - - jid = szId; - } - else jid = m_szJid; - - return result + std::tstring(_A2T(jid.c_str())) + _T(".jpg"); -} - LRESULT CALLBACK PopupDlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { -- cgit v1.2.3