diff options
author | Robert Pösel <robyer@seznam.cz> | 2015-10-19 20:11:55 +0000 |
---|---|---|
committer | Robert Pösel <robyer@seznam.cz> | 2015-10-19 20:11:55 +0000 |
commit | d16d69e7b86095c1493f4a7062751768c31a58fc (patch) | |
tree | f6396cd0a81bca933763ce4e90305be62128589b /protocols/Omegle/src/messages.cpp | |
parent | 3b8beab406e3e93c0c007a8291393bc491669b99 (diff) |
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
Diffstat (limited to 'protocols/Omegle/src/messages.cpp')
-rw-r--r-- | protocols/Omegle/src/messages.cpp | 156 |
1 files changed, 77 insertions, 79 deletions
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 <http://www.gnu.org/licenses/>.
-
-*/
-
-#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<int*>(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 <http://www.gnu.org/licenses/>. + +*/ + +#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<int*>(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(); +} |