ECRESULT ECSessionGroup::GetNotifyItems(struct soap *soap, ECSESSIONID ulSessionId, struct notifyResponse *notifications) { ECRESULT er = erSuccess; /* Start waiting for notifications */ Lock(); /* * Store the session which requested the notifications. * We need this in case the session is removed and the * session must release all calls into ECSessionGroup. */ m_getNotifySession = ulSessionId; /* * Update Session times for all sessions attached to this group. * This prevents any of the sessions to timeout while it was waiting * for notifications for the group. */ UpdateSessionTime(); memset(notifications, 0, sizeof(notifyResponse)); pthread_mutex_lock(&m_hNotificationLock); /* May still be nothing in there, as the signal is also fired when we should exit */ if (!m_listNotification.empty()) { ULONG ulSize = (ULONG)m_listNotification.size(); notifications->pNotificationArray = s_alloc<notificationArray>(soap); notifications->pNotificationArray->__ptr = s_alloc<notification>(soap, ulSize); notifications->pNotificationArray->__size = ulSize; int nPos = 0; for (NOTIFICATIONLIST::iterator i = m_listNotification.begin(); i != m_listNotification.end(); i++) i->GetCopy(soap, notifications->pNotificationArray->__ptr[nPos++]); m_listNotification.clear(); } else { er = ZARAFA_E_NOT_FOUND; } pthread_mutex_unlock(&m_hNotificationLock); /* Reset GetNotifySession */ m_getNotifySession = 0; Unlock(); return er; }
void OBSBasicStatusBar::UpdateStatusBar() { UpdateBandwidth(); UpdateSessionTime(); UpdateDroppedFrames(); int skipped = video_output_get_skipped_frames(obs_get_video()); int total = video_output_get_total_frames(obs_get_video()); skipped -= startSkippedFrameCount; total -= startTotalFrameCount; int diff = skipped - lastSkippedFrameCount; double percentage = double(skipped) / double(total) * 100.0; if (diff && percentage >= 0.1f) showMessage(QTStr("HighResourceUsage"), 4000); lastSkippedFrameCount = skipped; }
void OBSBasicStatusBar::UpdateStatusBar() { UpdateBandwidth(); UpdateSessionTime(); UpdateDroppedFrames(); }