From 51acae2613c8a38e9116dcca3237fa7ad0dd3a6c Mon Sep 17 00:00:00 2001 From: Alexander Lantsev Date: Tue, 6 Jan 2015 11:53:14 +0000 Subject: Tox: sending own status message git-svn-id: http://svn.miranda-ng.org/main/trunk@11779 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Tox/src/tox_proto.cpp | 20 +++++++++++++++++--- protocols/Tox/src/tox_transfer.cpp | 2 +- 2 files changed, 18 insertions(+), 4 deletions(-) (limited to 'protocols/Tox') diff --git a/protocols/Tox/src/tox_proto.cpp b/protocols/Tox/src/tox_proto.cpp index 7986987fe4..2f4e749412 100644 --- a/protocols/Tox/src/tox_proto.cpp +++ b/protocols/Tox/src/tox_proto.cpp @@ -51,7 +51,6 @@ CToxProto::CToxProto(const char* protoName, const TCHAR* userName) : CToxProto::~CToxProto() { mir_free(accountName); - //UninitToxCore(); UninitNetlib(); } @@ -60,9 +59,11 @@ DWORD_PTR __cdecl CToxProto::GetCaps(int type, MCONTACT hContact) switch (type) { case PFLAGNUM_1: - return PF1_IM | PF1_FILE | PF1_AUTHREQ | PF1_EXTSEARCH | PF1_SERVERCLIST; + return PF1_IM | PF1_FILE | PF1_AUTHREQ | PF1_MODEMSGSEND | PF1_EXTSEARCH | PF1_SERVERCLIST; case PFLAGNUM_2: return PF2_ONLINE | PF2_SHORTAWAY | PF2_LIGHTDND; + case PFLAGNUM_3: + return PF2_ONLINE | PF2_SHORTAWAY | PF2_LIGHTDND; case PFLAGNUM_4: return PF4_IMSENDUTF | PF4_SINGLEFILEONLY | PF4_SUPPORTTYPING | PF4_AVATARS | PF4_FORCEADDED | PF4_NOAUTHDENYREASON | PF4_FORCEAUTH; @@ -249,7 +250,20 @@ int __cdecl CToxProto::SetStatus(int iNewStatus) HANDLE __cdecl CToxProto::GetAwayMsg(MCONTACT hContact) { return 0; } int __cdecl CToxProto::RecvAwayMsg(MCONTACT hContact, int mode, PROTORECVEVENT* evt) { return 0; } -int __cdecl CToxProto::SetAwayMsg(int iStatus, const PROTOCHAR* msg) { return 0; } + +int __cdecl CToxProto::SetAwayMsg(int iStatus, const PROTOCHAR *msg) +{ + if (IsOnline()) + { + ptrA statusMessage(msg == NULL ? mir_strdup("") : mir_utf8encodeT(msg)); + if (tox_set_status_message(tox, (uint8_t*)(char*)statusMessage, min(TOX_MAX_STATUSMESSAGE_LENGTH, strlen(statusMessage))) == TOX_ERROR) + { + debugLogA("CToxProto::SetAwayMsg: failed to set status status message %s", msg); + } + } + + return 0; +} int __cdecl CToxProto::OnEvent(PROTOEVENTTYPE iEventType, WPARAM wParam, LPARAM lParam) { diff --git a/protocols/Tox/src/tox_transfer.cpp b/protocols/Tox/src/tox_transfer.cpp index 127c0340af..03ebe2c467 100644 --- a/protocols/Tox/src/tox_transfer.cpp +++ b/protocols/Tox/src/tox_transfer.cpp @@ -219,7 +219,7 @@ void CToxProto::SendFileAsync(void* arg) uint8_t *data = (uint8_t*)mir_alloc(TOX_FILE_BLOCK_SIZE); while (!feof(hFile) && fileProgress < fileSize && !transfer->isTerminated) { - // read file by block of 1mb + // read file by block of TOX_FILE_BLOCK_SIZE size_t blockSize = min(chunkSize * (TOX_FILE_BLOCK_SIZE / chunkSize), fileSize - fileProgress); if (fread(data, sizeof(uint8_t), blockSize, hFile) != blockSize) { -- cgit v1.2.3