mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-26 20:25:34 +08:00
[feat] split remote id into chunks of three characters separated by space
This commit is contained in:
@@ -48,16 +48,17 @@ int Render::LocalWindow() {
|
|||||||
ImGui::SetWindowFontScale(1.0f);
|
ImGui::SetWindowFontScale(1.0f);
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0f);
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0f);
|
||||||
|
|
||||||
std::string client_id_show = "";
|
std::string client_id_display = "";
|
||||||
for (int i = 0; i < sizeof(client_id_); i++) {
|
for (int i = 0; i < sizeof(client_id_); i++) {
|
||||||
client_id_show += client_id_[i];
|
client_id_display += client_id_[i];
|
||||||
if (i == 2 || i == 5) {
|
if (i == 2 || i == 5) {
|
||||||
client_id_show += " ";
|
client_id_display += " ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::InputText(
|
ImGui::InputText(
|
||||||
"##local_id", (char *)client_id_show.c_str(), sizeof(client_id_show),
|
"##local_id", (char *)client_id_display.c_str(),
|
||||||
|
sizeof(client_id_display),
|
||||||
ImGuiInputTextFlags_CharsUppercase | ImGuiInputTextFlags_ReadOnly);
|
ImGuiInputTextFlags_CharsUppercase | ImGuiInputTextFlags_ReadOnly);
|
||||||
ImGui::PopStyleVar();
|
ImGui::PopStyleVar();
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,13 @@
|
|||||||
#include "rd_log.h"
|
#include "rd_log.h"
|
||||||
#include "render.h"
|
#include "render.h"
|
||||||
|
|
||||||
|
static int InputTextCallback(ImGuiInputTextCallbackData *data) {
|
||||||
|
if (data->CursorPos == 3 || data->CursorPos == 7) {
|
||||||
|
data->InsertChars(data->CursorPos, " ");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int Render::RemoteWindow() {
|
int Render::RemoteWindow() {
|
||||||
ImGui::SetNextWindowPos(ImVec2(local_window_width_ - 1, title_bar_height_),
|
ImGui::SetNextWindowPos(ImVec2(local_window_width_ - 1, title_bar_height_),
|
||||||
ImGuiCond_Always);
|
ImGuiCond_Always);
|
||||||
@@ -47,9 +54,12 @@ int Render::RemoteWindow() {
|
|||||||
ImGui::SetWindowFontScale(1.0f);
|
ImGui::SetWindowFontScale(1.0f);
|
||||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0f);
|
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0f);
|
||||||
bool enter_pressed = ImGui::InputText(
|
bool enter_pressed = ImGui::InputText(
|
||||||
"##remote_id_", remote_id_, IM_ARRAYSIZE(remote_id_),
|
"##remote_id_", remote_id_display_, IM_ARRAYSIZE(remote_id_display_),
|
||||||
ImGuiInputTextFlags_CharsUppercase | ImGuiInputTextFlags_CharsNoBlank |
|
ImGuiInputTextFlags_CharsUppercase |
|
||||||
ImGuiInputTextFlags_EnterReturnsTrue);
|
ImGuiInputTextFlags_EnterReturnsTrue |
|
||||||
|
ImGuiInputTextFlags_CallbackEdit | ImGuiInputTextFlags_CharsNoBlank,
|
||||||
|
InputTextCallback);
|
||||||
|
|
||||||
ImGui::PopStyleVar();
|
ImGui::PopStyleVar();
|
||||||
ImGui::SameLine();
|
ImGui::SameLine();
|
||||||
if (ImGui::Button(ICON_FA_ARROW_RIGHT_LONG, ImVec2(55, 38)) ||
|
if (ImGui::Button(ICON_FA_ARROW_RIGHT_LONG, ImVec2(55, 38)) ||
|
||||||
@@ -59,7 +69,11 @@ int Render::RemoteWindow() {
|
|||||||
int ret = -1;
|
int ret = -1;
|
||||||
if (signal_connected_) {
|
if (signal_connected_) {
|
||||||
if (!connection_established_) {
|
if (!connection_established_) {
|
||||||
if (0 == strcmp(remote_id_, client_id_) && !peer_reserved_) {
|
remote_id_ = remote_id_display_;
|
||||||
|
remote_id_.erase(remove_if(remote_id_.begin(), remote_id_.end(),
|
||||||
|
static_cast<int (*)(int)>(&isspace)),
|
||||||
|
remote_id_.end());
|
||||||
|
if (0 == strcmp(remote_id_.c_str(), client_id_) && !peer_reserved_) {
|
||||||
peer_reserved_ = CreatePeer(¶ms_);
|
peer_reserved_ = CreatePeer(¶ms_);
|
||||||
if (peer_reserved_) {
|
if (peer_reserved_) {
|
||||||
LOG_INFO("Create peer[reserved] instance successful");
|
LOG_INFO("Create peer[reserved] instance successful");
|
||||||
@@ -72,7 +86,7 @@ int Render::RemoteWindow() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
ret = JoinConnection(peer_reserved_ ? peer_reserved_ : peer_,
|
ret = JoinConnection(peer_reserved_ ? peer_reserved_ : peer_,
|
||||||
remote_id_, remote_password_.c_str());
|
remote_id_.c_str(), remote_password_.c_str());
|
||||||
if (0 == ret) {
|
if (0 == ret) {
|
||||||
is_client_mode_ = true;
|
is_client_mode_ = true;
|
||||||
rejoin_ = false;
|
rejoin_ = false;
|
||||||
|
|||||||
@@ -499,7 +499,8 @@ int Render::Run() {
|
|||||||
LOG_INFO("Return to main interface");
|
LOG_INFO("Return to main interface");
|
||||||
streaming_ = false;
|
streaming_ = false;
|
||||||
LOG_INFO("[{}] Leave connection [{}]", client_id_, remote_id_);
|
LOG_INFO("[{}] Leave connection [{}]", client_id_, remote_id_);
|
||||||
LeaveConnection(peer_reserved_ ? peer_reserved_ : peer_, remote_id_);
|
LeaveConnection(peer_reserved_ ? peer_reserved_ : peer_,
|
||||||
|
remote_id_.c_str());
|
||||||
rejoin_ = false;
|
rejoin_ = false;
|
||||||
memset(audio_buffer_, 0, 960);
|
memset(audio_buffer_, 0, 960);
|
||||||
connection_established_ = false;
|
connection_established_ = false;
|
||||||
|
|||||||
@@ -122,8 +122,8 @@ class Render {
|
|||||||
char input_password_[7] = "";
|
char input_password_[7] = "";
|
||||||
std::string random_password_ = "";
|
std::string random_password_ = "";
|
||||||
std::string remote_password_ = "";
|
std::string remote_password_ = "";
|
||||||
std::string local_id_ = "";
|
char remote_id_display_[12] = "";
|
||||||
char remote_id_[20] = "";
|
std::string remote_id_ = "";
|
||||||
char client_password_[20] = "";
|
char client_password_[20] = "";
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
Reference in New Issue
Block a user