Mercurial > public > ostc4
diff Discovery/Src/tMenuEditCustom.c @ 981:c6c781a2e85b default
Merge into default
| author | heinrichsweikamp |
|---|---|
| date | Tue, 11 Feb 2025 18:12:00 +0100 |
| parents | e9c37071933b |
| children | d9290c76b840 |
line wrap: on
line diff
--- a/Discovery/Src/tMenuEditCustom.c Tue Aug 13 13:24:54 2024 +0200 +++ b/Discovery/Src/tMenuEditCustom.c Tue Feb 11 18:12:00 2025 +0100 @@ -56,13 +56,16 @@ void openEdit_BigScreen(void); void openEdit_MotionCtrl(void); void openEdit_ViewPort(void); +void openEdit_WarningBuz(void); void refresh_Customviews(void); +void setMenuContentStructure(); char customview_TXT2BYTE_helper(uint8_t customViewId); char customviewBF_TXT2BYTE_helper(uint8_t customViewId); /* Announced function prototypes -----------------------------------------------*/ uint8_t OnAction_CViewTimeout (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); uint8_t OnAction_CViewStandard (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); uint8_t OnAction_CViewStandardBF(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); +uint8_t OnAction_CViewAutofocusBF(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); uint8_t OnAction_CornerTimeout (uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); uint8_t OnAction_CornerStandard(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); uint8_t OnAction_CViewPortCalib(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action); @@ -115,6 +118,15 @@ text[6] = 0; write_label_var( 30, 700, ME_Y_LINE3, &FontT48, text); + /* Bigfont autofocus selector */ + textpointer = 0; + text[textpointer++] = TXT_2BYTE; + text[textpointer++] = TXT2BYTE_ExtraDisplay; + textpointer += snprintf(&text[textpointer],20," %c%c",TXT_2BYTE, TXT2BYTE_Autofocus); + write_label_var( 30, 700, ME_Y_LINE4, &FontT48, text); + + tMenuEdit_refresh_field(StMCustom1_CViewAutoFocusBF); + // field corner return textpointer = 0; text[textpointer++] = TXT_2BYTE; @@ -363,8 +375,14 @@ break; case 4: openEdit_CustomviewDivemode(cv_changelist_BS); break; +#ifdef ENABLE_MOTION_CONTROL case 5: openEdit_ViewPort(); break; +#endif +#ifdef ENABLE_GPIO_V2 + case 5: openEdit_WarningBuz(); + break; +#endif } } @@ -377,14 +395,14 @@ write_field_button(StMCustom1_CViewTimeout, 400, 700, ME_Y_LINE1, &FontT48, ""); write_field_button(StMCustom1_CViewStandard, 400, 700, ME_Y_LINE2, &FontT48, ""); write_field_button(StMCustom1_CViewStandardBF, 400, 700, ME_Y_LINE3, &FontT48, ""); - + write_field_on_off(StMCustom1_CViewAutoFocusBF, 650, 700, ME_Y_LINE4, &FontT48, "", settingsGetPointer()->cvAutofocus); write_field_button(StMCustom1_CornerTimeout, 400, 700, ME_Y_LINE5, &FontT48, ""); write_field_button(StMCustom1_CornerStandard, 400, 700, ME_Y_LINE6, &FontT48, ""); setEvent(StMCustom1_CViewTimeout, (uint32_t)OnAction_CViewTimeout); setEvent(StMCustom1_CViewStandard, (uint32_t)OnAction_CViewStandard); setEvent(StMCustom1_CViewStandardBF, (uint32_t)OnAction_CViewStandardBF); - + setEvent(StMCustom1_CViewAutoFocusBF, (uint32_t)OnAction_CViewAutofocusBF); setEvent(StMCustom1_CornerTimeout, (uint32_t)OnAction_CornerTimeout); setEvent(StMCustom1_CornerStandard, (uint32_t)OnAction_CornerStandard); } @@ -438,6 +456,7 @@ void openEdit_ViewPort(void) { +#ifdef ENABLE_MOTION_CONTROL resetMenuEdit(CLUT_MenuPageCustomView); refresh_ViewPort(); @@ -452,8 +471,22 @@ setEvent(StMCustom5_CViewPortLayout, (uint32_t)OnAction_CViewPortLayout); setEvent(StMCustom5_CViewPortAmbient, (uint32_t)OnAction_CViewPortAmbient); setEvent(StMCustom5_CViewPortControl, (uint32_t)OnAction_CViewPortControl); +#endif } +void openEdit_WarningBuz(void) +{ + SSettings *pSettings = settingsGetPointer(); + if(pSettings->warningBuzzer == 0) + { + pSettings->warningBuzzer = 1; + } + else + { + pSettings->warningBuzzer = 0; + } + exitMenuEdit_to_Menu_with_Menu_Update_do_not_write_settings_for_this_only(); +} char customview_TXT2BYTE_helper(uint8_t customViewId) { @@ -491,6 +524,9 @@ case CVIEW_Timer: text = TXT2BYTE_Timer; break; + case CVIEW_Position: + text = TXT2BYTE_Position; + break; case CVIEW_noneOrDebug: text = TXT2BYTE_DispNoneDbg; break; @@ -522,6 +558,9 @@ text = TXT2BYTE_Profile; break; #endif + case CVIEW_T3_Temperature: + text = TXT2BYTE_AmbientTemperature; + break; case CVIEW_T3_GasList: text = TXT2BYTE_Gaslist; break; @@ -646,6 +685,20 @@ return UPDATE_DIVESETTINGS; } +uint8_t OnAction_CViewAutofocusBF(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) +{ + SSettings *pSettings = settingsGetPointer(); + if(pSettings->cvAutofocus) + { + pSettings->cvAutofocus = 0; + } + else + { + pSettings->cvAutofocus = 1; + } + tMenuEdit_set_on_off(editId, pSettings->cvAutofocus); + return UPDATE_DIVESETTINGS; +} uint8_t OnAction_CornerTimeout(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) { @@ -733,11 +786,20 @@ uint8_t OnAction_Customview_NextPage(uint32_t editId, uint8_t blockNumber, uint8_t digitNumber, uint8_t digitContent, uint8_t action) { + resetMenuContentStructure(); customviewsSubpage++; + if(customviewsSubpage == customviewsSubpageMax) { customviewsSubpage = 0; + setMenuContentStructure(); + tMenuEdit_select(StMCustom3_CViewSelection6); } + else + { + setMenuContentStructure(); + } + CustomviewDivemode_refresh(); return UPDATE_DIVESETTINGS; } @@ -828,45 +890,39 @@ return UPDATE_DIVESETTINGS; } -void openEdit_CustomviewDivemode(const uint8_t* pcv_changelist) +void setMenuContentStructure() { - - SSettings *pSettings = settingsGetPointer(); char text[MAX_PAGE_TEXTSIZE]; uint8_t textPointer = 0; uint32_t id; uint8_t i; - - resetMenuEdit(CLUT_MenuPageCustomView); - customviewsSubpageMax = (tHome_getNumberOfAvailableCVs(pcv_changelist) / CV_PER_PAGE) + 1; + uint8_t endID = CVIEW_END; + SSettings *pSettings = settingsGetPointer(); - if(pcv_curchangelist != pcv_changelist) /* new selection base? => reset page index */ - { - customviewsSubpage = 0; - } - pcv_curchangelist = pcv_changelist; - - CustomviewDivemode_refresh(pcv_changelist); + if(pcv_curchangelist == cv_changelist_BS) + { + endID = CVIEW_T3_END; + } - for(i=0; i<5;i++) /* fill maximum 5 items and leave last one for sub page selection */ - { - textPointer = 0; - id = pcv_changelist[customviewsSubpage * 5 + i]; - if((id == CVIEW_END) || (id == CVIEW_T3_END)) /* last list item? */ - { - break; - } - else - { - if(pcv_changelist == cv_changelist) - { - text[textPointer++] = '\006' - CHECK_BIT_THOME(pSettings->cv_configuration,id); - } - else - { - text[textPointer++] = '\006' - CHECK_BIT_THOME(pSettings->cv_config_BigScreen,id); - } + for(i=0; i<5;i++) /* fill maximum 5 items and leave last one for sub page selection */ + { + textPointer = 0; + id = pcv_curchangelist[customviewsSubpage * 5 + i]; + if(id == endID) /* last list item? */ + { + break; + } + else + { + if(pcv_curchangelist == cv_changelist) + { + text[textPointer++] = '\006' - CHECK_BIT_THOME(pSettings->cv_configuration,id); + } + else + { + text[textPointer++] = '\006' - CHECK_BIT_THOME(pSettings->cv_config_BigScreen,id); + } text[textPointer++] = ' '; textPointer += snprintf(&text[textPointer], 60, "%c%c\n\r", TXT_2BYTE, customview_TXT2BYTE_helper(id)); @@ -885,45 +941,46 @@ default: break; } - } - } - for(;i<5;i++) /* clear empty lines in case menu shows less than 5 entries */ - { - switch(i) - { - case 0: write_label_var( 30, 800, ME_Y_LINE1, &FontT48, ""); - break; - case 1: write_label_var( 30, 800, ME_Y_LINE2, &FontT48, ""); - break; - case 2: write_label_var( 30, 800, ME_Y_LINE3, &FontT48, ""); - break; - case 3: write_label_var( 30, 800, ME_Y_LINE4, &FontT48, ""); - break; - case 4: write_label_var( 30, 800, ME_Y_LINE5, &FontT48, ""); - break; - default: - break; - }; - } - if(customviewsSubpageMax != 1) - { - textPointer = 0; - text[textPointer++] = TXT_2BYTE; - text[textPointer++] = TXT2BYTE_ButtonNext; - text[textPointer] = 0; - write_field_button(StMCustom3_CViewSelection6, 30, 800, ME_Y_LINE6, &FontT48, text); - } + } + } + for(;i<5;i++) /* clear empty lines in case menu shows less than 5 entries */ + { + switch(i) + { + case 0: write_label_var( 30, 800, ME_Y_LINE1, &FontT48, ""); + break; + case 1: write_label_var( 30, 800, ME_Y_LINE2, &FontT48, ""); + break; + case 2: write_label_var( 30, 800, ME_Y_LINE3, &FontT48, ""); + break; + case 3: write_label_var( 30, 800, ME_Y_LINE4, &FontT48, ""); + break; + case 4: write_label_var( 30, 800, ME_Y_LINE5, &FontT48, ""); + break; + default: + break; + }; + } - /* because of the ID handling inside of the functions, all buttons needs to be assigned before the events may be set => have the same loop twice */ - for(i=0; i<5;i++) /* fill maximum 5 items and leave last one for sub page selection */ - { - id = pcv_changelist[customviewsSubpage * 5 + i]; - if((id == CVIEW_END) || (id == CVIEW_T3_END)) /* last list item? */ - { - break; - } - else - { + if(customviewsSubpageMax != 1) + { + textPointer = 0; + text[textPointer++] = TXT_2BYTE; + text[textPointer++] = TXT2BYTE_ButtonNext; + text[textPointer] = 0; + write_field_button(StMCustom3_CViewSelection6, 30, 800, ME_Y_LINE6, &FontT48, text); + } + + /* because of the ID handling inside of the functions, all buttons needs to be assigned before the events may be set => have the same loop twice */ + for(i=0; i<5;i++) /* fill maximum 5 items and leave last one for sub page selection */ + { + id = pcv_curchangelist[customviewsSubpage * 5 + i]; + if(id == endID) /* last list item? */ + { + break; + } + else + { switch(i) { case 0: setEvent(StMCustom3_CViewSelection1, (uint32_t)OnAction_Customview_Toggle); @@ -941,14 +998,27 @@ break; } - } - } - if(customviewsSubpageMax != 1) - { - setEvent(StMCustom3_CViewSelection6,(uint32_t)OnAction_Customview_NextPage); - } + } + } + if(customviewsSubpageMax != 1) + { + setEvent(StMCustom3_CViewSelection6,(uint32_t)OnAction_Customview_NextPage); + } +} +void openEdit_CustomviewDivemode(const uint8_t* pcv_changelist) +{ + resetMenuEdit(CLUT_MenuPageCustomView); + customviewsSubpageMax = (tHome_getNumberOfAvailableCVs(pcv_changelist) / CV_PER_PAGE) + 1; - write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); + if(pcv_curchangelist != pcv_changelist) /* new selection base? => reset page index */ + { + customviewsSubpage = 0; + } + pcv_curchangelist = pcv_changelist; + + setMenuContentStructure(); + + write_buttonTextline(TXT2BYTE_ButtonBack,TXT2BYTE_ButtonEnter,TXT2BYTE_ButtonNext); } void openEdit_CustomviewDivemodeMenu(uint8_t line) @@ -1004,6 +1074,12 @@ uint32_t id; uint8_t i; + uint8_t endID = CVIEW_END; + + if(pcv_curchangelist == cv_changelist_BS) + { + endID = CVIEW_T3_END; + } text[textPointer++] = '\001'; text[textPointer++] = TXT_2BYTE; @@ -1018,7 +1094,7 @@ { textPointer = 0; id = pcv_curchangelist[customviewsSubpage * 5 + i]; - if((id == CVIEW_END) || (id == CVIEW_T3_END)) /* last list item? */ + if(id == endID) /* last list item? */ { break; }
