# modules/scs/scs.h File Reference

## Data Structures
struct | scs_menu_item_t
struct | scs_menu_page_t
## Defines
#define | SCS_PIN_ENC_MENU_A 0
#define | SCS_PIN_ENC_MENU_B 1
#define | SCS_PIN_EXIT 2
#define | SCS_PIN_SOFT1 3
#define | SCS_PIN_SOFT2 4
#define | SCS_PIN_SOFT3 5
#define | SCS_PIN_SOFT4 6
#define | SCS_PIN_SOFT5 7
#define | SCS_PIN_SOFT6 8
#define | SCS_PIN_SOFT7 9
#define | SCS_PIN_SOFT8 10
#define | SCS_PIN_SOFT9 11
#define | SCS_PIN_SOFT10 12
#define | SCS_MENU_NO_SOFT_BUTTON_MODE 0
#define | SCS_MENU_ENTERED_VIA_EXIT_BUTTON 0
#define | SCS_PIN_DEC 0
#define | SCS_PIN_INC 1
#define | SCS_ENC_MENU_ID 0
#define | SCS_ENC_MENU_TYPE DETENTED2
#define | SCS_MENU_ITEM_WIDTH 5
#define | SCS_NUM_MENU_ITEMS 4
#define | SCS_MENU_ITEM_TOGGLE_THRESHOLD 4
#define | SCS_MSG_MAX_CHAR 20
#define | SCS_BUTTON_DEBOUNCE_RELOAD 20
#define | SCS_INSTALL_ROOT(rootTable) SCS_InstallRoot((scs_menu_page_t *)rootTable, sizeof(rootTable)/sizeof(scs_menu_page_t))
#define | SCS_PAGE(name, items) { name, (scs_menu_item_t *)items, 0, sizeof(items)/sizeof(scs_menu_item_t) }
#define | SCS_SUBPAGE(name, pages) { name, (scs_menu_page_t *)pages, 1, sizeof(pages)/sizeof(scs_menu_page_t) }
#define | SCS_ITEM(name, id, maxValue, setFunct, getFunct, selectFunct, stringFunct, stringFullFunct) { name, id, maxValue, setFunct, getFunct, selectFunct, stringFunct, stringFullFunct }
## Enumerations
enum | scs_menu_type_t { SCS_MENU_CHOICE, SCS_MENU_PARAMETERS }
enum | scs_menu_state_t { SCS_MENU_STATE_MAINPAGE, SCS_MENU_STATE_SELECT_PAGE, SCS_MENU_STATE_INSIDE_PAGE, SCS_MENU_STATE_EDIT_ITEM, SCS_MENU_STATE_EDIT_STRING, SCS_MENU_STATE_EDIT_IP, SCS_MENU_STATE_EDIT_BROWSER }
enum | scs_msg_type_t { SCS_MSG_L, SCS_MSG_R, SCS_MSG_ERROR_L, SCS_MSG_ERROR_R, SCS_MSG_DELAYED_ACTION_L, SCS_MSG_DELAYED_ACTION_R }
## Functions
s32 | SCS_Init (u32 mode)
s32 | SCS_NumMenuItemsGet (void)
s32 | SCS_NumMenuItemsSet (u8 num_items)
s32 | SCS_PinSet (u8 pin, u8 depressed)
s32 | SCS_PinGet (u8 pin)
s32 | SCS_AllPinsSet (u16 new_state)
s32 | SCS_AllPinsGet (void)
s32 | SCS_EncButtonUpdate_Tick (void)
s32 | SCS_Tick (void)
s32 | SCS_ENC_MENU_NotifyChange (s32 incrementer)
s32 | SCS_ENC_MENU_AutoSpeedSet (u16 maxValue)
s32 | SCS_DIN_NotifyToggle (u8 pin, u8 depressed)
s32 | SCS_InstallRoot (scs_menu_page_t *rootTable, u8 numItems)
s32 | SCS_InstallDisplayHook (s32(*stringFunct)(char *line1, char *line2))
s32 | SCS_InstallEncHook (s32(*encFunct)(s32 incrementer))
s32 | SCS_InstallButtonHook (s32(*buttonFunct)(u8 scsButton, u8 depressed))
s32 | SCS_DisplayUpdateRequest (void)
s32 | SCS_DisplayUpdateInMainPage (u8 enable)
scs_menu_state_t | SCS_MenuStateGet (void)
scs_menu_item_t * | SCS_MenuPageGet (void)
s32 | SCS_ChangePage (scs_menu_item_t *page)
s32 | SCS_ShowSelectedItem (u8 itemNum)
s32 | SCS_Msg (scs_msg_type_t msgType, u16 delay, char *line1, char *line2)
s32 | SCS_MsgStop (void)
s32 | SCS_InstallDelayedActionCallback (void(*callback)(u32 parameter), u16 delay_mS, u32 parameter)
s32 | SCS_UnInstallDelayedActionCallback (void(*callback)(u32 parameter))
s32 | SCS_InstallEditStringCallback (void(*selectCallback)(char *newString), char *actionString, char *initialString, u8 maxChars)
s32 | SCS_InstallEditIpCallback (void(*selectCallback)(u32 newIp), char *headerString, u32 initialIp)
s32 | SCS_InstallEditBrowserCallback (void(*selectCallback)(char *newString), u8(*getListCallback)(u8 offset, char *line), char *actionString, u8 itemWidth, u8 itemsPerPage)

