# -*- coding: utf-8 -*- """demo 模块初始化 —— 将业务函数注册到 ServerEnv,供 .dspy/.ui 直接调用。 三处同步注册:① 实现(demo/demo.py) ② 包 __init__.py 导入 ③ 本文件 env.xxx = xxx。 """ from .demo import ( start_demo, stop_demo, switch_camera, pause_demo, update_demo_entity, get_entity_attrs, hotload_script, presence_join, presence_leave, set_fullscreen, get_demo_state, list_active_sessions, DemoParamError, DemoNotFoundError, DemoDuplicateError, DemoStateError, DEMO_CAMERA_MODES, ) def load_demo(env=None): """挂载 demo 模块到宿主应用 ServerEnv(宿主 app/scense.py init() 中调用)。""" if env is None: from ahserver.server_env import ServerEnv env = ServerEnv() env.start_demo = start_demo env.stop_demo = stop_demo env.switch_camera = switch_camera env.pause_demo = pause_demo env.update_demo_entity = update_demo_entity env.get_entity_attrs = get_entity_attrs env.hotload_script = hotload_script env.presence_join = presence_join env.presence_leave = presence_leave env.set_fullscreen = set_fullscreen env.get_demo_state = get_demo_state env.list_active_sessions = list_active_sessions # 异常类型也注册为 dspy 全局,便于 .dspy 按类型映射状态码 env.DemoParamError = DemoParamError env.DemoNotFoundError = DemoNotFoundError env.DemoDuplicateError = DemoDuplicateError env.DemoStateError = DemoStateError env.DEMO_CAMERA_MODES = DEMO_CAMERA_MODES return env