#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /*---------------------------------------------------------------------- IOCTL ----------------------------------------------------------------------*/ #define ACCDET_DEVNAME "accdet" #define ACCDET_IOC_MAGIC 'A' #define ACCDET_INIT _IO(ACCDET_IOC_MAGIC,0) #define SET_CALL_STATE _IO(ACCDET_IOC_MAGIC,1) #define GET_BUTTON_STATUS _IO(ACCDET_IOC_MAGIC,2) /*define for phone call state*/ #define CALL_IDLE 0 #define CALL_RINGING 1 #define CALL_ACTIVE 2 #define KEY_CALL KEY_SEND #define KEY_ENDCALL KEY_HANGEUL #define ACCDET_TIME_OUT 0x61A80 //400us /**************************************************** globle ACCDET variables ****************************************************/ enum accdet_report_state { NO_DEVICE =0, HEADSET_MIC = 1, HEADSET_NO_MIC = 2, //HEADSET_ILEGAL = 3, //DOUBLE_CHECK_TV = 4 }; enum accdet_status { PLUG_OUT = 0, MIC_BIAS = 1, //DOUBLE_CHECK = 2, HOOK_SWITCH = 2, //MIC_BIAS_ILLEGAL =3, //TV_OUT = 5, STAND_BY =4 }; char *accdet_status_string[5]= { "Plug_out", "Headset_plug_in", //"Double_check", "Hook_switch", //"Tvout_plug_in", "Stand_by" }; char *accdet_report_string[4]= { "No_device", "Headset_mic", "Headset_no_mic", //"HEADSET_illegal", // "Double_check" }; enum hook_switch_result { DO_NOTHING =0, ANSWER_CALL = 1, REJECT_CALL = 2 }; /* typedef enum { TVOUT_STATUS_OK = 0, TVOUT_STATUS_ALREADY_SET, TVOUT_STATUS_ERROR, } TVOUT_STATUS; */