#ifndef KEYCONTROL_LL_H
#define KEYCONTROL_LL_H

   #include <stdint.h>
   #include <stdbool.h>
      
   typedef enum
   {
      eSwCtlMode_4line,  // 4 Parallel lines or 3 lines for register control
      eSwCtlMode_5line,  // 5 Parallel lines for register control
      eSwCtlMode_6line,  // 6 Parallel lines or 3 lines for register control

      eSwCtlMode_default = eSwCtlMode_4line
   }
   eKeySwitchControlMode_t;
   
   typedef uint32_t tKeySwitchCode_t;
   typedef struct
   {
       bool ( * Init)( eKeySwitchControlMode_t mode );
       bool ( * SetKeyCode)( tKeySwitchCode_t code );
       bool ( * SetAmpCode)( tKeySwitchCode_t code ); 
       bool ( * SetFiltCode)( tKeySwitchCode_t code ); 
       bool ( * GetKeyCode) ( tKeySwitchCode_t * pcode );
       bool ( * GetAmpCode) ( tKeySwitchCode_t * pcode );
       bool ( * GetFiltCode) ( tKeySwitchCode_t * pcode );
       void ( * DeInit)();
   }
   sKeySwitchControlLL_t;

   extern const sKeySwitchControlLL_t KeyControlLLHandle;
#endif