From d16d69e7b86095c1493f4a7062751768c31a58fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20P=C3=B6sel?= Date: Mon, 19 Oct 2015 20:11:55 +0000 Subject: Omegle: Various improvements * Remove typing weirdness * Fix resetting "stranger is typing" on receiving message * Make option "hi message" choose randomly from more messages git-svn-id: http://svn.miranda-ng.org/main/trunk@15571 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Omegle/src/messages.cpp | 156 +++++++++++++++++++------------------- 1 file changed, 77 insertions(+), 79 deletions(-) (limited to 'protocols/Omegle/src/messages.cpp') diff --git a/protocols/Omegle/src/messages.cpp b/protocols/Omegle/src/messages.cpp index 5eea9b5893..666229ebfd 100644 --- a/protocols/Omegle/src/messages.cpp +++ b/protocols/Omegle/src/messages.cpp @@ -1,79 +1,77 @@ -/* - -Omegle plugin for Miranda Instant Messenger -_____________________________________________ - -Copyright © 2011-15 Robert Pösel - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . - -*/ - -#include "stdafx.h" - -void OmegleProto::SendMsgWorker(void *p) -{ - if(p == NULL) - return; - - ScopedLock s( facy.send_message_lock_ ); - - std::string data = *(std::string*)p; - delete (std::string*)p; - - data = utils::text::trim(data); - - if (facy.state_ == STATE_ACTIVE && data.length() && facy.send_message( data )) - { - TCHAR *msg = mir_a2t_cp(data.c_str(), CP_UTF8); - UpdateChat(facy.nick_, msg); - mir_free(msg); - } -} - -void OmegleProto::SendTypingWorker(void *p) -{ - if (p == NULL) - return; - - // Save typing info - bool typ = (*static_cast(p) == PROTOTYPE_SELFTYPING_ON); - delete (int*)p; - - // Ignore same typing info - if (facy.typing_ == typ) - return; - - facy.typing_ = typ; - // Wait for eventually changes to typing info by other thread and ignore if changed - SleepEx(2000, true); - if (facy.typing_ != typ || facy.old_typing_ == typ || facy.state_ != STATE_ACTIVE) - return; - - facy.old_typing_ = typ; - if (typ) - facy.typing_start(); - else - facy.typing_stop(); -} - -void OmegleProto::NewChatWorker(void*) -{ - NewChat(); -} - -void OmegleProto::StopChatWorker(void*) -{ - StopChat(); -} +/* + +Omegle plugin for Miranda Instant Messenger +_____________________________________________ + +Copyright © 2011-15 Robert Pösel + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +*/ + +#include "stdafx.h" + +void OmegleProto::SendMsgWorker(void *p) +{ + if(p == NULL) + return; + + ScopedLock s( facy.send_message_lock_ ); + + std::string data = *(std::string*)p; + delete (std::string*)p; + + data = utils::text::trim(data); + + if (facy.state_ == STATE_ACTIVE && data.length() && facy.send_message( data )) + { + TCHAR *msg = mir_a2t_cp(data.c_str(), CP_UTF8); + UpdateChat(facy.nick_, msg); + mir_free(msg); + } +} + +void OmegleProto::SendTypingWorker(void *p) +{ + if (p == NULL) + return; + + // Save typing info + bool typ = (*static_cast(p) == PROTOTYPE_SELFTYPING_ON); + delete (int*)p; + + // Ignore same typing info + if (facy.typing_ == typ) + return; + + if (facy.state_ != STATE_ACTIVE) + return; + + facy.typing_ = typ; + + if (typ) + facy.typing_start(); + else + facy.typing_stop(); +} + +void OmegleProto::NewChatWorker(void*) +{ + NewChat(); +} + +void OmegleProto::StopChatWorker(void*) +{ + StopChat(); +} -- cgit v1.2.3