LCOV - code coverage report
Current view: top level - AP_Scripting - AP_Scripting_CRSFMenu.h (source / functions) Hit Total Coverage
Test: lcov.info Lines: 0 10 0.0 %
Date: 2026-09-09 11:02:08 Functions: 0 10 0.0 %

          Line data    Source code
       1             : #pragma once
       2             : 
       3             : #include <AP_RCTelemetry/AP_CRSF_Telem.h>
       4             : #include "lua/src/lua.hpp"
       5             : 
       6             : #if AP_CRSF_SCRIPTING_ENABLED
       7             : 
       8             : int lua_CRSF_new_menu(lua_State *L);
       9             : int lua_CRSF_get_menu_event(lua_State *L);
      10             : int lua_CRSF_peek_menu_event(lua_State *L);
      11             : int lua_CRSF_send_response(lua_State *L);
      12             : int lua_CRSF_add_parameter(lua_State *L);
      13             : int lua_CRSF_add_menu(lua_State *L);
      14             : int lua_CRSF_add_root_menu(lua_State *L);
      15             : int lua_CRSF_param_data(lua_State *L);
      16             : 
      17             : // wrappers to underlying CRSF menu and parameter types that mean the 
      18             : // underlying data is always the actual data rather than a copy
      19             : class CRSFParameter {
      20             : public:
      21           0 :     CRSFParameter() {}
      22           0 :     CRSFParameter(AP_CRSF_Telem::ScriptedMenu* m, AP_CRSF_Telem::ScriptedParameter* p) : menu(m), param(p->AP_CRSF_Telem::ScriptedParameter::id) {}
      23             : 
      24           0 :     uint8_t id() const { return param; }
      25             :     // parameter reallocation means that the pointer could change, so index via the menu
      26           0 :     AP_CRSF_Telem::ScriptedParameter* get_parameter() { return menu->find_parameter(param); }
      27             : 
      28             : private:
      29             :     AP_CRSF_Telem::ScriptedMenu* menu;
      30             :     uint8_t param;
      31             : };
      32             : 
      33             : class CRSFMenu {
      34             : public:
      35           0 :     CRSFMenu() {}
      36           0 :     CRSFMenu(AP_CRSF_Telem::ScriptedMenu* m) : menu(m) {}
      37             : 
      38           0 :     uint8_t id() const { return menu->id; }
      39           0 :     const char* name() const { return menu->name; }
      40           0 :     uint8_t num_params() const { return menu->num_params; }
      41           0 :     AP_CRSF_Telem::ScriptedMenu* get_menu() const { return menu; }
      42             :     AP_CRSF_Telem::ScriptedParameter* add_parameter(uint8_t length, const char* data);
      43             :     AP_CRSF_Telem::ScriptedMenu* add_menu(const char* menu_name);
      44             : 
      45             : 
      46             : private:
      47             :     AP_CRSF_Telem::ScriptedMenu* menu;
      48             : };
      49             : 
      50             : #endif // AP_CRSF_SCRIPTING_ENABLED

Generated by: LCOV version 1.14