迁移 GUI 调用点
This commit is contained in:
@@ -5,7 +5,6 @@ from dataclasses import dataclass
|
||||
|
||||
from app.data_range_converter import convert_pattern_params
|
||||
from app.pq.pq_config import get_pattern
|
||||
from drivers.ucd_helpers import send_solid_rgb_pattern
|
||||
|
||||
|
||||
@dataclass
|
||||
@@ -62,11 +61,11 @@ class PatternService:
|
||||
mode=mode, converted_params=converted_params
|
||||
)
|
||||
self.app.ucd.set_ucd_params(active_config)
|
||||
success = self.app.ucd.apply_signal_format(
|
||||
success = self.app.signal_service.update_signal_format(
|
||||
color_space=self.app.sdr_color_space_var.get(),
|
||||
data_range=data_range,
|
||||
bit_depth=self.app.sdr_bit_depth_var.get(),
|
||||
color_format=self.app.sdr_output_format_var.get(),
|
||||
output_format=self.app.sdr_output_format_var.get(),
|
||||
)
|
||||
if log_details:
|
||||
self._log(f"SDR 信号格式设置{'成功' if success else '失败'}", "success" if success else "error")
|
||||
@@ -94,11 +93,11 @@ class PatternService:
|
||||
mode=mode, converted_params=converted_params
|
||||
)
|
||||
self.app.ucd.set_ucd_params(active_config)
|
||||
success = self.app.ucd.apply_signal_format(
|
||||
success = self.app.signal_service.update_signal_format(
|
||||
color_space=self.app.hdr_color_space_var.get(),
|
||||
data_range=data_range,
|
||||
bit_depth=self.app.hdr_bit_depth_var.get(),
|
||||
color_format=self.app.hdr_output_format_var.get(),
|
||||
output_format=self.app.hdr_output_format_var.get(),
|
||||
max_cll=self.app.hdr_maxcll_var.get(),
|
||||
max_fall=self.app.hdr_maxfall_var.get(),
|
||||
)
|
||||
@@ -135,7 +134,7 @@ class PatternService:
|
||||
log_details=False,
|
||||
)
|
||||
converted_rgb = self._convert_rgb_for_test_type(rgb, active_session.test_type)
|
||||
send_solid_rgb_pattern(self.app.ucd, converted_rgb, raise_on_error=True)
|
||||
self.app.signal_service.send_solid_rgb(converted_rgb)
|
||||
return True
|
||||
|
||||
def _get_source_pattern_params(self, mode):
|
||||
|
||||
@@ -125,6 +125,48 @@ class SignalService:
|
||||
def send_image(self, path: str) -> None:
|
||||
self.send_pattern(image_pattern(path))
|
||||
|
||||
# -- 过渡期 API(Phase 2)-----------------------------------
|
||||
# 现有 GUI 回调以"仅更新信号格式、不切换图案"的方式调用
|
||||
# ``ucd.apply_signal_format(color_space=..., color_format=..., bit_depth=...)``。
|
||||
# 新代码统一通过本方法走 SignalService;内部仍委托给底层
|
||||
# controller 的同名旧接口,迁移完成后将替换为纯净实现。
|
||||
|
||||
def update_signal_format(
|
||||
self,
|
||||
*,
|
||||
color_space: str,
|
||||
output_format: str,
|
||||
bit_depth: str,
|
||||
data_range: str = "Full",
|
||||
max_cll: int | None = None,
|
||||
max_fall: int | None = None,
|
||||
) -> bool:
|
||||
"""仅将信号格式 stage 到 SDK(沿用上一次的 timing),不切换图案。
|
||||
|
||||
UI 字符串先经域层解析做参数校验;解析失败抛 :class:`UcdConfigError`。
|
||||
"""
|
||||
# 解析仅做校验;当前实现走 raw controller 的旧 API
|
||||
_ = build_signal_format(
|
||||
color_space=color_space,
|
||||
output_format=output_format,
|
||||
bit_depth=bit_depth,
|
||||
data_range=data_range,
|
||||
)
|
||||
ctrl = getattr(self._dev, "raw_controller", None)
|
||||
if ctrl is None:
|
||||
raise UcdError("update_signal_format 暂仅支持 UCD323Device")
|
||||
with self._lock:
|
||||
return bool(
|
||||
ctrl.apply_signal_format(
|
||||
color_space=color_space,
|
||||
color_format=output_format,
|
||||
bit_depth=bit_depth,
|
||||
data_range=data_range,
|
||||
max_cll=max_cll,
|
||||
max_fall=max_fall,
|
||||
)
|
||||
)
|
||||
|
||||
# -- 透传给上层的查询 ---------------------------------------
|
||||
|
||||
@property
|
||||
|
||||
Reference in New Issue
Block a user