bool CScrobbler::HandleSubmission(CStdString &strResponse) { if (strResponse.IsEmpty()) return false; std::vector<CStdString> vecTokens; CUtil::Tokenize(strResponse, vecTokens, " \n\r"); if (vecTokens[0] == "OK") { CLog::Log(LOGDEBUG, "%s: Submission succeeded!", m_strLogPrefix.c_str()); ClearErrorState(); return true; } else if (vecTokens[0] == "BADSESSION") { CLog::Log(LOGDEBUG, "%s: Submission failed! "\ "REASON: Bad session. Forcing new handshake.", m_strLogPrefix.c_str()); ClearSession(); } else if (vecTokens[0] == "FAILED") { CLog::Log(LOGDEBUG, "%s: Submission failed! "\ "REASON: %s", m_strLogPrefix.c_str(), strResponse.c_str()); } else CLog::Log(LOGDEBUG, "%s: Submission failed! "\ "REASON: Unspecified.", m_strLogPrefix.c_str()); return false; }
void CScrobbler::HandleHardError() { CLog::Log(LOGDEBUG, "%s: A hard error has occurred.", m_strLogPrefix.c_str()); if (++m_hardErrorCount == 3) { CLog::Log(LOGDEBUG, "%s: Three consecuetive hard errors have "\ "occured. Forcing new handshake.", m_strLogPrefix.c_str()); ClearSession(); } }
LRESULT CWebinosUI::OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { WTSUnRegisterSessionNotification(m_hWnd); ClearSession(); Shell_NotifyIcon(NIM_DELETE, &m_trayIcon); // unregister message filtering and idle updates CMessageLoop* pLoop = _Module.GetMessageLoop(); ATLASSERT(pLoop != NULL); pLoop->RemoveMessageFilter(this); pLoop->RemoveIdleHandler(this); return 0; }
LRESULT CWebinosUI::OnSessionChange(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { switch( wParam ) { case WTS_CONSOLE_CONNECT: // MessageBox(TEXT("WTS_CONSOLE_CONNECT"), TEXT("WM_WTSSESSION_CHANGE"), MB_OK ); SetSession(); break; case WTS_CONSOLE_DISCONNECT: ClearSession(); // MessageBox(TEXT("WTS_CONSOLE_DISCONNECT"), TEXT("WM_WTSSESSION_CHANGE"), MB_OK ); break; case WTS_SESSION_LOCK: //MessageBox(TEXT("WTS_SESSION_LOCK"), TEXT("WM_WTSSESSION_CHANGE"), MB_OK ); break; case WTS_SESSION_UNLOCK: //MessageBox(TEXT("WTS_SESSION_UNLOCK"), TEXT("WM_WTSSESSION_CHANGE"), MB_OK ); break; default: break; } return 0; }
void CScrobbler::ResetState() { ClearSession(); ClearSubmissionState(); ClearErrorState(); }