40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
# -*- 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
|