86171125ee76ccecf9052660ffabe591ab6ec4a1
[platform/upstream/libxkbcommon.git] / make_tizen_keymap.sh
1 #!/bin/sh
2
3 KEYMAP_FILE_PATH="/usr/share/X11/xkb/tizen_key_layout.txt"
4 BASE_KEYSYM="0x10090000"
5 TARGET_HEADER_FILE="./xkbcommon/tizen_keymap.h"
6 TEMP_TEXT_FILE="./temp_file.txt"
7 NEW_DEFINE_SYM_FILE="./new_define_sym.txt"
8 KEYMAP_HEADER_FILE="./xkbcommon/xkbcommon-keysyms.h"
9 cout=1
10 BASE_KEYSYM_DEC=`python -c "print int('$BASE_KEYSYM', 16)"`
11
12 if [ -e ${KEYMAP_FILE_PATH} ]
13 then
14         echo "${TIZEN_PROFILE} have a key layout file: ${KEYMAP_FILE_PATH}"
15 else
16         echo "${TIZEN_PROFILE} doesn't have a key layout file: ${KEYMAP_FILE_PATH}"
17         exit
18 fi
19
20 echo "Generate a tizen keymap header file"
21
22 while read KEYNAME KEYCODE
23 do
24         KEYSYM="XKB_KEY_${KEYNAME}"
25         grep -rn "${KEYSYM}" $KEYMAP_HEADER_FILE > $TEMP_TEXT_FILE
26         FINDED_DEFINE=`cat temp_file.txt | awk '{print $2}'`
27
28         BOOL_FOUND_SYM=false
29         for SEARCH_SYM in ${FINDED_DEFINE}
30         do
31                 if [ "$SEARCH_SYM" = "$KEYSYM" ]
32                 then
33                         BOOL_FOUND_SYM=true
34                 break
35                 fi
36         done
37         if [ "$BOOL_FOUND_SYM" = false ]
38         then
39                 echo "${KEYSYM}" >> $NEW_DEFINE_SYM_FILE
40         fi
41 done < ${KEYMAP_FILE_PATH}
42
43 sed -i '$s/#endif//g' ${KEYMAP_HEADER_FILE}
44 echo "/**************************************************************" >> ${KEYMAP_HEADER_FILE}
45 echo " * These keys defined for tizen platform." >> ${KEYMAP_HEADER_FILE}
46 echo " * Key symbols are defined by keymap builder." >> ${KEYMAP_HEADER_FILE}
47 echo " */" >> ${KEYMAP_HEADER_FILE}
48
49 while read KEYNAME
50 do
51         KEYSYM_DEC=$(echo $BASE_KEYSYM_DEC $cout | awk '{print $1 + $2}')
52         KEYSYM=$(printf "%x" $KEYSYM_DEC)
53         echo -en "#define ${KEYNAME}\t\t0x$KEYSYM\n" >> ${KEYMAP_HEADER_FILE}
54         cout=$(echo $cout 1 | awk '{print $1 + $2}')
55 done < ${NEW_DEFINE_SYM_FILE}
56
57 echo "" >> ${KEYMAP_HEADER_FILE}
58 echo "" >> ${KEYMAP_HEADER_FILE}
59 echo "#endif" >> ${KEYMAP_HEADER_FILE}
60
61 rm $NEW_DEFINE_SYM_FILE
62 rm $TEMP_TEXT_FILE