## Define Documentation

#define SCS_BUTTON_DEBOUNCE_RELOAD 20

#define SCS_ENC_MENU_ID 0

#define SCS_ENC_MENU_TYPE DETENTED2

#define SCS_INSTALL_ROOT | ( | rootTable |  | ) | SCS_InstallRoot((scs_menu_page_t *)rootTable, sizeof(rootTable)/sizeof(scs_menu_page_t))

#define SCS_ITEM | ( | name,
|  | id,
|  | maxValue,
|  | setFunct,
|  | getFunct,
|  | selectFunct,
|  | stringFunct,
|  | stringFullFunct |  | ) | { name, id, maxValue, setFunct, getFunct, selectFunct, stringFunct, stringFullFunct }

#define SCS_MENU_ENTERED_VIA_EXIT_BUTTON 0

#define SCS_MENU_ITEM_TOGGLE_THRESHOLD 4

#define SCS_MENU_ITEM_WIDTH 5

#define SCS_MENU_NO_SOFT_BUTTON_MODE 0

#define SCS_MSG_MAX_CHAR 20

#define SCS_NUM_MENU_ITEMS 4

#define SCS_PAGE | ( | name,
|  | items |  | ) | { name, (scs_menu_item_t *)items, 0, sizeof(items)/sizeof(scs_menu_item_t) }

#define SCS_PIN_DEC 0

#define SCS_PIN_ENC_MENU_A 0

#define SCS_PIN_ENC_MENU_B 1

#define SCS_PIN_EXIT 2

#define SCS_PIN_INC 1

#define SCS_PIN_SOFT1 3

#define SCS_PIN_SOFT10 12

#define SCS_PIN_SOFT2 4

#define SCS_PIN_SOFT3 5

#define SCS_PIN_SOFT4 6

#define SCS_PIN_SOFT5 7

#define SCS_PIN_SOFT6 8

#define SCS_PIN_SOFT7 9

#define SCS_PIN_SOFT8 10

#define SCS_PIN_SOFT9 11

#define SCS_SUBPAGE | ( | name,
|  | pages |  | ) | { name, (scs_menu_page_t *)pages, 1, sizeof(pages)/sizeof(scs_menu_page_t) }

## Enumeration Type Documentation

enum scs_menu_state_t

Enumerator:

  SCS_MENU_STATE_MAINPAGE |
  SCS_MENU_STATE_SELECT_PAGE |
  SCS_MENU_STATE_INSIDE_PAGE |
  SCS_MENU_STATE_EDIT_ITEM |
  SCS_MENU_STATE_EDIT_STRING |
  SCS_MENU_STATE_EDIT_IP |
  SCS_MENU_STATE_EDIT_BROWSER |

enum scs_menu_type_t

Enumerator:

  SCS_MENU_CHOICE |
  SCS_MENU_PARAMETERS |

enum scs_msg_type_t

Enumerator:

  SCS_MSG_L |
  SCS_MSG_R |
  SCS_MSG_ERROR_L |
  SCS_MSG_ERROR_R |
  SCS_MSG_DELAYED_ACTION_L |
  SCS_MSG_DELAYED_ACTION_R |