fix: reinit minitouch when reconnect

This commit is contained in:
shxyke
2023-04-11 03:52:26 +00:00
parent d275331fd0
commit 0eaa00cd85
4 changed files with 82 additions and 54 deletions

View File

@@ -89,9 +89,25 @@ bool asst::MinitouchController::call_and_hup_minitouch()
m_minitouch_props.x_scaling = static_cast<double>(m_minitouch_props.max_x) / m_width;
m_minitouch_props.y_scaling = static_cast<double>(m_minitouch_props.max_y) / m_height;
m_minitoucher = std::make_unique<Minitoucher>(
std::bind(&MinitouchController::input_to_minitouch, this, std::placeholders::_1), m_minitouch_props);
return true;
}
std::optional<std::string> asst::MinitouchController::reconnect(const std::string& cmd, int64_t timeout,
bool recv_by_socket)
{
LogTraceFunction;
if (auto ret = asst::AdbController::reconnect(cmd, timeout, recv_by_socket); ret.has_value()) {
call_and_hup_minitouch();
return ret;
}
return std::nullopt;
}
bool asst::MinitouchController::input_to_minitouch(const std::string& cmd)
{
return m_minitouch_handler->write(cmd);
@@ -353,7 +369,5 @@ bool asst::MinitouchController::connect(const std::string& adb_path, const std::
return false;
}
m_minitoucher = std::make_unique<Minitoucher>(
std::bind(&MinitouchController::input_to_minitouch, this, std::placeholders::_1), m_minitouch_props);
return true;
}