testing video parse
This commit is contained in:
@@ -44,6 +44,42 @@ pub struct LocalUser {
|
||||
avatar_key: String,
|
||||
}
|
||||
|
||||
#[derive(Serialize, Deserialize, Debug)]
|
||||
pub struct VideoConfig {
|
||||
version: String,
|
||||
vendor_id: String,
|
||||
device_id: String,
|
||||
setting_cpu_level: String,
|
||||
setting_gpu_mem_level: String,
|
||||
setting_gpu_level: String,
|
||||
setting_knowndevice: String,
|
||||
setting_defaultres: String,
|
||||
setting_defaultresheight: String,
|
||||
setting_refreshrate_numerator: String,
|
||||
setting_refreshrate_denominator: String,
|
||||
setting_fullscreen: String,
|
||||
setting_coop_fullscreen: String,
|
||||
setting_nowindowborder: String,
|
||||
setting_mat_vsync: String,
|
||||
setting_fullscreen_min_on_focus_loss: String,
|
||||
setting_high_dpi: String,
|
||||
auto_config: String,
|
||||
setting_shaderquality: String,
|
||||
setting_r_texturefilteringquality: String,
|
||||
setting_msaa_samples: String,
|
||||
setting_r_csgo_cmaa_enable: String,
|
||||
setting_videocfg_shadow_quality: String,
|
||||
setting_videocfg_dynamic_shadows: String,
|
||||
setting_videocfg_texture_detail: String,
|
||||
setting_videocfg_particle_detail: String,
|
||||
setting_videocfg_ao_detail: String,
|
||||
setting_videocfg_hdr_detail: String,
|
||||
setting_videocfg_fsr_detail: String,
|
||||
setting_monitor_index: String,
|
||||
setting_r_low_latency: String,
|
||||
setting_aspectratiomode: String,
|
||||
}
|
||||
|
||||
pub fn parse_login_users(steam_dir: &str) -> Result<Vec<LoginUser>> {
|
||||
let t_path = Path::new(steam_dir).join("config/loginusers.vdf");
|
||||
if !t_path.exists() {
|
||||
@@ -270,6 +306,20 @@ fn read_avatar(steam_dir: &str, steam_id64: &str) -> Option<String> {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_cs2_video(file_path: &str) -> Result<HashMap<String, String>> {
|
||||
let data = fs::read_to_string(file_path)?;
|
||||
let json_data = super::parse::to_json(&data);
|
||||
let kv: HashMap<String, String> = serde_json::from_str(&json_data)?;
|
||||
Ok(kv)
|
||||
}
|
||||
|
||||
pub fn set_cs2_video(file_path: &str, data: HashMap<String, String>) -> Result<()> {
|
||||
let json_data = serde_json::to_string(&data)?;
|
||||
let vdf_data = super::parse::to_vdf(&json_data);
|
||||
fs::write(file_path, vdf_data)?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
@@ -279,4 +329,17 @@ mod tests {
|
||||
let users = get_users("D:\\Programs\\Steam").unwrap();
|
||||
println!("{:?}", users);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_get_cs2_video() {
|
||||
let video_config = get_cs2_video("src-tauri/src/vdf/tests/cs2_video.txt").unwrap();
|
||||
println!("{:?}", video_config);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_set_cs2_video() {
|
||||
let mut video_config = HashMap::new();
|
||||
video_config.insert("setting.fullscreen".to_string(), "0".to_string());
|
||||
set_cs2_video("temp/cs2_video.txt", video_config).unwrap();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user