summaryrefslogtreecommitdiff
path: root/protocols/Skype/src/skype_subclassing.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/Skype/src/skype_subclassing.cpp')
-rw-r--r--protocols/Skype/src/skype_subclassing.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/protocols/Skype/src/skype_subclassing.cpp b/protocols/Skype/src/skype_subclassing.cpp
new file mode 100644
index 0000000000..04b4a82b74
--- /dev/null
+++ b/protocols/Skype/src/skype_subclassing.cpp
@@ -0,0 +1,45 @@
+#include "skype_subclassing.h"
+
+Account* CSkype::newAccount(int oid)
+{
+ return new CAccount(oid, this);
+}
+
+CAccount::CAccount(unsigned int oid, SERootObject* root) : Account(oid, root)
+{
+ this->isLoggedOut = true;
+}
+
+void CAccount::OnChange(int prop)
+{
+ if (prop == Account::P_STATUS)
+ {
+ Account::STATUS loginStatus;
+ this->GetPropStatus(loginStatus);
+ if (loginStatus == Account::LOGGED_IN)
+ this->isLoggedOut = false;
+
+ if (loginStatus == Account::LOGGED_OUT)
+ {
+ this->isLoggedOut = true;
+ Account::LOGOUTREASON whyLogout;
+ this->GetPropLogoutreason(whyLogout);
+ /*if (whyLogout != Account::LOGOUT_CALLED)
+ {
+ printf("%s\n", (const char*)tostring(whyLogout));
+ }*/
+ }
+ }
+};
+
+void CAccount::BlockWhileLoggingIn()
+{
+ while (this->isLoggedOut)
+ Sleep(1);
+}
+
+void CAccount::BlockWhileLoggingOut()
+{
+ while ( !this->isLoggedOut)
+ Sleep(1);
+}; \ No newline at end of file