fix: skip unnecessary gets

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
2025-10-18 23:33:24 +01:00
parent 0f5997042c
commit ed7dcd7a52

View File

@@ -97,7 +97,6 @@ fn handle_list(json: bool, device_id: Option<&str>) -> anyhow::Result<()> {
#[derive(Serialize)] #[derive(Serialize)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
pub struct FilmSimulationRepr { pub struct FilmSimulationRepr {
pub slot: FujiCustomSetting,
pub name: FujiCustomSettingName, pub name: FujiCustomSettingName,
pub simulation: FujiFilmSimulation, pub simulation: FujiFilmSimulation,
pub size: FujiImageSize, pub size: FujiImageSize,
@@ -121,7 +120,6 @@ pub struct FilmSimulationRepr {
impl fmt::Display for FilmSimulationRepr { impl fmt::Display for FilmSimulationRepr {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
writeln!(f, "Slot: {}", self.slot)?;
writeln!(f, "Name: {}", self.name)?; writeln!(f, "Name: {}", self.name)?;
writeln!(f, "Simulation: {}", self.simulation)?; writeln!(f, "Simulation: {}", self.simulation)?;
writeln!(f, "Size: {}", self.size)?; writeln!(f, "Size: {}", self.size)?;
@@ -156,7 +154,6 @@ fn handle_get(json: bool, device_id: Option<&str>, slot: FujiCustomSetting) -> a
camera.set_active_custom_setting(slot)?; camera.set_active_custom_setting(slot)?;
let repr = FilmSimulationRepr { let repr = FilmSimulationRepr {
slot,
name: camera.get_custom_setting_name()?, name: camera.get_custom_setting_name()?,
simulation: camera.get_film_simulation()?, simulation: camera.get_film_simulation()?,
size: camera.get_image_size()?, size: camera.get_image_size()?,
@@ -242,15 +239,17 @@ fn handle_set(
} }
// White Balance // White Balance
let white_balance = match &options.white_balance { if let Some(white_balance) = &options.white_balance {
Some(white_balance) => { camera.set_white_balance(*white_balance)?;
camera.set_white_balance(*white_balance)?; }
white_balance
}
None => &camera.get_white_balance()?,
};
if let Some(temperature) = &options.white_balance_temperature { if let Some(temperature) = &options.white_balance_temperature {
let white_balance = if let Some(white_balance) = &options.white_balance {
white_balance
} else {
&camera.get_white_balance()?
};
if *white_balance != FujiWhiteBalance::Temperature { if *white_balance != FujiWhiteBalance::Temperature {
warn!("White Balance mode is not set to 'Temperature', refusing to set temperature") warn!("White Balance mode is not set to 'Temperature', refusing to set temperature")
} else { } else {
@@ -267,35 +266,40 @@ fn handle_set(
} }
// Exposure // Exposure
let dynamic_range_priority = match &options.dynamic_range_priority { if let Some(dynamic_range_priority) = &options.dynamic_range_priority {
Some(dynamic_range_priority) => { camera.set_dynamic_range_priority(*dynamic_range_priority)?;
camera.set_dynamic_range_priority(*dynamic_range_priority)?;
dynamic_range_priority
}
None => &camera.get_dynamic_range_priority()?,
};
if let Some(dynamic_range) = &options.dynamic_range {
if *dynamic_range_priority != FujiDynamicRangePriority::Off {
warn!("Dynamic Range Priority is enabled, refusing to set dynamic range")
} else {
camera.set_dynamic_range(*dynamic_range)?;
}
} }
if let Some(highlights) = &options.highlight { if options.dynamic_range.is_some() || options.highlight.is_some() || options.shadow.is_some() {
if *dynamic_range_priority != FujiDynamicRangePriority::Off { let dynamic_range_priority =
warn!("Dynamic Range Priority is enabled, refusing to set highlight tone") if let Some(dynamic_range_priority) = &options.dynamic_range_priority {
} else { dynamic_range_priority
camera.set_highlight_tone(*highlights)?; } else {
} &camera.get_dynamic_range_priority()?
} };
if let Some(shadows) = &options.shadow { if let Some(dynamic_range) = &options.dynamic_range {
if *dynamic_range_priority != FujiDynamicRangePriority::Off { if *dynamic_range_priority != FujiDynamicRangePriority::Off {
warn!("Dynamic Range Priority is enabled, refusing to set shadow tone") warn!("Dynamic Range Priority is enabled, refusing to set dynamic range")
} else { } else {
camera.set_shadow_tone(*shadows)?; camera.set_dynamic_range(*dynamic_range)?;
}
}
if let Some(highlights) = &options.highlight {
if *dynamic_range_priority != FujiDynamicRangePriority::Off {
warn!("Dynamic Range Priority is enabled, refusing to set highlight tone")
} else {
camera.set_highlight_tone(*highlights)?;
}
}
if let Some(shadows) = &options.shadow {
if *dynamic_range_priority != FujiDynamicRangePriority::Off {
warn!("Dynamic Range Priority is enabled, refusing to set shadow tone")
} else {
camera.set_shadow_tone(*shadows)?;
}
} }
} }