summaryrefslogtreecommitdiff
path: root/protocols
diff options
context:
space:
mode:
Diffstat (limited to 'protocols')
-rw-r--r--protocols/Skype/res/Resource.rc30
-rw-r--r--protocols/Skype/src/resource.h14
-rw-r--r--protocols/Skype/src/skype_contacts.cpp90
-rw-r--r--protocols/Skype/src/skype_dialogs.cpp70
-rw-r--r--protocols/Skype/src/skype_proto.cpp38
-rw-r--r--protocols/Skype/src/skype_proto.h2
-rw-r--r--protocols/Skype/src/skype_subclassing.cpp446
-rw-r--r--protocols/Skype/src/skype_subclassing.h114
8 files changed, 466 insertions, 338 deletions
diff --git a/protocols/Skype/res/Resource.rc b/protocols/Skype/res/Resource.rc
index cadd7377e2..e9a9b81c2d 100644
--- a/protocols/Skype/res/Resource.rc
+++ b/protocols/Skype/res/Resource.rc
@@ -36,6 +36,22 @@ BEGIN
PUSHBUTTON "Cancel",IDCANCEL,84,66,50,14
END
+IDD_INFO_SKYPE DIALOGEX 0, 0, 222, 132
+STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | WS_CHILD
+EXSTYLE WS_EX_CONTROLPARENT
+FONT 8, "MS Shell Dlg", 0, 0, 0x1
+BEGIN
+ LTEXT "Skype name:",IDC_STATIC,5,5,71,8
+ EDITTEXT IDC_SID,74,5,143,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
+ LTEXT "Status text:",IDC_STATIC,5,18,71,8
+ EDITTEXT IDC_STATUSTEXT,74,18,74,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
+ LTEXT "Online since:",IDC_STATIC,5,31,71,8
+ EDITTEXT IDC_ONLINESINCE,74,31,139,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
+ LTEXT "Last event date:",IDC_STATIC,5,44,71,8
+ EDITTEXT IDC_LASTEVENTDATE,74,44,141,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
+ LTEXT "Last profile change:",IDC_STATIC,5,57,71,8
+ EDITTEXT IDC_LASTPROFILECHANGE,74,57,142,12,ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER
+END
/////////////////////////////////////////////////////////////////////////////
//
@@ -52,6 +68,20 @@ BEGIN
TOPMARGIN, 7
BOTTOMMARGIN, 80
END
+
+ IDD_INFO_SKYPE, DIALOG
+ BEGIN
+ LEFTMARGIN, 5
+ RIGHTMARGIN, 217
+ VERTGUIDE, 61
+ TOPMARGIN, 5
+ BOTTOMMARGIN, 129
+ HORZGUIDE, 22
+ HORZGUIDE, 35
+ HORZGUIDE, 48
+ HORZGUIDE, 61
+ HORZGUIDE, 74
+ END
END
#endif // APSTUDIO_INVOKED
diff --git a/protocols/Skype/src/resource.h b/protocols/Skype/src/resource.h
index d2f91471cd..c0d3786ec0 100644
--- a/protocols/Skype/src/resource.h
+++ b/protocols/Skype/src/resource.h
@@ -4,6 +4,7 @@
//
#define IDD_SKYPEACCOUNT 9
#define IDD_OPTIONS 10
+#define IDD_INFO_SKYPE 11
#define IDI_ICON 101
#define IDR_RUNTIME 102
#define IDI_AUTH_GRANT 103
@@ -15,9 +16,14 @@
#define IDC_PW 1002
#define IDC_SL 1003
#define IDC_SAVEPASS 1004
-#define IDC_SAVEPASSWORD 1004
-#define IDC_PASSWORD 1018
-#define IDC_INSTRUCTION 1019
+#define IDC_SAVEPASSWORD 1005
+#define IDC_PASSWORD 1006
+#define IDC_INSTRUCTION 1007
+#define IDC_SID 1008
+#define IDC_STATUSTEXT 1009
+#define IDC_ONLINESINCE 1010
+#define IDC_LASTEVENTDATE 1011
+#define IDC_LASTPROFILECHANGE 1012
// Next default values for new objects
//
@@ -25,7 +31,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 108
#define _APS_NEXT_COMMAND_VALUE 40001
-#define _APS_NEXT_CONTROL_VALUE 1004
+#define _APS_NEXT_CONTROL_VALUE 1013
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
diff --git a/protocols/Skype/src/skype_contacts.cpp b/protocols/Skype/src/skype_contacts.cpp
index a83ee412da..e79855b6f1 100644
--- a/protocols/Skype/src/skype_contacts.cpp
+++ b/protocols/Skype/src/skype_contacts.cpp
@@ -317,6 +317,24 @@ void CSkypeProto::UpdateContactTimezone(HANDLE hContact, CContact::Ref contact)
this->DeleteSetting(hContact, "TimeZone");
}
+void CSkypeProto::UpdateContactOnlineSinceTime(HANDLE hContact, CContact::Ref contact)
+{
+ uint data;
+ contact->GetPropLastonlineTimestamp(data);
+ if (data > 0)
+ {
+ }
+}
+
+void CSkypeProto::UpdateContactLastEventDate(HANDLE hContact, CContact::Ref contact)
+{
+ uint data;
+ contact->GetPropLastusedTimestamp(data);
+ if (data > 0)
+ {
+ }
+}
+
void CSkypeProto::UpdateFullName(HANDLE hContact, CContact::Ref contact)
{
SEString data;
@@ -361,6 +379,8 @@ void CSkypeProto::UpdateContactProfile(HANDLE hContact, CContact::Ref contact)
this->UpdateContactOfficePhone(hContact, contact);
this->UpdateContactState(hContact, contact);
this->UpdateContactTimezone(hContact, contact);
+ this->UpdateContactOnlineSinceTime(hContact, contact);
+ this->UpdateContactLastEventDate(hContact, contact);
this->UpdateFullName(hContact, contact);
this->SetSettingDword(hContact, "ProfileTS", newTS);
@@ -478,10 +498,10 @@ void CSkypeProto::OnContactListChanged(const ContactRef& contact)
contact->IsMemberOfHardwiredGroup(CContactGroup::ALL_BUDDIES, result);
if (result)
{
- if ( !this->contactList.contains(contact))
- {
- CContact::Ref newContact(contact);
- this->contactList.append(newContact);
+ if ( !this->contactList.contains(contact))
+ {
+ CContact::Ref newContact(contact);
+ this->contactList.append(newContact);
newContact.fetch();
newContact->SetOnContactChangedCallback(
(CContact::OnContactChanged)&CSkypeProto::OnContactChanged,
@@ -808,43 +828,43 @@ void __cdecl CSkypeProto::SearchBySidAsync(void* arg)
return;
}
- CContactSearch::Ref search;
- g_skype->CreateIdentitySearch(::mir_u2a(sid), search);
- search.fetch();
- search->SetProtoInfo(this, (HANDLE)SKYPE_SEARCH_BYSID);
- search->SetOnContactFindedCallback(
- (CContactSearch::OnContactFinded)&CSkypeProto::OnContactFinded);
- search->SetOnSearchCompleatedCallback(
- (CContactSearch::OnSearchCompleted)&CSkypeProto::OnSearchCompleted);
-
- bool valid;
- if (!search->IsValid(valid) || !valid || !search->Submit())
- {
- return;
- }
- search->BlockWhileSearch();
- search->Release();
+ CContactSearch::Ref search;
+ g_skype->CreateIdentitySearch(::mir_u2a(sid), search);
+ search.fetch();
+ search->SetProtoInfo(this, (HANDLE)SKYPE_SEARCH_BYSID);
+ search->SetOnContactFindedCallback(
+ (CContactSearch::OnContactFinded)&CSkypeProto::OnContactFinded);
+ search->SetOnSearchCompleatedCallback(
+ (CContactSearch::OnSearchCompleted)&CSkypeProto::OnSearchCompleted);
+
+ bool valid;
+ if (!search->IsValid(valid) || !valid || !search->Submit())
+ {
+ return;
+ }
+ search->BlockWhileSearch();
+ search->Release();
}
void __cdecl CSkypeProto::SearchByEmailAsync(void* arg)
{
const wchar_t *email = (wchar_t *)arg;
- CContactSearch::Ref search;
- g_skype->CreateContactSearch(search);
- search.fetch();
- search->SetProtoInfo(this, (HANDLE)SKYPE_SEARCH_BYEMAIL);
- search->SetOnContactFindedCallback(
- (CContactSearch::OnContactFinded)&CSkypeProto::OnContactFinded);
- search->SetOnSearchCompleatedCallback(
- (CContactSearch::OnSearchCompleted)&CSkypeProto::OnSearchCompleted);
-
- bool valid;
- if (!search->AddEmailTerm(::mir_u2a(email), valid) || !valid || !search->Submit())
- {
- return;
- }
- search->BlockWhileSearch();
+ CContactSearch::Ref search;
+ g_skype->CreateContactSearch(search);
+ search.fetch();
+ search->SetProtoInfo(this, (HANDLE)SKYPE_SEARCH_BYEMAIL);
+ search->SetOnContactFindedCallback(
+ (CContactSearch::OnContactFinded)&CSkypeProto::OnContactFinded);
+ search->SetOnSearchCompleatedCallback(
+ (CContactSearch::OnSearchCompleted)&CSkypeProto::OnSearchCompleted);
+
+ bool valid;
+ if (!search->AddEmailTerm(::mir_u2a(email), valid) || !valid || !search->Submit())
+ {
+ return;
+ }
+ search->BlockWhileSearch();
search->Release();
}
diff --git a/protocols/Skype/src/skype_dialogs.cpp b/protocols/Skype/src/skype_dialogs.cpp
index 600007d25f..89b4214489 100644
--- a/protocols/Skype/src/skype_dialogs.cpp
+++ b/protocols/Skype/src/skype_dialogs.cpp
@@ -233,7 +233,77 @@ int __cdecl CSkypeProto::OnOptionsInit(WPARAM wParam, LPARAM lParam)
return 0;
}
+static INT_PTR CALLBACK SkypeDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+ switch (msg) {
+ case WM_INITDIALOG:
+ TranslateDialogDefault(hwndDlg);
+ break;
+
+ case WM_NOTIFY:
+ switch (((LPNMHDR)lParam)->idFrom) {
+ case 0:
+ switch (((LPNMHDR)lParam)->code) {
+ case PSN_PARAMCHANGED:
+ SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (( PSHNOTIFY* )lParam )->lParam );
+ break;
+
+ case PSN_INFOCHANGED:
+ {
+ CSkypeProto* ppro = (CSkypeProto*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
+ if (!ppro)
+ break;
+
+ char* szProto;
+ HANDLE hContact = (HANDLE)((LPPSHNOTIFY)lParam)->lParam;
+
+ if (hContact == NULL)
+ szProto = ppro->m_szModuleName;
+ else
+ szProto = (char*)CallService(MS_PROTO_GETCONTACTBASEPROTO, (WPARAM)hContact, 0);
+
+ if (!szProto)
+ break;
+
+ //SetDlgItemText(GetDlgItem(hwndDlg, IDC_SID), IDC_SID, ppro->GetSettingString(hContact, "sid"));
+ //SetDlgItemText(GetDlgItem(hwndDlg, IDC_STATUSTEXT), IDC_STATUSTEXT, ppro->GetSettingString(hContact, "XStatusMsg") ? ppro->GetSettingString(hContact, "XStatusMsg") : TranslateT("<not specified>"));
+ //SetDlgItemText(GetDlgItem(hwndDlg, IDC_ONLINESINCE), IDC_ONLINESINCE, ppro->GetSettingDword(hContact, "OnlineSinceTS") ? ppro->GetSettingString(hContact, "OnlineSinceTS") : TranslateT("<not specified>"));
+ //SetDlgItemText(GetDlgItem(hwndDlg, IDC_LASTEVENTDATE), IDC_LASTEVENTDATE, ppro->GetSettingDword(hContact, "LastEventDateTS") ? ppro->GetSettingString(hContact, "LastEventDateTS") : TranslateT("<not specified>"));
+ //SetDlgItemText(GetDlgItem(hwndDlg, IDC_LASTPROFILECHANGE), IDC_LASTPROFILECHANGE, ppro->GetSettingDword(hContact, "ProfileTS") ? ppro->GetSettingDword(hContact, "ProfileTS") : TranslateT("<not specified>"));
+ }
+ break;
+ }
+ break;
+ }
+ break;
+
+ case WM_COMMAND:
+ switch(LOWORD(wParam)) {
+ case IDCANCEL:
+ SendMessage(GetParent(hwndDlg), msg, wParam, lParam);
+ break;
+ }
+ break;
+ }
+
+ return FALSE;
+}
+
int __cdecl CSkypeProto::OnUserInfoInit(WPARAM wParam, LPARAM lParam)
{
+ if ((!this->IsProtoContact((HANDLE)lParam)) && lParam)
+ return 0;
+
+ OPTIONSDIALOGPAGE odp = {0};
+ odp.cbSize = sizeof(odp);
+ odp.flags = ODPF_TCHAR | ODPF_DONTTRANSLATE;
+ odp.hInstance = g_hInstance;
+ odp.dwInitParam = LPARAM(this);
+ odp.pfnDlgProc = SkypeDlgProc;
+ odp.position = -1900000000;
+ odp.ptszTitle = m_tszUserName;
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_INFO_SKYPE);
+ UserInfo_AddPage(wParam, &odp);
+
return 0;
} \ No newline at end of file
diff --git a/protocols/Skype/src/skype_proto.cpp b/protocols/Skype/src/skype_proto.cpp
index 7a46169cb0..9a5acff9dd 100644
--- a/protocols/Skype/src/skype_proto.cpp
+++ b/protocols/Skype/src/skype_proto.cpp
@@ -178,9 +178,9 @@ HANDLE __cdecl CSkypeProto::SearchBasic(const TCHAR* id)
return 0;
wchar_t *data = ::mir_tstrdup(id);
- this->ForkThread(&CSkypeProto::SearchBySidAsync, data);
-
- return (HANDLE)SKYPE_SEARCH_BYSID;
+ this->ForkThread(&CSkypeProto::SearchBySidAsync, data);
+
+ return (HANDLE)SKYPE_SEARCH_BYSID;
}
HANDLE __cdecl CSkypeProto::SearchByEmail(const TCHAR* email)
@@ -189,8 +189,8 @@ HANDLE __cdecl CSkypeProto::SearchByEmail(const TCHAR* email)
return 0;
wchar_t *data = ::mir_tstrdup(email);
- this->ForkThread(&CSkypeProto::SearchByEmailAsync, data);
-
+ this->ForkThread(&CSkypeProto::SearchByEmailAsync, data);
+
return (HANDLE)SKYPE_SEARCH_BYEMAIL;
}
HANDLE __cdecl CSkypeProto::SearchByName(const TCHAR* nick, const TCHAR* firstName, const TCHAR* lastName)
@@ -227,21 +227,21 @@ HANDLE __cdecl CSkypeProto::SendFile( HANDLE hContact, const TCHAR* szDescriptio
int __cdecl CSkypeProto::SendMsg(HANDLE hContact, int flags, const char* msg)
{
int result = ::InterlockedIncrement((LONG volatile*)&dwCMDNum);
-
+
CConversation::Ref conversation;
g_skype->GetConversationByIdentity(::mir_u2a(this->GetSettingString(hContact, "sid")), conversation);
- if (conversation)
- {
- Message::Ref message;
- conversation->PostText(msg, message);
- }
-
- this->SendBroadcastAsync(
- hContact,
- ACKTYPE_MESSAGE,
- ACKRESULT_SUCCESS,
- (HANDLE)result,
- 0);
+ if (conversation)
+ {
+ Message::Ref message;
+ conversation->PostText(msg, message);
+ }
+
+ this->SendBroadcastAsync(
+ hContact,
+ ACKTYPE_MESSAGE,
+ ACKRESULT_SUCCESS,
+ (HANDLE)result,
+ 0);
return result;
}
@@ -308,7 +308,7 @@ int __cdecl CSkypeProto::UserIsTyping( HANDLE hContact, int type )
{
CConversation::Ref conversation;
g_skype->GetConversationByIdentity(::mir_u2a(this->GetSettingString(hContact, "sid")), conversation);
- if (conversation)
+ if (conversation)
{
switch (type)
{
diff --git a/protocols/Skype/src/skype_proto.h b/protocols/Skype/src/skype_proto.h
index e4514f1668..124a8300b1 100644
--- a/protocols/Skype/src/skype_proto.h
+++ b/protocols/Skype/src/skype_proto.h
@@ -152,6 +152,8 @@ protected:
void UpdateContactStatusMessage(HANDLE hContact, CContact::Ref contact);
void UpdateContactTimezone(HANDLE hContact, CContact::Ref contact);
void UpdateContactProfile(HANDLE hContact, CContact::Ref contact);
+ void UpdateContactOnlineSinceTime(HANDLE hContact, CContact::Ref contact);
+ void UpdateContactLastEventDate(HANDLE hContact, CContact::Ref contact);
void UpdateFullName(HANDLE hContact, CContact::Ref contact);
void OnSearchCompleted(HANDLE hSearch);
diff --git a/protocols/Skype/src/skype_subclassing.cpp b/protocols/Skype/src/skype_subclassing.cpp
index 3dbf36d12b..0058f0a5a5 100644
--- a/protocols/Skype/src/skype_subclassing.cpp
+++ b/protocols/Skype/src/skype_subclassing.cpp
@@ -1,38 +1,38 @@
-#include "skype_subclassing.h"
-
-// CSkype
-
-CSkype::CSkype(int num_threads) : Skype(num_threads)
-{
- this->proto = NULL;
- this->callback == NULL;
-}
-
-CAccount* CSkype::newAccount(int oid)
-{
- return new CAccount(oid, this);
-}
-
-CContactGroup* CSkype::newContactGroup(int oid)
-{
- return new CContactGroup(oid, this);
-}
-
-CContact* CSkype::newContact(int oid)
-{
- return new CContact(oid, this);
-}
-
-CConversation* CSkype::newConversation(int oid)
-{
- return new CConversation(oid, this);
-}
-
-CContactSearch* CSkype::newContactSearch(int oid)
-{
- return new CContactSearch(oid, this);
-}
-
+#include "skype_subclassing.h"
+
+// CSkype
+
+CSkype::CSkype(int num_threads) : Skype(num_threads)
+{
+ this->proto = NULL;
+ this->callback == NULL;
+}
+
+CAccount* CSkype::newAccount(int oid)
+{
+ return new CAccount(oid, this);
+}
+
+CContactGroup* CSkype::newContactGroup(int oid)
+{
+ return new CContactGroup(oid, this);
+}
+
+CContact* CSkype::newContact(int oid)
+{
+ return new CContact(oid, this);
+}
+
+CConversation* CSkype::newConversation(int oid)
+{
+ return new CConversation(oid, this);
+}
+
+CContactSearch* CSkype::newContactSearch(int oid)
+{
+ return new CContactSearch(oid, this);
+}
+
void CSkype::OnConversationListChange(
const ConversationRef &conversation,
const Conversation::LIST_TYPE &type,
@@ -45,193 +45,193 @@ void CSkype::OnConversationListChange(
if (this->proto)
(proto->*callback)(conversation->ref());
}
-}
-
-void CSkype::SetOnConversationAddedCallback(OnConversationAdded callback, CSkypeProto* proto)
-{
- this->proto = proto;
- this->callback = callback;
-}
-
-// CAccount
-
-CAccount::CAccount(unsigned int oid, SERootObject* root) : Account(oid, root)
-{
- this->isLoggedIn = false;
- this->isLoggedOut = false;
-
- this->proto = NULL;
- this->callback == NULL;
-}
-
-void CAccount::SetOnAccountChangedCallback(OnAccountChanged callback, CSkypeProto* proto)
-{
- this->proto = proto;
- this->callback = callback;
-}
-
-void CAccount::OnChange(int prop)
-{
- if (prop == CAccount::P_STATUS)
- {
- CAccount::STATUS loginStatus;
- this->GetPropStatus(loginStatus);
- if (loginStatus == CAccount::LOGGED_IN)
- this->isLoggedIn = true;
-
- if (loginStatus == CAccount::LOGGED_OUT)
- {
- CAccount::LOGOUTREASON whyLogout;
- this->GetPropLogoutreason(whyLogout);
- this->logoutReason = whyLogout;
- if (whyLogout != Account::LOGOUT_CALLED)
- {
- // todo: rewrite!!
- strcpy(this->logoutReasonString, (const char*)tostring(whyLogout));
- }
- this->isLoggedIn = false;
- this->isLoggedOut = true;
+}
+
+void CSkype::SetOnConversationAddedCallback(OnConversationAdded callback, CSkypeProto* proto)
+{
+ this->proto = proto;
+ this->callback = callback;
+}
+
+// CAccount
+
+CAccount::CAccount(unsigned int oid, SERootObject* root) : Account(oid, root)
+{
+ this->isLoggedIn = false;
+ this->isLoggedOut = false;
+
+ this->proto = NULL;
+ this->callback == NULL;
+}
+
+void CAccount::SetOnAccountChangedCallback(OnAccountChanged callback, CSkypeProto* proto)
+{
+ this->proto = proto;
+ this->callback = callback;
+}
+
+void CAccount::OnChange(int prop)
+{
+ if (prop == CAccount::P_STATUS)
+ {
+ CAccount::STATUS loginStatus;
+ this->GetPropStatus(loginStatus);
+ if (loginStatus == CAccount::LOGGED_IN)
+ this->isLoggedIn = true;
+
+ if (loginStatus == CAccount::LOGGED_OUT)
+ {
+ CAccount::LOGOUTREASON whyLogout;
+ this->GetPropLogoutreason(whyLogout);
+ this->logoutReason = whyLogout;
+ if (whyLogout != Account::LOGOUT_CALLED)
+ {
+ // todo: rewrite!!
+ strcpy(this->logoutReasonString, (const char*)tostring(whyLogout));
+ }
+ this->isLoggedIn = false;
+ this->isLoggedOut = true;
+ }
+ }
+ else
+ {
+ if (this->proto)
+ (proto->*callback)(prop);
+ }
+}
+
+void CAccount::BlockWhileLoggingIn()
+{
+ this->isLoggedIn = false;
+ this->isLoggedOut = false;
+ while (!this->isLoggedIn && !this->isLoggedOut)
+ Sleep(1);
+}
+
+void CAccount::BlockWhileLoggingOut()
+{
+ this->isLoggedOut = false;
+ while ( !this->isLoggedOut)
+ Sleep(1);
+}
+
+bool CAccount::IsOnline()
+{
+ return this->isLoggedIn;
+ //(CAccount::STATUS)this->GetUintProp(CAccount::P_STATUS) == Account::LOGGED_IN;
+}
+
+// CContactGroup
+
+CContactGroup::CContactGroup(unsigned int oid, SERootObject* root) : ContactGroup(oid, root)
+{
+ this->proto = NULL;
+ this->callback == NULL;
+}
+
+void CContactGroup::SetOnContactListChangedCallback(OnContactListChanged callback, CSkypeProto* proto)
+{
+ this->proto = proto;
+ this->callback = callback;
+}
+
+//bool CContactGroup::Contains(const ContactRef& contact)
+//{
+// return this->ContactList.contains(contact);
+//}
+
+void CContactGroup::OnChange(const ContactRef& contact)
+{
+ if (this->proto)
+ (proto->*callback)(contact);
+}
+
+// CContactSearch
+
+CContactSearch::CContactSearch(unsigned int oid, SERootObject* root) : ContactSearch(oid, root)
+{
+ this->proto = NULL;
+ this->SearchCompletedCallback == NULL;
+ this->ContactFindedCallback == NULL;
+}
+
+void CContactSearch::OnChange(int prop)
+{
+ if (prop == P_CONTACT_SEARCH_STATUS)
+ {
+ CContactSearch::STATUS status;
+ this->GetPropContactSearchStatus(status);
+ if (status == FINISHED || status == FAILED)
+ {
+ this->isSeachFinished = true;
+ if (this->proto)
+ (proto->*SearchCompletedCallback)(this->hSearch);
}
- }
- else
- {
- if (this->proto)
- (proto->*callback)(prop);
- }
-}
-
-void CAccount::BlockWhileLoggingIn()
-{
- this->isLoggedIn = false;
- this->isLoggedOut = false;
- while (!this->isLoggedIn && !this->isLoggedOut)
- Sleep(1);
-}
-
-void CAccount::BlockWhileLoggingOut()
-{
- this->isLoggedOut = false;
- while ( !this->isLoggedOut)
- Sleep(1);
-}
-
-bool CAccount::IsOnline()
-{
- return this->isLoggedIn;
- //(CAccount::STATUS)this->GetUintProp(CAccount::P_STATUS) == Account::LOGGED_IN;
-}
-
-// CContactGroup
-
-CContactGroup::CContactGroup(unsigned int oid, SERootObject* root) : ContactGroup(oid, root)
-{
- this->proto = NULL;
- this->callback == NULL;
-}
-
-void CContactGroup::SetOnContactListChangedCallback(OnContactListChanged callback, CSkypeProto* proto)
-{
- this->proto = proto;
- this->callback = callback;
-}
-
-//bool CContactGroup::Contains(const ContactRef& contact)
-//{
-// return this->ContactList.contains(contact);
-//}
-
-void CContactGroup::OnChange(const ContactRef& contact)
-{
- if (this->proto)
- (proto->*callback)(contact);
-}
-
-// CContactSearch
-
-CContactSearch::CContactSearch(unsigned int oid, SERootObject* root) : ContactSearch(oid, root)
-{
- this->proto = NULL;
- this->SearchCompletedCallback == NULL;
- this->ContactFindedCallback == NULL;
-}
-
-void CContactSearch::OnChange(int prop)
-{
- if (prop == P_CONTACT_SEARCH_STATUS)
- {
- CContactSearch::STATUS status;
- this->GetPropContactSearchStatus(status);
- if (status == FINISHED || status == FAILED)
- {
- this->isSeachFinished = true;
- if (this->proto)
- (proto->*SearchCompletedCallback)(this->hSearch);
- }
- }
-
- //SEString value = GetProp(prop);
- //List_String dbg = getPropDebug(prop, value);
- //fprintf(stdout,"CONTACTSEARCH.%d:%s = %s\n", getOID(), (const char*)dbg[1], (const char*)dbg[2]);
-}
-
-void CContactSearch::OnNewResult(const ContactRef& contact, const uint& rankValue)
-{
- if (this->proto)
- (proto->*ContactFindedCallback)(this->hSearch, contact->ref());
-}
-
-void CContactSearch::BlockWhileSearch()
-{
- this->isSeachFinished = false;
- this->isSeachFailed = false;
- while (!this->isSeachFinished && !this->isSeachFailed)
- Sleep(1);
-}
-
-void CContactSearch::SetProtoInfo(CSkypeProto* proto, HANDLE hSearch)
-{
- this->proto = proto;
- this->hSearch = hSearch;
-}
-
-void CContactSearch::SetOnSearchCompleatedCallback(OnSearchCompleted callback)
-{
- this->SearchCompletedCallback = callback;
-}
-
-void CContactSearch::SetOnContactFindedCallback(OnContactFinded callback)
-{
- this->ContactFindedCallback = callback;
-}
-
-// CContact
-
-CContact::CContact(unsigned int oid, SERootObject* root) : Contact(oid, root)
-{
- this->proto = NULL;
- this->callback == NULL;
-}
-
-void CContact::SetOnContactChangedCallback(OnContactChanged callback, CSkypeProto* proto)
-{
- this->proto = proto;
- this->callback = callback;
-}
-
-void CContact::OnChange(int prop)
-{
- if (this->proto)
- (proto->*callback)(this->ref(), prop);
-}
-
-// Conversation
-
-CConversation::CConversation(unsigned int oid, SERootObject* root) : Conversation(oid, root)
-{
- this->proto = NULL;
- this->callback == NULL;
-}
-
+ }
+
+ //SEString value = GetProp(prop);
+ //List_String dbg = getPropDebug(prop, value);
+ //fprintf(stdout,"CONTACTSEARCH.%d:%s = %s\n", getOID(), (const char*)dbg[1], (const char*)dbg[2]);
+}
+
+void CContactSearch::OnNewResult(const ContactRef& contact, const uint& rankValue)
+{
+ if (this->proto)
+ (proto->*ContactFindedCallback)(this->hSearch, contact->ref());
+}
+
+void CContactSearch::BlockWhileSearch()
+{
+ this->isSeachFinished = false;
+ this->isSeachFailed = false;
+ while (!this->isSeachFinished && !this->isSeachFailed)
+ Sleep(1);
+}
+
+void CContactSearch::SetProtoInfo(CSkypeProto* proto, HANDLE hSearch)
+{
+ this->proto = proto;
+ this->hSearch = hSearch;
+}
+
+void CContactSearch::SetOnSearchCompleatedCallback(OnSearchCompleted callback)
+{
+ this->SearchCompletedCallback = callback;
+}
+
+void CContactSearch::SetOnContactFindedCallback(OnContactFinded callback)
+{
+ this->ContactFindedCallback = callback;
+}
+
+// CContact
+
+CContact::CContact(unsigned int oid, SERootObject* root) : Contact(oid, root)
+{
+ this->proto = NULL;
+ this->callback == NULL;
+}
+
+void CContact::SetOnContactChangedCallback(OnContactChanged callback, CSkypeProto* proto)
+{
+ this->proto = proto;
+ this->callback = callback;
+}
+
+void CContact::OnChange(int prop)
+{
+ if (this->proto)
+ (proto->*callback)(this->ref(), prop);
+}
+
+// Conversation
+
+CConversation::CConversation(unsigned int oid, SERootObject* root) : Conversation(oid, root)
+{
+ this->proto = NULL;
+ this->callback == NULL;
+}
+
void CConversation::OnMessage(const MessageRef & message)
{
Message::TYPE messageType;
@@ -250,7 +250,7 @@ void CConversation::OnMessage(const MessageRef & message)
//if (propValues[0] != myAccountName)
{
- if (this->proto)
+ if (this->proto)
(proto->*callback)((const char*)propValues[0], (const char*)propValues[1]);
}
}
@@ -258,6 +258,6 @@ void CConversation::OnMessage(const MessageRef & message)
void CConversation::SetOnMessageReceivedCallback(OnMessageReceived callback, CSkypeProto* proto)
{
- this->proto = proto;
+ this->proto = proto;
this->callback = callback;
} \ No newline at end of file
diff --git a/protocols/Skype/src/skype_subclassing.h b/protocols/Skype/src/skype_subclassing.h
index 17b8f1f1c2..16ea04f276 100644
--- a/protocols/Skype/src/skype_subclassing.h
+++ b/protocols/Skype/src/skype_subclassing.h
@@ -19,13 +19,13 @@ public:
void SetOnMessageReceivedCallback(OnMessageReceived callback, CSkypeProto* proto);
-private:
+private:
CSkypeProto* proto;
OnMessageReceived callback;
void OnMessage(const MessageRef & message);
};
-class CContact : public Contact
+class CContact : public Contact
{
public:
typedef void (CSkypeProto::* OnContactChanged)(CContact::Ref contact, int);
@@ -33,44 +33,44 @@ public:
typedef DRef<CContact, Contact> Ref;
typedef DRefs<CContact, Contact> Refs;
- CContact(unsigned int oid, SERootObject* root);
-
- void SetOnContactChangedCallback(OnContactChanged callback, CSkypeProto* proto);
-
-private:
+ CContact(unsigned int oid, SERootObject* root);
+
+ void SetOnContactChangedCallback(OnContactChanged callback, CSkypeProto* proto);
+
+private:
CSkypeProto* proto;
- OnContactChanged callback;
-
- void OnChange(int prop);
+ OnContactChanged callback;
+
+ void OnChange(int prop);
};
-class CContactSearch : public ContactSearch
-{
-public:
- typedef void (CSkypeProto::* OnSearchCompleted)(HANDLE hSearch);
- typedef void (CSkypeProto::* OnContactFinded)(HANDLE hSearch, CContact::Ref contact);
-
- typedef DRef<CContactSearch, ContactSearch> Ref;
- typedef DRefs<CContactSearch, ContactSearch> Refs;
-
- bool isSeachFinished;
- bool isSeachFailed;
-
- CContactSearch(unsigned int oid, SERootObject* root);
-
- void OnChange(int prop);
- void OnNewResult(const ContactRef& contact, const uint& rankValue);
-
- void SetProtoInfo(CSkypeProto* proto, HANDLE hSearch);
- void SetOnSearchCompleatedCallback(OnSearchCompleted callback);
- void SetOnContactFindedCallback(OnContactFinded callback);
-
- void BlockWhileSearch();
+class CContactSearch : public ContactSearch
+{
+public:
+ typedef void (CSkypeProto::* OnSearchCompleted)(HANDLE hSearch);
+ typedef void (CSkypeProto::* OnContactFinded)(HANDLE hSearch, CContact::Ref contact);
+
+ typedef DRef<CContactSearch, ContactSearch> Ref;
+ typedef DRefs<CContactSearch, ContactSearch> Refs;
+
+ bool isSeachFinished;
+ bool isSeachFailed;
+
+ CContactSearch(unsigned int oid, SERootObject* root);
+
+ void OnChange(int prop);
+ void OnNewResult(const ContactRef& contact, const uint& rankValue);
+
+ void SetProtoInfo(CSkypeProto* proto, HANDLE hSearch);
+ void SetOnSearchCompleatedCallback(OnSearchCompleted callback);
+ void SetOnContactFindedCallback(OnContactFinded callback);
+
+ void BlockWhileSearch();
private:
HANDLE hSearch;
CSkypeProto* proto;
- OnSearchCompleted SearchCompletedCallback;
- OnContactFinded ContactFindedCallback;
+ OnSearchCompleted SearchCompletedCallback;
+ OnContactFinded ContactFindedCallback;
};
class CContactGroup : public ContactGroup
@@ -92,36 +92,36 @@ private:
OnContactListChanged callback;
void OnChange(const ContactRef& contact);
-};
-
+};
+
class CAccount : public Account
{
-public:
- typedef void (CSkypeProto::* OnAccountChanged)(int);
-
- typedef DRef<CAccount, Account> Ref;
- typedef DRefs<CAccount, Account> Refs;
-
- bool isLoggedIn;
- bool isLoggedOut;
- LOGOUTREASON logoutReason;
- char logoutReasonString[2048];
-
- CAccount(unsigned int oid, SERootObject* root);
-
- void BlockWhileLoggingIn();
- void BlockWhileLoggingOut();
+public:
+ typedef void (CSkypeProto::* OnAccountChanged)(int);
+
+ typedef DRef<CAccount, Account> Ref;
+ typedef DRefs<CAccount, Account> Refs;
+
+ bool isLoggedIn;
+ bool isLoggedOut;
+ LOGOUTREASON logoutReason;
+ char logoutReasonString[2048];
+
+ CAccount(unsigned int oid, SERootObject* root);
+
+ void BlockWhileLoggingIn();
+ void BlockWhileLoggingOut();
bool IsOnline();
- void SetOnAccountChangedCallback(OnAccountChanged callback, CSkypeProto* proto);
-
-private:
+ void SetOnAccountChangedCallback(OnAccountChanged callback, CSkypeProto* proto);
+
+private:
CSkypeProto* proto;
OnAccountChanged callback;
- void OnChange(int prop);
-};
-
+ void OnChange(int prop);
+};
+
class CSkype : public Skype
{
public: