mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-26 12:15:34 +08:00
[feat] Use server to generate transmission id and client id
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
#define REMOTE_WINDOW_HEIGHT_CN 280
|
||||
#define MENU_WINDOW_WIDTH_EN 190
|
||||
#define MENU_WINDOW_HEIGHT_EN 245
|
||||
#define IPUT_WINDOW_WIDTH 190
|
||||
#define IPUT_WINDOW_WIDTH 160
|
||||
#define INPUT_WINDOW_PADDING_CN 66
|
||||
#define INPUT_WINDOW_PADDING_EN 96
|
||||
#define SETTINGS_WINDOW_WIDTH_CN 181
|
||||
|
||||
@@ -47,9 +47,17 @@ int Render::LocalWindow() {
|
||||
ImGui::SetNextItemWidth(IPUT_WINDOW_WIDTH);
|
||||
ImGui::SetWindowFontScale(1.0f);
|
||||
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.0f);
|
||||
|
||||
std::string client_id_show = "";
|
||||
for (int i = 0; i < sizeof(client_id_); i++) {
|
||||
client_id_show += client_id_[i];
|
||||
if (i == 2 || i == 5) {
|
||||
client_id_show += " ";
|
||||
}
|
||||
}
|
||||
|
||||
ImGui::InputText(
|
||||
"##local_id", (char *)mac_addr_str_.c_str(),
|
||||
mac_addr_str_.length() + 1,
|
||||
"##local_id", (char *)client_id_show.c_str(), sizeof(client_id_show),
|
||||
ImGuiInputTextFlags_CharsUppercase | ImGuiInputTextFlags_ReadOnly);
|
||||
ImGui::PopStyleVar();
|
||||
|
||||
@@ -61,7 +69,7 @@ int Render::LocalWindow() {
|
||||
|
||||
if (ImGui::Button(ICON_FA_COPY, ImVec2(35, 38))) {
|
||||
local_id_copied_ = true;
|
||||
ImGui::SetClipboardText(mac_addr_str_.c_str());
|
||||
ImGui::SetClipboardText(client_id_);
|
||||
copy_start_time_ = ImGui::GetTime();
|
||||
}
|
||||
|
||||
|
||||
@@ -61,8 +61,7 @@ int Render::RemoteWindow() {
|
||||
peer_reserved_ = CreatePeer(¶ms_);
|
||||
if (peer_reserved_) {
|
||||
LOG_INFO("Create peer[reserved] instance successful");
|
||||
std::string local_id = "C-" + mac_addr_str_;
|
||||
Init(peer_reserved_, local_id.c_str());
|
||||
Init(peer_reserved_, "");
|
||||
LOG_INFO("Peer[reserved] init finish");
|
||||
} else {
|
||||
LOG_INFO("Create peer[reserved] instance failed");
|
||||
|
||||
@@ -73,6 +73,7 @@ int Render::SaveSettingsIntoCacheFile() {
|
||||
}
|
||||
|
||||
fseek(cd_cache_file_, 0, SEEK_SET);
|
||||
strncpy(cd_cache_.client_id, client_id_, sizeof(client_id_));
|
||||
strncpy(cd_cache_.password, password_saved_.c_str(),
|
||||
password_saved_.length());
|
||||
memcpy(&cd_cache_.language, &language_button_value_,
|
||||
@@ -98,6 +99,8 @@ int Render::LoadSettingsIntoCacheFile() {
|
||||
fseek(cd_cache_file_, 0, SEEK_SET);
|
||||
fread(&cd_cache_, sizeof(cd_cache_), 1, cd_cache_file_);
|
||||
fclose(cd_cache_file_);
|
||||
|
||||
strncpy(client_id_, cd_cache_.client_id, sizeof(client_id_));
|
||||
password_saved_ = cd_cache_.password;
|
||||
language_button_value_ = cd_cache_.language;
|
||||
video_quality_button_value_ = cd_cache_.video_quality;
|
||||
@@ -241,10 +244,9 @@ int Render::CreateConnectionPeer() {
|
||||
|
||||
peer_ = CreatePeer(¶ms_);
|
||||
if (peer_) {
|
||||
LOG_INFO("Create peer instance successful");
|
||||
local_id_ = mac_addr_str_;
|
||||
Init(peer_, local_id_.c_str());
|
||||
LOG_INFO("Peer init finish");
|
||||
LOG_INFO("[{}] Create peer instance successful", client_id_);
|
||||
Init(peer_, client_id_);
|
||||
LOG_INFO("[{}] Peer init finish", client_id_);
|
||||
} else {
|
||||
LOG_INFO("Create peer instance failed");
|
||||
}
|
||||
@@ -396,10 +398,9 @@ int Render::Run() {
|
||||
while (!exit_) {
|
||||
if (SignalStatus::SignalConnected == signal_status_ &&
|
||||
!is_create_connection_) {
|
||||
is_create_connection_ = CreateConnection(peer_, mac_addr_str_.c_str(),
|
||||
password_saved_.c_str())
|
||||
? false
|
||||
: true;
|
||||
is_create_connection_ =
|
||||
CreateConnection(peer_, client_id_, password_saved_.c_str()) ? false
|
||||
: true;
|
||||
LOG_INFO("Connected with signal server, create p2p connection");
|
||||
}
|
||||
|
||||
|
||||
@@ -60,8 +60,9 @@ class Render {
|
||||
|
||||
static void OnConnectionStatusCb(ConnectionStatus status, void *user_data);
|
||||
|
||||
static void NetStatusReport(TraversalMode mode, const unsigned short send,
|
||||
const unsigned short receive, void *user_ptr);
|
||||
static void NetStatusReport(int TransmissionId, TraversalMode mode,
|
||||
const unsigned short send,
|
||||
const unsigned short receive, void *user_data);
|
||||
|
||||
static SDL_HitTestResult HitTestCallback(SDL_Window *window,
|
||||
const SDL_Point *area, void *data);
|
||||
@@ -89,6 +90,7 @@ class Render {
|
||||
|
||||
private:
|
||||
typedef struct {
|
||||
char client_id[10];
|
||||
char password[7];
|
||||
int language;
|
||||
int video_quality;
|
||||
@@ -118,7 +120,6 @@ class Render {
|
||||
char input_password_tmp_[7] = "";
|
||||
char input_password_[7] = "";
|
||||
std::string random_password_ = "";
|
||||
std::string password_saved_ = "";
|
||||
std::string remote_password_ = "";
|
||||
std::string local_id_ = "";
|
||||
char remote_id_[20] = "";
|
||||
@@ -251,6 +252,8 @@ class Render {
|
||||
#endif
|
||||
|
||||
private:
|
||||
char client_id_[10] = "";
|
||||
std::string password_saved_ = "";
|
||||
int language_button_value_ = 0;
|
||||
int video_quality_button_value_ = 0;
|
||||
int video_encode_format_button_value_ = 0;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "device_controller.h"
|
||||
#include "localization.h"
|
||||
#include "rd_log.h"
|
||||
#include "render.h"
|
||||
|
||||
// Refresh Event
|
||||
@@ -230,7 +231,17 @@ void Render::OnConnectionStatusCb(ConnectionStatus status, void *user_data) {
|
||||
}
|
||||
}
|
||||
|
||||
void Render::NetStatusReport(TraversalMode mode, const unsigned short send,
|
||||
const unsigned short receive, void *user_ptr) {
|
||||
printf("Net mode: [%d]\n", mode);
|
||||
void Render::NetStatusReport(int TransmissionId, TraversalMode mode,
|
||||
const unsigned short send,
|
||||
const unsigned short receive, void *user_data) {
|
||||
Render *render = (Render *)user_data;
|
||||
if (TransmissionId != 0) {
|
||||
std::string client_id = std::to_string(TransmissionId);
|
||||
strncpy(render->client_id_, client_id.c_str(), sizeof(client_id));
|
||||
render->SaveSettingsIntoCacheFile();
|
||||
LOG_INFO("Transmission id: [{}]", TransmissionId);
|
||||
}
|
||||
if (mode != TraversalMode::UnknownMode) {
|
||||
LOG_INFO("Net mode: [{}]", int(mode));
|
||||
}
|
||||
}
|
||||
2
thirdparty/projectx
vendored
2
thirdparty/projectx
vendored
Submodule thirdparty/projectx updated: 0edeec3d16...3453d4e0c4
Reference in New Issue
Block a user