mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-26 20:25:34 +08:00
Fix settings button value mismatch
This commit is contained in:
@@ -20,6 +20,11 @@ int ConfigCenter::SetVideoEncodeFormat(
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ConfigCenter::SetHardwareVideoCodec(bool hardware_video_codec) {
|
||||||
|
hardware_video_codec_ = hardware_video_codec;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
ConfigCenter::LANGUAGE ConfigCenter::GetLanguage() { return language_; }
|
ConfigCenter::LANGUAGE ConfigCenter::GetLanguage() { return language_; }
|
||||||
|
|
||||||
ConfigCenter::VIDEO_QUALITY ConfigCenter::GetVideoQuality() {
|
ConfigCenter::VIDEO_QUALITY ConfigCenter::GetVideoQuality() {
|
||||||
@@ -29,3 +34,5 @@ ConfigCenter::VIDEO_QUALITY ConfigCenter::GetVideoQuality() {
|
|||||||
ConfigCenter::VIDEO_ENCODE_FORMAT ConfigCenter::GetVideoEncodeFormat() {
|
ConfigCenter::VIDEO_ENCODE_FORMAT ConfigCenter::GetVideoEncodeFormat() {
|
||||||
return video_encode_format_;
|
return video_encode_format_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool ConfigCenter::IsHardwareVideoCodec() { return hardware_video_codec_; }
|
||||||
@@ -21,16 +21,20 @@ class ConfigCenter {
|
|||||||
int SetLanguage(LANGUAGE language);
|
int SetLanguage(LANGUAGE language);
|
||||||
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);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
LANGUAGE GetLanguage();
|
LANGUAGE GetLanguage();
|
||||||
VIDEO_QUALITY GetVideoQuality();
|
VIDEO_QUALITY GetVideoQuality();
|
||||||
VIDEO_ENCODE_FORMAT GetVideoEncodeFormat();
|
VIDEO_ENCODE_FORMAT GetVideoEncodeFormat();
|
||||||
|
bool IsHardwareVideoCodec();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Default value should be same with parameters in localization.h
|
||||||
LANGUAGE language_ = LANGUAGE::CHINESE;
|
LANGUAGE language_ = LANGUAGE::CHINESE;
|
||||||
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;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
@@ -45,9 +45,10 @@ int MainWindow::SaveSettingsIntoCacheFile() {
|
|||||||
sizeof(language_button_value_));
|
sizeof(language_button_value_));
|
||||||
memcpy(&cd_cache_.video_quality, &video_quality_button_value_,
|
memcpy(&cd_cache_.video_quality, &video_quality_button_value_,
|
||||||
sizeof(video_quality_button_value_));
|
sizeof(video_quality_button_value_));
|
||||||
memcpy(&cd_cache_.video_encode_format,
|
memcpy(&cd_cache_.video_encode_format, &video_encode_format_button_value_,
|
||||||
&video_video_encode_format_button_value_,
|
sizeof(video_encode_format_button_value_));
|
||||||
sizeof(video_video_encode_format_button_value_));
|
memcpy(&cd_cache_.enable_hardware_video_codec, &enable_hardware_video_codec_,
|
||||||
|
sizeof(enable_hardware_video_codec_));
|
||||||
memcpy(&cd_cache_.settings_language_pos, &settings_language_pos_,
|
memcpy(&cd_cache_.settings_language_pos, &settings_language_pos_,
|
||||||
sizeof(settings_language_pos_));
|
sizeof(settings_language_pos_));
|
||||||
memcpy(&cd_cache_.settings_video_quality_pos, &settings_video_quality_pos_,
|
memcpy(&cd_cache_.settings_video_quality_pos, &settings_video_quality_pos_,
|
||||||
@@ -55,6 +56,9 @@ int MainWindow::SaveSettingsIntoCacheFile() {
|
|||||||
memcpy(&cd_cache_.settings_video_encode_format_pos,
|
memcpy(&cd_cache_.settings_video_encode_format_pos,
|
||||||
&settings_video_encode_format_pos_,
|
&settings_video_encode_format_pos_,
|
||||||
sizeof(settings_video_encode_format_pos_));
|
sizeof(settings_video_encode_format_pos_));
|
||||||
|
memcpy(&cd_cache_.settings_enable_hardware_video_codec_pos,
|
||||||
|
&settings_enable_hardware_video_codec_pos_,
|
||||||
|
sizeof(settings_enable_hardware_video_codec_pos_));
|
||||||
fwrite(&cd_cache_, sizeof(cd_cache_), 1, cd_cache_file_);
|
fwrite(&cd_cache_, sizeof(cd_cache_), 1, cd_cache_file_);
|
||||||
fclose(cd_cache_file_);
|
fclose(cd_cache_file_);
|
||||||
|
|
||||||
@@ -73,11 +77,14 @@ int MainWindow::LoadSettingsIntoCacheFile() {
|
|||||||
strncpy(input_password_, cd_cache_.password, sizeof(cd_cache_.password));
|
strncpy(input_password_, cd_cache_.password, sizeof(cd_cache_.password));
|
||||||
language_button_value_ = cd_cache_.language;
|
language_button_value_ = cd_cache_.language;
|
||||||
video_quality_button_value_ = cd_cache_.video_quality;
|
video_quality_button_value_ = cd_cache_.video_quality;
|
||||||
video_video_encode_format_button_value_ = cd_cache_.video_encode_format;
|
video_encode_format_button_value_ = cd_cache_.video_encode_format;
|
||||||
|
enable_hardware_video_codec_ = cd_cache_.enable_hardware_video_codec;
|
||||||
settings_language_pos_ = cd_cache_.settings_language_pos;
|
settings_language_pos_ = cd_cache_.settings_language_pos;
|
||||||
settings_video_quality_pos_ = cd_cache_.settings_video_quality_pos;
|
settings_video_quality_pos_ = cd_cache_.settings_video_quality_pos;
|
||||||
settings_video_encode_format_pos_ =
|
settings_video_encode_format_pos_ =
|
||||||
cd_cache_.settings_video_encode_format_pos;
|
cd_cache_.settings_video_encode_format_pos;
|
||||||
|
settings_enable_hardware_video_codec_pos_ =
|
||||||
|
cd_cache_.settings_enable_hardware_video_codec_pos;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -264,8 +271,11 @@ int MainWindow::Run() {
|
|||||||
params_.turn_server_port = 3478;
|
params_.turn_server_port = 3478;
|
||||||
params_.turn_server_username = "dijunkun";
|
params_.turn_server_username = "dijunkun";
|
||||||
params_.turn_server_password = "dijunkunpw";
|
params_.turn_server_password = "dijunkunpw";
|
||||||
params_.hardware_acceleration = false;
|
params_.hardware_acceleration = config_center_.IsHardwareVideoCodec();
|
||||||
params_.av1_encoding = true;
|
params_.av1_encoding = config_center_.GetVideoEncodeFormat() ==
|
||||||
|
ConfigCenter::VIDEO_ENCODE_FORMAT::AV1
|
||||||
|
? true
|
||||||
|
: false;
|
||||||
#endif
|
#endif
|
||||||
params_.on_receive_video_buffer = OnReceiveVideoBufferCb;
|
params_.on_receive_video_buffer = OnReceiveVideoBufferCb;
|
||||||
params_.on_receive_audio_buffer = OnReceiveAudioBufferCb;
|
params_.on_receive_audio_buffer = OnReceiveAudioBufferCb;
|
||||||
@@ -594,7 +604,8 @@ int MainWindow::Run() {
|
|||||||
ImGui::SetCursorPosX(settings_video_encode_format_pos_);
|
ImGui::SetCursorPosX(settings_video_encode_format_pos_);
|
||||||
ImGui::SetCursorPosY(90);
|
ImGui::SetCursorPosY(90);
|
||||||
ImGui::SetNextItemWidth(80);
|
ImGui::SetNextItemWidth(80);
|
||||||
ImGui::Combo("##video_encode_format", &language_button_value_,
|
ImGui::Combo("##video_encode_format",
|
||||||
|
&video_encode_format_button_value_,
|
||||||
video_encode_format_items,
|
video_encode_format_items,
|
||||||
IM_ARRAYSIZE(video_encode_format_items));
|
IM_ARRAYSIZE(video_encode_format_items));
|
||||||
}
|
}
|
||||||
@@ -606,10 +617,10 @@ int MainWindow::Run() {
|
|||||||
ImGui::Text(localization::enable_hardware_video_codec
|
ImGui::Text(localization::enable_hardware_video_codec
|
||||||
[localization_language_index_]
|
[localization_language_index_]
|
||||||
.c_str());
|
.c_str());
|
||||||
ImGui::SetCursorPosX(settings_enable_video_codec_pos_);
|
ImGui::SetCursorPosX(settings_enable_hardware_video_codec_pos_);
|
||||||
ImGui::SetCursorPosY(120);
|
ImGui::SetCursorPosY(120);
|
||||||
ImGui::Checkbox("##enable_hardware_video_codec",
|
ImGui::Checkbox("##enable_hardware_video_codec",
|
||||||
&enable_video_codec_);
|
&enable_hardware_video_codec_);
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::SetCursorPosX(60.0f);
|
ImGui::SetCursorPosX(60.0f);
|
||||||
@@ -627,14 +638,14 @@ int MainWindow::Run() {
|
|||||||
settings_video_quality_pos_ = settings_video_quality_pos_default_;
|
settings_video_quality_pos_ = settings_video_quality_pos_default_;
|
||||||
settings_video_encode_format_pos_ =
|
settings_video_encode_format_pos_ =
|
||||||
settings_video_encode_format_pos_default_;
|
settings_video_encode_format_pos_default_;
|
||||||
settings_enable_video_codec_pos_ =
|
settings_enable_hardware_video_codec_pos_ =
|
||||||
settings_enable_video_codec_pos_default_;
|
settings_enable_hardware_video_codec_pos_default_;
|
||||||
} else {
|
} else {
|
||||||
config_center_.SetLanguage(ConfigCenter::LANGUAGE::ENGLISH);
|
config_center_.SetLanguage(ConfigCenter::LANGUAGE::ENGLISH);
|
||||||
settings_language_pos_ = 140.0f;
|
settings_language_pos_ = 140.0f;
|
||||||
settings_video_quality_pos_ = 140.0f;
|
settings_video_quality_pos_ = 140.0f;
|
||||||
settings_video_encode_format_pos_ = 140.0f;
|
settings_video_encode_format_pos_ = 140.0f;
|
||||||
settings_enable_video_codec_pos_ = 201.0f;
|
settings_enable_hardware_video_codec_pos_ = 201.0f;
|
||||||
}
|
}
|
||||||
language_button_value_last_ = language_button_value_;
|
language_button_value_last_ = language_button_value_;
|
||||||
localization_language_ =
|
localization_language_ =
|
||||||
@@ -659,15 +670,23 @@ int MainWindow::Run() {
|
|||||||
video_quality_button_value_last_ = video_quality_button_value_;
|
video_quality_button_value_last_ = video_quality_button_value_;
|
||||||
|
|
||||||
// Video encode format
|
// Video encode format
|
||||||
if (video_video_encode_format_button_value_ == 0) {
|
if (video_encode_format_button_value_ == 0) {
|
||||||
config_center_.SetVideoEncodeFormat(
|
config_center_.SetVideoEncodeFormat(
|
||||||
ConfigCenter::VIDEO_ENCODE_FORMAT::AV1);
|
ConfigCenter::VIDEO_ENCODE_FORMAT::AV1);
|
||||||
} else if (video_quality_button_value_ == 1) {
|
} else if (video_quality_button_value_ == 1) {
|
||||||
config_center_.SetVideoEncodeFormat(
|
config_center_.SetVideoEncodeFormat(
|
||||||
ConfigCenter::VIDEO_ENCODE_FORMAT::H264);
|
ConfigCenter::VIDEO_ENCODE_FORMAT::H264);
|
||||||
}
|
}
|
||||||
video_video_encode_format_button_value_last_ =
|
video_encode_format_button_value_last_ =
|
||||||
video_video_encode_format_button_value_;
|
video_encode_format_button_value_;
|
||||||
|
|
||||||
|
// Hardware video codec
|
||||||
|
if (enable_hardware_video_codec_) {
|
||||||
|
config_center_.SetHardwareVideoCodec(true);
|
||||||
|
} else {
|
||||||
|
config_center_.SetHardwareVideoCodec(false);
|
||||||
|
}
|
||||||
|
enable_hardware_video_codec_last_ = enable_hardware_video_codec_;
|
||||||
|
|
||||||
SaveSettingsIntoCacheFile();
|
SaveSettingsIntoCacheFile();
|
||||||
// To do: set encode resolution
|
// To do: set encode resolution
|
||||||
@@ -686,11 +705,17 @@ int MainWindow::Run() {
|
|||||||
video_quality_button_value_ = video_quality_button_value_last_;
|
video_quality_button_value_ = video_quality_button_value_last_;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (video_video_encode_format_button_value_ !=
|
if (video_encode_format_button_value_ !=
|
||||||
video_video_encode_format_button_value_last_) {
|
video_encode_format_button_value_last_) {
|
||||||
video_video_encode_format_button_value_ =
|
video_encode_format_button_value_ =
|
||||||
video_video_encode_format_button_value_last_;
|
video_encode_format_button_value_last_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (enable_hardware_video_codec_ !=
|
||||||
|
enable_hardware_video_codec_last_) {
|
||||||
|
enable_hardware_video_codec_ = enable_hardware_video_codec_last_;
|
||||||
|
}
|
||||||
|
|
||||||
settings_window_pos_reset_ = true;
|
settings_window_pos_reset_ = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -67,9 +67,11 @@ class MainWindow {
|
|||||||
int language;
|
int language;
|
||||||
int video_quality;
|
int video_quality;
|
||||||
int video_encode_format;
|
int video_encode_format;
|
||||||
|
bool enable_hardware_video_codec;
|
||||||
float settings_language_pos;
|
float settings_language_pos;
|
||||||
float settings_video_quality_pos;
|
float settings_video_quality_pos;
|
||||||
float settings_video_encode_format_pos;
|
float settings_video_encode_format_pos;
|
||||||
|
float settings_enable_hardware_video_codec_pos;
|
||||||
} CDCache;
|
} CDCache;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -162,23 +164,24 @@ class MainWindow {
|
|||||||
float settings_language_pos_default_ = 100.0f;
|
float settings_language_pos_default_ = 100.0f;
|
||||||
float settings_video_quality_pos_default_ = 100.0f;
|
float settings_video_quality_pos_default_ = 100.0f;
|
||||||
float settings_video_encode_format_pos_default_ = 100.0f;
|
float settings_video_encode_format_pos_default_ = 100.0f;
|
||||||
float settings_enable_video_codec_pos_default_ = 161.0f;
|
float settings_enable_hardware_video_codec_pos_default_ = 161.0f;
|
||||||
|
|
||||||
float settings_language_pos_ = settings_language_pos_default_;
|
float settings_language_pos_ = settings_language_pos_default_;
|
||||||
float settings_video_quality_pos_ = settings_video_quality_pos_default_;
|
float settings_video_quality_pos_ = settings_video_quality_pos_default_;
|
||||||
float settings_video_encode_format_pos_ =
|
float settings_video_encode_format_pos_ =
|
||||||
settings_video_encode_format_pos_default_;
|
settings_video_encode_format_pos_default_;
|
||||||
float settings_enable_video_codec_pos_ =
|
float settings_enable_hardware_video_codec_pos_ =
|
||||||
settings_enable_video_codec_pos_default_;
|
settings_enable_hardware_video_codec_pos_default_;
|
||||||
|
|
||||||
int language_button_value_ = 0;
|
int language_button_value_ = 0;
|
||||||
int video_quality_button_value_ = 0;
|
int video_quality_button_value_ = 0;
|
||||||
int video_video_encode_format_button_value_ = 0;
|
int video_encode_format_button_value_ = 0;
|
||||||
|
bool enable_hardware_video_codec_ = 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_video_encode_format_button_value_last_ = 0;
|
int video_encode_format_button_value_last_ = 0;
|
||||||
bool enable_video_codec_ = false;
|
bool enable_hardware_video_codec_last_ = false;
|
||||||
bool enable_video_codec_last_ = false;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::atomic<bool> start_screen_capture_{false};
|
std::atomic<bool> start_screen_capture_{false};
|
||||||
|
|||||||
Reference in New Issue
Block a user