FIX: not track dup error for user triggered liveview

Change-Id: I4b744caf14deca3cb6372f44e95aea131a45ec6a
This commit is contained in:
chunmao.guo 2023-07-12 18:18:57 +08:00 committed by Lane.Wei
parent 1797f4ac8e
commit 73c64535c7
2 changed files with 13 additions and 4 deletions

View file

@ -106,6 +106,7 @@ void MediaPlayCtrl::SetMachineObject(MachineObject* obj)
m_disable_lan = false; m_disable_lan = false;
m_failed_retry = 0; m_failed_retry = 0;
m_last_failed_codes.clear(); m_last_failed_codes.clear();
m_last_user_play = wxDateTime::Now();
std::string stream_url; std::string stream_url;
if (get_stream_url(&stream_url)) { if (get_stream_url(&stream_url)) {
m_streaming = boost::algorithm::contains(stream_url, "device=" + m_machine); m_streaming = boost::algorithm::contains(stream_url, "device=" + m_machine);
@ -271,6 +272,7 @@ void MediaPlayCtrl::Stop(wxString const &msg)
j["dev_ip"] = m_lan_ip; j["dev_ip"] = m_lan_ip;
j["result"] = "failed"; j["result"] = "failed";
j["user_triggered"] = m_user_triggered; j["user_triggered"] = m_user_triggered;
j["failed_retry"] = m_failed_retry;
bool remote = m_url.find("/local/") == wxString::npos; bool remote = m_url.find("/local/") == wxString::npos;
j["tunnel"] = remote ? "remote" : "local"; j["tunnel"] = remote ? "remote" : "local";
j["code"] = m_failed_code; j["code"] = m_failed_code;
@ -290,7 +292,10 @@ void MediaPlayCtrl::Stop(wxString const &msg)
if (wxGetApp().show_modal_ip_address_enter_dialog(_L("LAN Connection Failed (Failed to start liveview)"))) { if (wxGetApp().show_modal_ip_address_enter_dialog(_L("LAN Connection Failed (Failed to start liveview)"))) {
m_failed_retry = 0; m_failed_retry = 0;
m_user_triggered = true; m_user_triggered = true;
m_last_failed_codes.clear(); if (m_last_user_play + wxTimeSpan::Minutes(5) < wxDateTime::Now()) {
m_last_failed_codes.clear();
m_last_user_play = wxDateTime::Now();
}
m_next_retry = wxDateTime::Now(); m_next_retry = wxDateTime::Now();
return; return;
} }
@ -309,8 +314,11 @@ void MediaPlayCtrl::TogglePlay()
} else { } else {
m_failed_retry = 0; m_failed_retry = 0;
m_user_triggered = true; m_user_triggered = true;
m_last_failed_codes.clear(); if (m_last_user_play + wxTimeSpan::Minutes(5) < wxDateTime::Now()) {
m_next_retry = wxDateTime::Now(); m_last_failed_codes.clear();
m_last_user_play = wxDateTime::Now();
}
m_next_retry = wxDateTime::Now();
Play(); Play();
} }
} }

View file

@ -91,7 +91,8 @@ private:
int m_failed_retry = 0; int m_failed_retry = 0;
int m_failed_code = 0; int m_failed_code = 0;
std::set<int> m_last_failed_codes; std::set<int> m_last_failed_codes;
wxDateTime m_next_retry; wxDateTime m_last_user_play;
wxDateTime m_next_retry;
::Button *m_button_play; ::Button *m_button_play;
::Label * m_label_status; ::Label * m_label_status;