fix: 修复夜神模拟器偶尔截个黑屏的问题

fix https://github.com/MaaAssistantArknights/MaaAssistantArknights/issues/2882
This commit is contained in:
MistEO
2022-11-24 15:04:18 +08:00
parent a7b7e2fe60
commit e2f4cbff29
2 changed files with 8 additions and 2 deletions

View File

@@ -791,6 +791,7 @@ void asst::Controller::clear_info() noexcept
m_minitouch_avaiable = false;
m_scale_size = { WindowWidthDefault, WindowHeightDefault };
m_minitouch_props = decltype(m_minitouch_props)();
m_screencap_data_general_size = 0;
}
void asst::Controller::close_socket() noexcept
@@ -1009,6 +1010,10 @@ bool asst::Controller::screencap(const std::string& cmd, const DecodeFunc& decod
return false;
}
auto& data = ret.value();
if (m_screencap_data_general_size && data.size() < m_screencap_data_general_size * 0.1) {
Log.error("data is too small!");
return false;
}
bool tried_conversion = false;
if (m_adb.screencap_end_of_line == AdbProperty::ScreencapEndOfLine::CRLF) {
@@ -1024,7 +1029,6 @@ bool asst::Controller::screencap(const std::string& cmd, const DecodeFunc& decod
Log.info("screencap_end_of_line is LF");
m_adb.screencap_end_of_line = AdbProperty::ScreencapEndOfLine::LF;
}
return true;
}
else {
Log.info("data is not empty, but image is empty");
@@ -1051,8 +1055,9 @@ bool asst::Controller::screencap(const std::string& cmd, const DecodeFunc& decod
Log.info("screencap_end_of_line is changed to CRLF");
}
m_adb.screencap_end_of_line = AdbProperty::ScreencapEndOfLine::CRLF;
return true;
}
m_screencap_data_general_size = data.size();
return true;
}
void asst::Controller::clear_lf_info()

View File

@@ -187,6 +187,7 @@ namespace asst
bool m_support_socket = false;
bool m_server_started = false;
bool m_inited = false;
size_t m_screencap_data_general_size = 0;
inline static int m_instance_count = 0;