From 84f85ceac0f993be95dda89584749ea59fe5b8e7 Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Thu, 7 Aug 2014 13:49:07 +0000 Subject: Tox added from branch git-svn-id: http://svn.miranda-ng.org/main/trunk@10115 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Tox/src/tox_instances.cpp | 44 +++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 protocols/Tox/src/tox_instances.cpp (limited to 'protocols/Tox/src/tox_instances.cpp') diff --git a/protocols/Tox/src/tox_instances.cpp b/protocols/Tox/src/tox_instances.cpp new file mode 100644 index 0000000000..ea010f894a --- /dev/null +++ b/protocols/Tox/src/tox_instances.cpp @@ -0,0 +1,44 @@ +#include "common.h" + +LIST CToxProto::instanceList(1, CToxProto::CompareProtos); + +int CToxProto::CompareProtos(const CToxProto *p1, const CToxProto *p2) +{ + return wcscmp(p1->m_tszUserName, p2->m_tszUserName); +} + +CToxProto* CToxProto::InitProtoInstance(const char* protoName, const wchar_t* userName) +{ + CToxProto *ppro = new CToxProto(protoName, userName); + CToxProto::instanceList.insert(ppro); + + return ppro; +} + +int CToxProto::UninitProtoInstance(CToxProto* ppro) +{ + CToxProto::instanceList.remove(ppro); + + delete ppro; + + return 0; +} + +void CToxProto::UninitInstances() +{ + CToxProto::instanceList.destroy(); +} + +CToxProto* CToxProto::GetContactInstance(MCONTACT hContact) +{ + char *proto = (char *)::CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM)hContact, 0); + + if (proto == NULL) + return NULL; + + for (int i = 0; i < CToxProto::instanceList.getCount(); i++) + if ( !::strcmp(proto, CToxProto::instanceList[i]->m_szModuleName)) + return CToxProto::instanceList[i]; + + return NULL; +} \ No newline at end of file -- cgit v1.2.3