From 06755382585f8e86e4f6b73e5b97d5d9d35f1908 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Mon, 13 Jul 2026 23:23:49 +0200 Subject: [PATCH] lcd2: more work on light settings. --- avr/devices/c03/main/w_lightsettings.asm | 137 ++++-- avr/modules/lcd2/gui/aqhome/d_light_conns.asm | 167 +------ .../lcd2/gui/aqhome/d_light_settings.asm | 442 ++++++++++++++++++ 3 files changed, 558 insertions(+), 188 deletions(-) create mode 100644 avr/modules/lcd2/gui/aqhome/d_light_settings.asm diff --git a/avr/devices/c03/main/w_lightsettings.asm b/avr/devices/c03/main/w_lightsettings.asm index bf8183d..372010a 100644 --- a/avr/devices/c03/main/w_lightsettings.asm +++ b/avr/devices/c03/main/w_lightsettings.asm @@ -26,12 +26,11 @@ ; selectors .equ LIGHTSETTINGSWIN_SEL_DIALOG_OK = 1 .equ LIGHTSETTINGSWIN_SEL_DIALOG_ABORT = 2 -.equ LIGHTSETTINGSWIN_SEL_NODEADDR = 3 -.equ LIGHTSETTINGSWIN_SEL_LEDCOUNT = 4 -.equ LIGHTSETTINGSWIN_SEL_ONTIME = 5 -.equ LIGHTSETTINGSWIN_SEL_MSRC1 = 6 -.equ LIGHTSETTINGSWIN_SEL_MSRC2 = 7 -.equ LIGHTSETTINGSWIN_SEL_BSRC = 8 +.equ LIGHTSETTINGSWIN_SEL_NAME = 3 +.equ LIGHTSETTINGSWIN_SEL_SUFFIX = 4 +.equ LIGHTSETTINGSWIN_SEL_LEDCOUNT = 5 +.equ LIGHTSETTINGSWIN_SEL_ONTIME = 6 +.equ LIGHTSETTINGSWIN_SEL_CONNECTIONS = 7 @@ -111,41 +110,50 @@ LightSettingsWin_Init_ret: +; --------------------------------------------------------------------------- +; @routine LightSettingsWin_toGui @global +; +; @param Y pointer to dialog + +LightSettingsWin_toGui: + ldd zl, Y+LIGHTSETTINGSWIN_OFFS_SETTINGS_LO + ldd zh, Y+LIGHTSETTINGSWIN_OFFS_SETTINGS_HI + + ; name + ldd xl, Z+LIGHTSETTINGS_OFFS_NAME + clr xh + ldi r16, LIGHTSETTINGSWIN_SEL_NAME + bigcall CDialog_SetChildValue + + ; suffix + ldd xl, Z+LIGHTSETTINGS_OFFS_IDX + clr xh + ldi r16, LIGHTSETTINGSWIN_SEL_SUFFIX + bigcall CDialog_SetChildValue + + ; LED count + ldd xl, Z+LIGHTSETTINGS_OFFS_LEDNUM_LO + ldd xh, Z+LIGHTSETTINGS_OFFS_LEDNUM_HI + ldi r16, LIGHTSETTINGSWIN_SEL_LEDCOUNT + bigcall CDialog_SetChildValue + + ; ON time + ldd xl, Z+LIGHTSETTINGS_OFFS_ONTIME_LO + ldd xh, Z+LIGHTSETTINGS_OFFS_ONTIME_HI + ldi r16, LIGHTSETTINGSWIN_SEL_ONTIME + bigcall CDialog_SetChildValue + + ret +; @end + + + ; *************************************************************************** ; signal handlers -; --------------------------------------------------------------------------- -; @routine LightSettingsWin_OnDestroy @global -; -; @param Y address of object in SDRAM -; @return CFLAG set if signal handled -; @clobbers any, !Y - - -LightSettingsWin_OnDestroy: - ldd xl, Y+LIGHTSETTINGSWIN_OFFS_SETTINGS_LO - ldd xh, Y+LIGHTSETTINGSWIN_OFFS_SETTINGS_HI - mov r16, xl - or r16, xh - breq LightSettingsWin_OnDestroy_done - clr r16 - std Y+LIGHTSETTINGSWIN_OFFS_SETTINGS_LO, r16 - std Y+LIGHTSETTINGSWIN_OFFS_SETTINGS_HI, r16 - bigcall Heap_Free - - ; Clear CFLAG so that destroy handlers of base classes are called - ; after this routine returns. This way the last routine called will be - ; OBJ_OnDestroy which then frees the whole SDRAM object on heap. -LightSettingsWin_OnDestroy_done: - clc - ret -; @end - - - @@ -158,7 +166,8 @@ LightSettingsWin_Config: .dw 0 ; STYLE .db 2, 0 ; PARAM1, PARAM2 - ; line 1, left widget + ; line 1: name + ; left widget .db CWIDGETCFG_WIDGET_TYPE_LABEL, 0 ; TYPE, FLAGS .db 0, 0 ; SELECTOR, RESERVED .db 0, (WIDGET_PACK_BEGIN<