mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-27 04:35:34 +08:00
[feat] add option 'enable TURN service' in settings menu
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -25,6 +25,11 @@ int ConfigCenter::SetHardwareVideoCodec(bool hardware_video_codec) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ConfigCenter::SetTurn(bool enable_turn) {
|
||||||
|
enable_turn_ = enable_turn;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
ConfigCenter::LANGUAGE ConfigCenter::GetLanguage() { return language_; }
|
ConfigCenter::LANGUAGE ConfigCenter::GetLanguage() { return language_; }
|
||||||
|
|
||||||
ConfigCenter::VIDEO_QUALITY ConfigCenter::GetVideoQuality() {
|
ConfigCenter::VIDEO_QUALITY ConfigCenter::GetVideoQuality() {
|
||||||
@@ -36,3 +41,5 @@ ConfigCenter::VIDEO_ENCODE_FORMAT ConfigCenter::GetVideoEncodeFormat() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool ConfigCenter::IsHardwareVideoCodec() { return hardware_video_codec_; }
|
bool ConfigCenter::IsHardwareVideoCodec() { return hardware_video_codec_; }
|
||||||
|
|
||||||
|
bool ConfigCenter::IsEnableTurn() { return enable_turn_; }
|
||||||
@@ -22,12 +22,14 @@ class ConfigCenter {
|
|||||||
int SetVideoQuality(VIDEO_QUALITY video_quality);
|
int SetVideoQuality(VIDEO_QUALITY video_quality);
|
||||||
int SetVideoEncodeFormat(VIDEO_ENCODE_FORMAT video_encode_format);
|
int SetVideoEncodeFormat(VIDEO_ENCODE_FORMAT video_encode_format);
|
||||||
int SetHardwareVideoCodec(bool hardware_video_codec);
|
int SetHardwareVideoCodec(bool hardware_video_codec);
|
||||||
|
int SetTurn(bool enable_turn);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
LANGUAGE GetLanguage();
|
LANGUAGE GetLanguage();
|
||||||
VIDEO_QUALITY GetVideoQuality();
|
VIDEO_QUALITY GetVideoQuality();
|
||||||
VIDEO_ENCODE_FORMAT GetVideoEncodeFormat();
|
VIDEO_ENCODE_FORMAT GetVideoEncodeFormat();
|
||||||
bool IsHardwareVideoCodec();
|
bool IsHardwareVideoCodec();
|
||||||
|
bool IsEnableTurn();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Default value should be same with parameters in localization.h
|
// Default value should be same with parameters in localization.h
|
||||||
@@ -35,6 +37,7 @@ class ConfigCenter {
|
|||||||
VIDEO_QUALITY video_quality_ = VIDEO_QUALITY::MEDIUM;
|
VIDEO_QUALITY video_quality_ = VIDEO_QUALITY::MEDIUM;
|
||||||
VIDEO_ENCODE_FORMAT video_encode_format_ = VIDEO_ENCODE_FORMAT::AV1;
|
VIDEO_ENCODE_FORMAT video_encode_format_ = VIDEO_ENCODE_FORMAT::AV1;
|
||||||
bool hardware_video_codec_ = false;
|
bool hardware_video_codec_ = false;
|
||||||
|
bool enable_turn_ = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -45,6 +45,8 @@ static std::vector<std::string> av1 = {u8"AV1", "AV1"};
|
|||||||
static std::vector<std::string> h264 = {u8"H.264", "H.264"};
|
static std::vector<std::string> h264 = {u8"H.264", "H.264"};
|
||||||
static std::vector<std::string> enable_hardware_video_codec = {
|
static std::vector<std::string> enable_hardware_video_codec = {
|
||||||
u8"启用硬件编解码器:", "Enable Hardware Video Codec:"};
|
u8"启用硬件编解码器:", "Enable Hardware Video Codec:"};
|
||||||
|
static std::vector<std::string> enable_turn = {u8"启用中继服务:",
|
||||||
|
"Enable TURN Service:"};
|
||||||
|
|
||||||
static std::vector<std::string> ok = {u8"确认", "OK"};
|
static std::vector<std::string> ok = {u8"确认", "OK"};
|
||||||
static std::vector<std::string> cancel = {u8"取消", "Cancel"};
|
static std::vector<std::string> cancel = {u8"取消", "Cancel"};
|
||||||
|
|||||||
@@ -20,8 +20,8 @@
|
|||||||
#define INPUT_WINDOW_PADDING_EN 96
|
#define INPUT_WINDOW_PADDING_EN 96
|
||||||
#define SETTINGS_WINDOW_WIDTH_CN 181
|
#define SETTINGS_WINDOW_WIDTH_CN 181
|
||||||
#define SETTINGS_WINDOW_WIDTH_EN 228
|
#define SETTINGS_WINDOW_WIDTH_EN 228
|
||||||
#define SETTINGS_WINDOW_HEIGHT_CN 190
|
#define SETTINGS_WINDOW_HEIGHT_CN 220
|
||||||
#define SETTINGS_WINDOW_HEIGHT_EN 190
|
#define SETTINGS_WINDOW_HEIGHT_EN 220
|
||||||
#define LANGUAGE_SELECT_WINDOW_PADDING_CN 100
|
#define LANGUAGE_SELECT_WINDOW_PADDING_CN 100
|
||||||
#define LANGUAGE_SELECT_WINDOW_PADDING_EN 147
|
#define LANGUAGE_SELECT_WINDOW_PADDING_EN 147
|
||||||
#define VIDEO_QUALITY_SELECT_WINDOW_PADDING_CN 100
|
#define VIDEO_QUALITY_SELECT_WINDOW_PADDING_CN 100
|
||||||
@@ -30,6 +30,8 @@
|
|||||||
#define VIDEO_ENCODE_FORMAT_SELECT_WINDOW_PADDING_EN 147
|
#define VIDEO_ENCODE_FORMAT_SELECT_WINDOW_PADDING_EN 147
|
||||||
#define ENABLE_HARDWARE_VIDEO_CODEC_CHECKBOX_PADDING_CN 151
|
#define ENABLE_HARDWARE_VIDEO_CODEC_CHECKBOX_PADDING_CN 151
|
||||||
#define ENABLE_HARDWARE_VIDEO_CODEC_CHECKBOX_PADDING_EN 198
|
#define ENABLE_HARDWARE_VIDEO_CODEC_CHECKBOX_PADDING_EN 198
|
||||||
|
#define ENABLE_TURN_CHECKBOX_PADDING_CN 151
|
||||||
|
#define ENABLE_TURN_CHECKBOX_PADDING_EN 198
|
||||||
#define SETTINGS_SELECT_WINDOW_WIDTH 73
|
#define SETTINGS_SELECT_WINDOW_WIDTH 73
|
||||||
#define SETTINGS_OK_BUTTON_PADDING_CN 55
|
#define SETTINGS_OK_BUTTON_PADDING_CN 55
|
||||||
#define SETTINGS_OK_BUTTON_PADDING_EN 78
|
#define SETTINGS_OK_BUTTON_PADDING_EN 78
|
||||||
|
|||||||
@@ -275,7 +275,7 @@ int Render::CreateConnectionPeer() {
|
|||||||
ConfigCenter::VIDEO_ENCODE_FORMAT::AV1
|
ConfigCenter::VIDEO_ENCODE_FORMAT::AV1
|
||||||
? true
|
? true
|
||||||
: false;
|
: false;
|
||||||
params_.enable_turn = false;
|
params_.enable_turn = config_center_.IsEnableTurn();
|
||||||
params_.on_receive_video_buffer = OnReceiveVideoBufferCb;
|
params_.on_receive_video_buffer = OnReceiveVideoBufferCb;
|
||||||
params_.on_receive_audio_buffer = OnReceiveAudioBufferCb;
|
params_.on_receive_audio_buffer = OnReceiveAudioBufferCb;
|
||||||
params_.on_receive_data_buffer = OnReceiveDataBufferCb;
|
params_.on_receive_data_buffer = OnReceiveDataBufferCb;
|
||||||
|
|||||||
@@ -258,11 +258,13 @@ class Render {
|
|||||||
int video_quality_button_value_ = 0;
|
int video_quality_button_value_ = 0;
|
||||||
int video_encode_format_button_value_ = 0;
|
int video_encode_format_button_value_ = 0;
|
||||||
bool enable_hardware_video_codec_ = false;
|
bool enable_hardware_video_codec_ = false;
|
||||||
|
bool enable_turn_ = false;
|
||||||
|
|
||||||
int language_button_value_last_ = 0;
|
int language_button_value_last_ = 0;
|
||||||
int video_quality_button_value_last_ = 0;
|
int video_quality_button_value_last_ = 0;
|
||||||
int video_encode_format_button_value_last_ = 0;
|
int video_encode_format_button_value_last_ = 0;
|
||||||
bool enable_hardware_video_codec_last_ = false;
|
bool enable_hardware_video_codec_last_ = false;
|
||||||
|
bool enable_turn_last_ = false;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::atomic<bool> start_screen_capture_{false};
|
std::atomic<bool> start_screen_capture_{false};
|
||||||
|
|||||||
@@ -141,12 +141,29 @@ int Render::SettingWindow() {
|
|||||||
&enable_hardware_video_codec_);
|
&enable_hardware_video_codec_);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
|
||||||
|
{
|
||||||
|
ImGui::SetCursorPosY(152);
|
||||||
|
ImGui::Text(
|
||||||
|
"%s",
|
||||||
|
localization::enable_turn[localization_language_index_].c_str());
|
||||||
|
|
||||||
|
if (ConfigCenter::LANGUAGE::CHINESE == localization_language_) {
|
||||||
|
ImGui::SetCursorPosX(ENABLE_TURN_CHECKBOX_PADDING_CN);
|
||||||
|
} else {
|
||||||
|
ImGui::SetCursorPosX(ENABLE_TURN_CHECKBOX_PADDING_EN);
|
||||||
|
}
|
||||||
|
ImGui::SetCursorPosY(150);
|
||||||
|
ImGui::Checkbox("##enable_turn", &enable_turn_);
|
||||||
|
}
|
||||||
|
|
||||||
if (ConfigCenter::LANGUAGE::CHINESE == localization_language_) {
|
if (ConfigCenter::LANGUAGE::CHINESE == localization_language_) {
|
||||||
ImGui::SetCursorPosX(SETTINGS_OK_BUTTON_PADDING_CN);
|
ImGui::SetCursorPosX(SETTINGS_OK_BUTTON_PADDING_CN);
|
||||||
} else {
|
} else {
|
||||||
ImGui::SetCursorPosX(SETTINGS_OK_BUTTON_PADDING_EN);
|
ImGui::SetCursorPosX(SETTINGS_OK_BUTTON_PADDING_EN);
|
||||||
}
|
}
|
||||||
ImGui::SetCursorPosY(160.0f);
|
ImGui::SetCursorPosY(190.0f);
|
||||||
ImGui::PopStyleVar();
|
ImGui::PopStyleVar();
|
||||||
|
|
||||||
// OK
|
// OK
|
||||||
@@ -195,6 +212,14 @@ int Render::SettingWindow() {
|
|||||||
}
|
}
|
||||||
enable_hardware_video_codec_last_ = enable_hardware_video_codec_;
|
enable_hardware_video_codec_last_ = enable_hardware_video_codec_;
|
||||||
|
|
||||||
|
// TURN mode
|
||||||
|
if (enable_turn_) {
|
||||||
|
config_center_.SetTurn(true);
|
||||||
|
} else {
|
||||||
|
config_center_.SetTurn(false);
|
||||||
|
}
|
||||||
|
enable_turn_last_ = enable_turn_;
|
||||||
|
|
||||||
SaveSettingsIntoCacheFile();
|
SaveSettingsIntoCacheFile();
|
||||||
settings_window_pos_reset_ = true;
|
settings_window_pos_reset_ = true;
|
||||||
|
|
||||||
@@ -233,6 +258,10 @@ int Render::SettingWindow() {
|
|||||||
enable_hardware_video_codec_ = enable_hardware_video_codec_last_;
|
enable_hardware_video_codec_ = enable_hardware_video_codec_last_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (enable_turn_ != enable_turn_last_) {
|
||||||
|
enable_turn_ = enable_turn_last_;
|
||||||
|
}
|
||||||
|
|
||||||
settings_window_pos_reset_ = true;
|
settings_window_pos_reset_ = true;
|
||||||
}
|
}
|
||||||
ImGui::SetWindowFontScale(1.0f);
|
ImGui::SetWindowFontScale(1.0f);
|
||||||
|
|||||||
2
thirdparty/projectx
vendored
2
thirdparty/projectx
vendored
Submodule thirdparty/projectx updated: 98bd477af5...fd392922d7
Reference in New Issue
Block a user