API Application Example
API Header file
#ifndef __KEY_BACK_LIGHT_H__ #define __KEY_BACK_LIGHT_H__ #include <stdint.h> /* uint??_t */ #include <stdbool.h> /* Bool */ /***************************************************************************/ /* For Key Pad Back Light */ /***************************************************************************/ // #define DEVICE_KEY_BACK_LIGHT_DEBUG_MESSAGE #define DEVICE_LED_KEY_BACK_LIGHT "/sys/class/leds/key_light/brightness" /* Key Back Light On/Off Input true = Key Back Light On false= Key Back Light Off Return 0 = Ok to control(On/Off) -1 = Input Parameter Error -2 = Fail to Access Device -3 = Fail to Operation */ extern int key_back_light(bool Switch/*true=on, false=Off*/); /* get Key Back Light state Return 0 = Ok to read state -1 = Input Parameter Error -2 = Fail to Access Device -3 = Fail to Operation *pIsOn : true = Key Back Light is On, false = Key Back Light is Off */ extern int key_back_light_is_on(bool *pIsOn); #endif /* __KEY_BACK_LIGHT_H__ */
API Source File
#include <stdio.h> #include <stdint.h> /* uint??_t */ #include <stdbool.h> /* bool */ #include <stdlib.h> /* strtoul */ #include <string.h> /* for memset */ #include <unistd.h> /* for open/close .. */ #include <fcntl.h> /* for O_RDWR */ #include <sys/ioctl.h> /* for ioctl */ #include <sys/fcntl.h> /* for O_RDWR */ #include "KeyBackLight.h" /* Key Back Light On/Off Input true = Key Back Light On false= Key Back Light Off Return 0 = Opened -1 = Input Parameter Error -2 = Fail to Access Device -3 = Fail to Operation */ int key_back_light(bool Switch/*true=on, false=Off*/) { FILE * pDeviceFile; char pString[2] = { 0, 0 }; int StringLength; pDeviceFile = fopen ( DEVICE_LED_KEY_BACK_LIGHT, "w+"); if ( pDeviceFile == (FILE *)0 ) { #ifdef DEVICE_KEY_BACK_LIGHT_DEBUG_MESSAGE printf ( "Failed To Access Key Pad Back Light Device : %s\n", DEVICE_LED_KEY_BACK_LIGHT ); #endif /* DEVICE_KEY_BACK_LIGHT_DEBUG_MESSAGE */ return -2; } if ( Switch == true ) { pString[0] = '1'; } else { pString[0] = '0'; } StringLength = (int)strlen(pString); if ( fwrite ( pString, StringLength, 1, pDeviceFile ) < 0 ) { #ifdef DEVICE_KEY_BACK_LIGHT_DEBUG_MESSAGE printf ( "Failed To Control Key Pad Back Light\n" ); #endif /* DEVICE_KEY_BACK_LIGHT_DEBUG_MESSAGE */ return -3; } fclose ( pDeviceFile ); return 0; } /* get Key Back Light state Return 0 = Opened -1 = Input Parameter Error -2 = Fail to Access Device -3 = Fail to Operation *pIsOn : true = Key Back Light is On, false = Key Back Light is Off */ int key_back_light_is_on(bool *pIsOn) { FILE * pDeviceFile; char pCommand[128] = {0}; char pString[10] = {0}; int Value; if ( pIsOn == (bool *)0 ) { #ifdef DEVICE_KEY_BACK_LIGHT_DEBUG_MESSAGE printf( "key_back_light_is_on() : Input Parameter Error\n" ); #endif /* DEVICE_KEY_BACK_LIGHT_DEBUG_MESSAGE */ return -1; } sprintf(pCommand, "cat %s", DEVICE_LED_KEY_BACK_LIGHT); pDeviceFile = popen(pCommand, "r"); if ( pDeviceFile == (FILE *)0 ) { #ifdef DEVICE_KEY_BACK_LIGHT_DEBUG_MESSAGE printf ( "Failed To Access Key Pad Back Light Device : %s\n", DEVICE_LED_KEY_BACK_LIGHT ); #endif /* DEVICE_KEY_BACK_LIGHT_DEBUG_MESSAGE */ return -2; } while( fgets (pString, 10, pDeviceFile) ); Value = (uint32_t) strtoul( pString, NULL, 10 ); fclose (pDeviceFile); *pIsOn = ((Value == 0) ? false:true); return 0; }