-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(display): Update to support multiple displays #391
Conversation
* Update `espp::Display` to store the `flush` and `rotate` functions and to pass `this` as the context for the lvgl `display` and `event` callback This allows any arbitrary function (including bound class member functions) to be passed for the flush callback and rotate callbacks, instead of requiring that they match the signatures and linkage of the lvgl lower-layer functions. This will enable a follow-up PR which allows the display drivers to no longer be static classes, further enabling multiple displays to be used in a single project. Build and run `esp-box/example`, `t-dongle-s3/example` to ensure the existing code still works.
⚡ Static analysis result ⚡ 🔴 cppcheck found 108 issues! Click here to see details.espp/components/wrover-kit/src/wrover-kit.cpp Lines 21 to 26 in 234bf21
!Line: 21 - style: Parameter 't' can be declared as pointer to const. However it seems that 'lcd_spi_pre_transfer_callback' is a callback function, if 't' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 64 - note: You might need to cast the function pointer here
!Line: 21 - note: Parameter 't' can be declared as pointer to const espp/components/wrover-kit/src/wrover-kit.cpp Lines 31 to 36 in 234bf21
!Line: 31 - style: Parameter 't' can be declared as pointer to const. However it seems that 'lcd_spi_post_transfer_callback' is a callback function, if 't' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 65 - note: You might need to cast the function pointer here
!Line: 31 - note: Parameter 't' can be declared as pointer to const !Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
espp/components/cli/include/line_input.hpp Lines 87 to 92 in 234bf21
!Line: 87 - performance: Function 'get_history()' should return member 'input_history_' by const reference. [returnByReference]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
espp/components/button/example/main/button_example.cpp Lines 34 to 39 in 234bf21
!Line: 34 - style: Variable 'button_component_name' is assigned a value that is never used. [unreadVariable]
espp/components/ft5x06/example/main/ft5x06_example.cpp Lines 13 to 18 in 234bf21
!Line: 13 - style: Variable 'quit_test' is assigned a value that is never used. [unreadVariable]
espp/components/max1704x/example/main/max1704x_example.cpp Lines 28 to 33 in 234bf21
!Line: 28 - style: Unused variable: ec [unusedVariable]
espp/components/ads7138/example/main/ads7138_example.cpp Lines 128 to 133 in 234bf21
!Line: 128 - style: Parameter 'm' can be declared as reference to const [constParameterReference]
espp/components/ads7138/example/main/ads7138_example.cpp Lines 128 to 133 in 234bf21
!Line: 128 - style: Parameter 'cv' can be declared as reference to const [constParameterReference]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
espp/components/chsc6x/example/main/chsc6x_example.cpp Lines 13 to 18 in 234bf21
!Line: 13 - style: Variable 'quit_test' is assigned a value that is never used. [unreadVariable]
espp/components/interrupt/include/interrupt.hpp Lines 410 to 415 in 234bf21
!Line: 410 - style: Parameter 'm' can be declared as reference to const. However it seems that 'task_callback' is a callback function, if 'm' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 176 - note: You might need to cast the function pointer here
!Line: 410 - note: Parameter 'm' can be declared as reference to const espp/components/interrupt/include/interrupt.hpp Lines 410 to 415 in 234bf21
!Line: 410 - style: Parameter 'cv' can be declared as reference to const. However it seems that 'task_callback' is a callback function, if 'cv' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 176 - note: You might need to cast the function pointer here
!Line: 410 - note: Parameter 'cv' can be declared as reference to const espp/components/interrupt/include/interrupt.hpp Lines 410 to 415 in 234bf21
!Line: 410 - style: Parameter 'task_notified' can be declared as reference to const. However it seems that 'task_callback' is a callback function, if 'task_notified' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 176 - note: You might need to cast the function pointer here
!Line: 410 - note: Parameter 'task_notified' can be declared as reference to const espp/components/cst816/example/main/cst816_example.cpp Lines 13 to 18 in 234bf21
!Line: 13 - style: Variable 'quit_test' is assigned a value that is never used. [unreadVariable]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
espp/components/gfps_service/src/nearby_battery.cpp Lines 6 to 11 in 234bf21
!Line: 6 - style: Parameter 'battery_info' can be declared as pointer to const [constParameterPointer]
espp/components/gfps_service/src/nearby_battery.cpp Lines 15 to 18 in 234bf21
!Line: 15 - style: Parameter 'battery_interface' can be declared as pointer to const [constParameterPointer]
espp/components/gfps_service/src/nearby_audio.cpp Lines 66 to 71 in 234bf21
!Line: 66 - style: Parameter 'bitmap' can be declared as pointer to const [constParameterPointer]
espp/components/gfps_service/src/nearby_audio.cpp Lines 66 to 71 in 234bf21
!Line: 66 - style: Parameter 'length' can be declared as pointer to const [constParameterPointer]
espp/components/gfps_service/example/main/gfps_service_example.cpp Lines 24 to 29 in 234bf21
!Line: 24 - style: Parameter 'conn_info' can be declared as reference to const [constParameterReference]
espp/components/gfps_service/example/main/gfps_service_example.cpp Lines 25 to 30 in 234bf21
!Line: 25 - style: Parameter 'conn_info' can be declared as reference to const [constParameterReference]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
!Line: 27 - style: Parameter 'conn_info' can be declared as reference to const [constParameterReference]
!Line: 28 - style: Parameter 'conn_info' can be declared as reference to const [constParameterReference]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
espp/components/hid_service/example/main/hid_service_example.cpp Lines 72 to 77 in 234bf21
!Line: 72 - style: Parameter 'conn_info' can be declared as reference to const [constParameterReference]
espp/components/hid_service/example/main/hid_service_example.cpp Lines 73 to 78 in 234bf21
!Line: 73 - style: Parameter 'conn_info' can be declared as reference to const [constParameterReference]
espp/components/hid-rp/include/hid-rp-switch-pro.hpp Lines 195 to 200 in 234bf21
!Line: 195 - style: Variable 'counter' is assigned an expression that holds the same value. [redundantAssignment]
!Line: 191 - note: prev_counter is assigned 'counter' here.
!Line: 195 - note: Variable 'counter' is assigned an expression that holds the same value. !Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
espp/components/rmt/example/main/rmt_example.cpp Lines 54 to 59 in 234bf21
!Line: 54 - style: Parameter 'ret_state' can be declared as pointer to const [constParameterPointer]
espp/components/tt21100/example/main/tt21100_example.cpp Lines 13 to 18 in 234bf21
!Line: 13 - style: Variable 'quit_test' is assigned a value that is never used. [unreadVariable]
espp/components/t-dongle-s3/src/t-dongle-s3.cpp Lines 128 to 133 in 234bf21
!Line: 128 - style: Parameter 't' can be declared as pointer to const. However it seems that 'lcd_spi_pre_transfer_callback' is a callback function, if 't' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 170 - note: You might need to cast the function pointer here
!Line: 128 - note: Parameter 't' can be declared as pointer to const espp/components/t-dongle-s3/src/t-dongle-s3.cpp Lines 138 to 143 in 234bf21
!Line: 138 - style: Parameter 't' can be declared as pointer to const. However it seems that 'lcd_spi_post_transfer_callback' is a callback function, if 't' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 171 - note: You might need to cast the function pointer here
!Line: 138 - note: Parameter 't' can be declared as pointer to const !Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
espp/components/esp-box/example/main/esp_box_example.cpp Lines 186 to 191 in 234bf21
!Line: 186 - error: syntax error [syntaxError]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
espp/components/esp-box/src/video.cpp Lines 18 to 23 in 234bf21
!Line: 18 - style: Parameter 't' can be declared as pointer to const. However it seems that 'lcd_spi_pre_transfer_callback' is a callback function, if 't' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 60 - note: You might need to cast the function pointer here
!Line: 18 - note: Parameter 't' can be declared as pointer to const espp/components/esp-box/src/video.cpp Lines 28 to 33 in 234bf21
!Line: 28 - style: Parameter 't' can be declared as pointer to const. However it seems that 'lcd_spi_post_transfer_callback' is a callback function, if 't' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 61 - note: You might need to cast the function pointer here
!Line: 28 - note: Parameter 't' can be declared as pointer to const espp/components/gt911/example/main/gt911_example.cpp Lines 13 to 18 in 234bf21
!Line: 13 - style: Variable 'quit_test' is assigned a value that is never used. [unreadVariable]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
espp/components/bm8563/example/main/bm8563_example.cpp Lines 13 to 18 in 234bf21
!Line: 13 - style: Variable 'quit_test' is assigned a value that is never used. [unreadVariable]
espp/components/matouch-rotary-display/src/matouch-rotary-display.cpp Lines 215 to 220 in 234bf21
!Line: 215 - style: Parameter 't' can be declared as pointer to const. However it seems that 'lcd_spi_pre_transfer_callback' is a callback function, if 't' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 257 - note: You might need to cast the function pointer here
!Line: 215 - note: Parameter 't' can be declared as pointer to const espp/components/matouch-rotary-display/src/matouch-rotary-display.cpp Lines 225 to 230 in 234bf21
!Line: 225 - style: Parameter 't' can be declared as pointer to const. However it seems that 'lcd_spi_post_transfer_callback' is a callback function, if 't' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 258 - note: You might need to cast the function pointer here
!Line: 225 - note: Parameter 't' can be declared as pointer to const !Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
espp/components/state_machine/example/main/Complex_generated_states.hpp Lines 656 to 661 in 234bf21
!Line: 656 - style: inconclusive: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ' due to the order of declarations. [initializerList]
!Line: 240 - note: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ' due to the order of declarations.
!Line: 656 - note: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ' due to the order of declarations. espp/components/state_machine/example/main/Complex_generated_states.hpp Lines 657 to 662 in 234bf21
!Line: 657 - style: inconclusive: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__DEEP_HISTORY_PSEUDOSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ' due to the order of declarations. [initializerList]
!Line: 241 - note: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__DEEP_HISTORY_PSEUDOSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ' due to the order of declarations.
!Line: 657 - note: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__DEEP_HISTORY_PSEUDOSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ' due to the order of declarations. espp/components/state_machine/example/main/Complex_generated_states.hpp Lines 658 to 663 in 234bf21
!Line: 658 - style: inconclusive: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE2_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ' due to the order of declarations. [initializerList]
!Line: 242 - note: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE2_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ' due to the order of declarations.
!Line: 658 - note: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE2_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ' due to the order of declarations. espp/components/state_machine/example/main/Complex_generated_states.hpp Lines 659 to 664 in 234bf21
!Line: 659 - style: inconclusive: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE3_OBJ__GRAND_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE3_OBJ' due to the order of declarations. [initializerList]
!Line: 243 - note: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE3_OBJ__GRAND_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE3_OBJ' due to the order of declarations.
!Line: 659 - note: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE3_OBJ__GRAND_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE3_OBJ' due to the order of declarations. espp/components/state_machine/example/main/Complex_generated_states.hpp Lines 660 to 665 in 234bf21
!Line: 660 - style: inconclusive: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE3_OBJ__GRAND2_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE3_OBJ' due to the order of declarations. [initializerList]
!Line: 245 - note: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE3_OBJ__GRAND2_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE3_OBJ' due to the order of declarations.
!Line: 660 - note: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE3_OBJ__GRAND2_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE3_OBJ' due to the order of declarations. espp/components/state_machine/example/main/Complex_generated_states.hpp Lines 661 to 666 in 234bf21
!Line: 661 - style: inconclusive: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE3_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ' due to the order of declarations. [initializerList]
!Line: 247 - note: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE3_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ' due to the order of declarations.
!Line: 661 - note: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__CHILDSTATE3_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ' due to the order of declarations. espp/components/state_machine/example/main/Complex_generated_states.hpp Lines 662 to 667 in 234bf21
!Line: 662 - style: inconclusive: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__SHALLOW_HISTORY_PSEUDOSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ' due to the order of declarations. [initializerList]
!Line: 248 - note: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__SHALLOW_HISTORY_PSEUDOSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ' due to the order of declarations.
!Line: 662 - note: Member variable 'Root::COMPLEX_OBJ__STATE_2_OBJ__SHALLOW_HISTORY_PSEUDOSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE_2_OBJ' due to the order of declarations. espp/components/state_machine/example/main/Complex_generated_states.hpp Lines 664 to 669 in 234bf21
!Line: 664 - style: inconclusive: Member variable 'Root::COMPLEX_OBJ__STATE3_OBJ__CHILDSTATE2_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE3_OBJ' due to the order of declarations. [initializerList]
!Line: 250 - note: Member variable 'Root::COMPLEX_OBJ__STATE3_OBJ__CHILDSTATE2_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE3_OBJ' due to the order of declarations.
!Line: 664 - note: Member variable 'Root::COMPLEX_OBJ__STATE3_OBJ__CHILDSTATE2_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE3_OBJ' due to the order of declarations. espp/components/state_machine/example/main/Complex_generated_states.hpp Lines 665 to 670 in 234bf21
!Line: 665 - style: inconclusive: Member variable 'Root::COMPLEX_OBJ__STATE3_OBJ__SHALLOW_HISTORY_PSEUDOSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE3_OBJ' due to the order of declarations. [initializerList]
!Line: 251 - note: Member variable 'Root::COMPLEX_OBJ__STATE3_OBJ__SHALLOW_HISTORY_PSEUDOSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE3_OBJ' due to the order of declarations.
!Line: 665 - note: Member variable 'Root::COMPLEX_OBJ__STATE3_OBJ__SHALLOW_HISTORY_PSEUDOSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE3_OBJ' due to the order of declarations. espp/components/state_machine/example/main/Complex_generated_states.hpp Lines 666 to 671 in 234bf21
!Line: 666 - style: inconclusive: Member variable 'Root::COMPLEX_OBJ__STATE3_OBJ__DEEP_HISTORY_PSEUDOSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE3_OBJ' due to the order of declarations. [initializerList]
!Line: 252 - note: Member variable 'Root::COMPLEX_OBJ__STATE3_OBJ__DEEP_HISTORY_PSEUDOSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE3_OBJ' due to the order of declarations.
!Line: 666 - note: Member variable 'Root::COMPLEX_OBJ__STATE3_OBJ__DEEP_HISTORY_PSEUDOSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE3_OBJ' due to the order of declarations. espp/components/state_machine/example/main/Complex_generated_states.hpp Lines 667 to 672 in 234bf21
!Line: 667 - style: inconclusive: Member variable 'Root::COMPLEX_OBJ__STATE3_OBJ__CHILDSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE3_OBJ' due to the order of declarations. [initializerList]
!Line: 253 - note: Member variable 'Root::COMPLEX_OBJ__STATE3_OBJ__CHILDSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE3_OBJ' due to the order of declarations.
!Line: 667 - note: Member variable 'Root::COMPLEX_OBJ__STATE3_OBJ__CHILDSTATE_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE3_OBJ' due to the order of declarations. espp/components/state_machine/example/main/Complex_generated_states.hpp Lines 668 to 673 in 234bf21
!Line: 668 - style: inconclusive: Member variable 'Root::COMPLEX_OBJ__STATE3_OBJ__CHILDSTATE3_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE3_OBJ' due to the order of declarations. [initializerList]
!Line: 254 - note: Member variable 'Root::COMPLEX_OBJ__STATE3_OBJ__CHILDSTATE3_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE3_OBJ' due to the order of declarations.
!Line: 668 - note: Member variable 'Root::COMPLEX_OBJ__STATE3_OBJ__CHILDSTATE3_OBJ' uses an uninitialized argument 'COMPLEX_OBJ__STATE3_OBJ' due to the order of declarations.
!Line: 60 - style: The destructor '~Event' overrides a destructor in a base class but is not marked with a 'override' specifier. [missingOverride]
!Line: 43 - note: Virtual destructor in base class
!Line: 60 - note: Destructor in derived class espp/components/state_machine/example/main/hfsm_example.cpp Lines 28 to 33 in 234bf21
!Line: 28 - style: Variable 'e' is assigned a value that is never used. [unreadVariable]
espp/components/state_machine/example/main/hfsm_example.cpp Lines 29 to 34 in 234bf21
!Line: 29 - style: Variable 'handled' is assigned a value that is never used. [unreadVariable]
espp/components/state_machine/example/main/hfsm_example.cpp Lines 91 to 96 in 234bf21
!Line: 91 - style: Variable 'e' is assigned a value that is never used. [unreadVariable]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
espp/components/t-deck/src/t-deck.cpp Lines 245 to 250 in 234bf21
!Line: 245 - style: Parameter 't' can be declared as pointer to const. However it seems that 'lcd_spi_pre_transfer_callback' is a callback function, if 't' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 287 - note: You might need to cast the function pointer here
!Line: 245 - note: Parameter 't' can be declared as pointer to const espp/components/t-deck/src/t-deck.cpp Lines 255 to 260 in 234bf21
!Line: 255 - style: Parameter 't' can be declared as pointer to const. However it seems that 'lcd_spi_post_transfer_callback' is a callback function, if 't' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 288 - note: You might need to cast the function pointer here
!Line: 255 - note: Parameter 't' can be declared as pointer to const !Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
espp/components/task/include/run_on_core.hpp Lines 54 to 59 in 234bf21
!Line: 54 - style: Parameter 'cb_m' can be declared as reference to const [constParameterReference]
espp/components/task/include/run_on_core.hpp Lines 54 to 59 in 234bf21
!Line: 54 - style: Parameter 'cb_cv' can be declared as reference to const [constParameterReference]
espp/components/task/include/run_on_core.hpp Lines 79 to 84 in 234bf21
!Line: 79 - style: Parameter 'cb_m' can be declared as reference to const [constParameterReference]
espp/components/task/include/run_on_core.hpp Lines 79 to 84 in 234bf21
!Line: 79 - style: Parameter 'cb_cv' can be declared as reference to const [constParameterReference]
espp/components/codec/es8311/es8311.cpp Lines 547 to 552 in 234bf21
!Line: 547 - error: syntax error [syntaxError]
!Line: 0 - information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]
espp/components/led_strip/example/main/led_strip_example.cpp Lines 61 to 66 in 234bf21
!Line: 61 - style: Parameter 'ret_state' can be declared as pointer to const [constParameterPointer]
espp/components/adc/include/oneshot_adc.hpp Lines 153 to 158 in 234bf21
!Line: 153 - style: Variable 'conf' can be declared as reference to const [constVariableReference]
espp/components/adc/include/continuous_adc.hpp Lines 173 to 178 in 234bf21
!Line: 173 - style: Parameter 'task_m' can be declared as reference to const. However it seems that 'update_task' is a callback function, if 'task_m' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 66 - note: You might need to cast the function pointer here
!Line: 173 - note: Parameter 'task_m' can be declared as reference to const espp/components/adc/include/continuous_adc.hpp Lines 173 to 178 in 234bf21
!Line: 173 - style: Parameter 'task_cv' can be declared as reference to const. However it seems that 'update_task' is a callback function, if 'task_cv' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 66 - note: You might need to cast the function pointer here
!Line: 173 - note: Parameter 'task_cv' can be declared as reference to const espp/components/adc/include/continuous_adc.hpp Lines 173 to 178 in 234bf21
!Line: 173 - style: Parameter 'task_notified' can be declared as reference to const. However it seems that 'update_task' is a callback function, if 'task_notified' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 66 - note: You might need to cast the function pointer here
!Line: 173 - note: Parameter 'task_notified' can be declared as reference to const espp/components/display_drivers/include/sh8601.hpp Lines 118 to 123 in 234bf21
!Line: 118 - style: Condition 'swap_color_order_' is always false [knownConditionTrueFalse]
espp/components/display_drivers/include/sh8601.hpp Lines 121 to 126 in 234bf21
!Line: 121 - style: Condition 'mirror_x_' is always false [knownConditionTrueFalse]
espp/components/display_drivers/include/sh8601.hpp Lines 124 to 129 in 234bf21
!Line: 124 - style: Condition 'mirror_y_' is always false [knownConditionTrueFalse]
espp/components/display_drivers/include/sh8601.hpp Lines 127 to 132 in 234bf21
!Line: 127 - style: Condition 'swap_xy_' is always false [knownConditionTrueFalse]
espp/components/display_drivers/include/sh8601.hpp Lines 156 to 161 in 234bf21
!Line: 156 - style: Condition 'swap_color_order_' is always false [knownConditionTrueFalse]
espp/components/display_drivers/include/sh8601.hpp Lines 159 to 164 in 234bf21
!Line: 159 - style: Condition 'mirror_x_' is always false [knownConditionTrueFalse]
espp/components/display_drivers/include/sh8601.hpp Lines 162 to 167 in 234bf21
!Line: 162 - style: Condition 'mirror_y_' is always false [knownConditionTrueFalse]
espp/components/display_drivers/include/sh8601.hpp Lines 165 to 170 in 234bf21
!Line: 165 - style: Condition 'swap_xy_' is always false [knownConditionTrueFalse]
espp/components/display_drivers/include/sh8601.hpp Lines 174 to 179 in 234bf21
!Line: 174 - style: Condition 'mirror_portrait_' is always false [knownConditionTrueFalse]
espp/components/display_drivers/include/sh8601.hpp Lines 186 to 191 in 234bf21
!Line: 186 - style: Condition 'mirror_portrait_' is always false [knownConditionTrueFalse]
espp/components/display_drivers/include/sh8601.hpp Lines 117 to 122 in 234bf21
!Line: 117 - style: Variable 'madctl' is assigned a value that is never used. [unreadVariable]
espp/components/display_drivers/include/sh8601.hpp Lines 119 to 124 in 234bf21
!Line: 119 - style: Variable 'madctl' is assigned a value that is never used. [unreadVariable]
espp/components/display_drivers/include/sh8601.hpp Lines 122 to 127 in 234bf21
!Line: 122 - style: Variable 'madctl' is assigned a value that is never used. [unreadVariable]
espp/components/display_drivers/include/sh8601.hpp Lines 125 to 130 in 234bf21
!Line: 125 - style: Variable 'madctl' is assigned a value that is never used. [unreadVariable]
espp/components/display_drivers/include/sh8601.hpp Lines 128 to 133 in 234bf21
!Line: 128 - style: Variable 'madctl' is assigned a value that is never used. [unreadVariable]
!Line: 59 - style: Parameter 't' can be declared as pointer to const. However it seems that 'lcd_spi_pre_transfer_callback' is a callback function, if 't' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 505 - note: You might need to cast the function pointer here
!Line: 59 - note: Parameter 't' can be declared as pointer to const
!Line: 71 - style: Parameter 't' can be declared as pointer to const. However it seems that 'lcd_spi_post_transfer_callback' is a callback function, if 't' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 507 - note: You might need to cast the function pointer here
!Line: 71 - note: Parameter 't' can be declared as pointer to const espp/components/seeed-studio-round-display/example/main/seeed_studio_round_display_example.cpp Lines 152 to 157 in 234bf21
!Line: 152 - style: Parameter 'event' can be declared as pointer to const. However it seems that 'on_clear_pressed' is a callback function, if 'event' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 111 - note: You might need to cast the function pointer here
!Line: 152 - note: Parameter 'event' can be declared as pointer to const espp/components/seeed-studio-round-display/src/seeed-studio-round-display.cpp Lines 175 to 180 in 234bf21
!Line: 175 - style: Parameter 't' can be declared as pointer to const. However it seems that 'lcd_spi_pre_transfer_callback' is a callback function, if 't' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 217 - note: You might need to cast the function pointer here
!Line: 175 - note: Parameter 't' can be declared as pointer to const espp/components/seeed-studio-round-display/src/seeed-studio-round-display.cpp Lines 185 to 190 in 234bf21
!Line: 185 - style: Parameter 't' can be declared as pointer to const. However it seems that 'lcd_spi_post_transfer_callback' is a callback function, if 't' is declared with const you might also need to cast function pointer(s). [constParameterCallback]
!Line: 218 - note: You might need to cast the function pointer here
!Line: 185 - note: Parameter 't' can be declared as pointer to const Lines 16 to 21 in 234bf21
!Line: 16 - style: Parameter 'm' can be declared as reference to const [constParameterReference]
Lines 16 to 21 in 234bf21
!Line: 16 - style: Parameter 'cv' can be declared as reference to const [constParameterReference]
|
Description
espp::Display
to store theflush
androtate
functions and to passthis
as the context for the lvgldisplay
andevent
callbackMotivation and Context
This allows any arbitrary function (including bound class member functions) to be passed for the flush callback and rotate callbacks, instead of requiring that they match the signatures and linkage of the lvgl lower-layer functions. This will enable a follow-up PR which allows the display drivers to no longer be static classes, further enabling multiple displays to be used in a single project.
How has this been tested?
Build and run
esp-box/example
,t-dongle-s3/example
to ensure the existing code still works.Screenshots (if appropriate, e.g. schematic, board, console logs, lab pictures):
Types of changes
Checklist:
Software
.github/workflows/build.yml
file to add my new test to the automated cloud build github action.