This is a *VERY* Rough library for translating binary representations of grade 1 braille into ASCII strings.
Braille_In.cpp@9:cc189ce99a98, 2012-10-12 (annotated)
- Committer:
- aganger3
- Date:
- Fri Oct 12 07:22:30 2012 +0000
- Revision:
- 9:cc189ce99a98
- Parent:
- 8:4e65648a50cd
Changed space mapping from 0 to 127 since 0 is a string terminator. D'oh!
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
aganger3 | 0:22ca5452cf10 | 1 | #include "Braille_In.h" |
aganger3 | 0:22ca5452cf10 | 2 | |
aganger3 | 0:22ca5452cf10 | 3 | |
aganger3 | 0:22ca5452cf10 | 4 | |
aganger3 | 0:22ca5452cf10 | 5 | char* BrailleInput::translateBraille(char* input, int numChars) |
aganger3 | 0:22ca5452cf10 | 6 | { |
aganger3 | 4:0ddc5208706e | 7 | |
aganger3 | 0:22ca5452cf10 | 8 | bool NextCaps=false; |
aganger3 | 0:22ca5452cf10 | 9 | for (int i=0;i<numChars;i++) |
aganger3 | 0:22ca5452cf10 | 10 | { |
aganger3 | 0:22ca5452cf10 | 11 | output[i]=translateBrailleChar(input[i],NextCaps); |
aganger3 | 0:22ca5452cf10 | 12 | } |
aganger3 | 3:36f07cfb3fe1 | 13 | output[numChars+1]='\0'; |
aganger3 | 3:36f07cfb3fe1 | 14 | return output; |
aganger3 | 0:22ca5452cf10 | 15 | } |
aganger3 | 0:22ca5452cf10 | 16 | |
aganger3 | 0:22ca5452cf10 | 17 | |
aganger3 | 3:36f07cfb3fe1 | 18 | char* BrailleInput::translateBraille(const char* input, int numChars) |
aganger3 | 3:36f07cfb3fe1 | 19 | { |
aganger3 | 4:0ddc5208706e | 20 | |
aganger3 | 3:36f07cfb3fe1 | 21 | bool NextCaps=false; |
aganger3 | 3:36f07cfb3fe1 | 22 | for (int i=0;i<numChars;i++) |
aganger3 | 3:36f07cfb3fe1 | 23 | { |
aganger3 | 3:36f07cfb3fe1 | 24 | output[i]=translateBrailleChar(input[i],NextCaps); |
aganger3 | 3:36f07cfb3fe1 | 25 | } |
aganger3 | 3:36f07cfb3fe1 | 26 | output[numChars+1]='\0'; |
aganger3 | 3:36f07cfb3fe1 | 27 | return output; |
aganger3 | 3:36f07cfb3fe1 | 28 | |
aganger3 | 3:36f07cfb3fe1 | 29 | } |
aganger3 | 3:36f07cfb3fe1 | 30 | |
aganger3 | 0:22ca5452cf10 | 31 | char BrailleInput::translateBrailleChar(char input, bool& NextCaps) |
aganger3 | 0:22ca5452cf10 | 32 | { |
aganger3 | 0:22ca5452cf10 | 33 | NextCaps=false; |
aganger3 | 0:22ca5452cf10 | 34 | char out; |
aganger3 | 0:22ca5452cf10 | 35 | bool undefined=false; |
aganger3 | 0:22ca5452cf10 | 36 | |
aganger3 | 0:22ca5452cf10 | 37 | |
aganger3 | 7:bd06bf7ddafb | 38 | switch(input){ |
aganger3 | 8:4e65648a50cd | 39 | case 1: |
aganger3 | 7:bd06bf7ddafb | 40 | out='a'; |
aganger3 | 7:bd06bf7ddafb | 41 | break; |
aganger3 | 8:4e65648a50cd | 42 | case 3: |
aganger3 | 7:bd06bf7ddafb | 43 | out='b'; |
aganger3 | 7:bd06bf7ddafb | 44 | break; |
aganger3 | 8:4e65648a50cd | 45 | case 9: |
aganger3 | 7:bd06bf7ddafb | 46 | out='c'; |
aganger3 | 7:bd06bf7ddafb | 47 | break; |
aganger3 | 8:4e65648a50cd | 48 | case 25: |
aganger3 | 7:bd06bf7ddafb | 49 | out='d'; |
aganger3 | 7:bd06bf7ddafb | 50 | break; |
aganger3 | 8:4e65648a50cd | 51 | case 17: |
aganger3 | 7:bd06bf7ddafb | 52 | out='e'; |
aganger3 | 7:bd06bf7ddafb | 53 | break; |
aganger3 | 8:4e65648a50cd | 54 | case 11: |
aganger3 | 7:bd06bf7ddafb | 55 | out='f'; |
aganger3 | 7:bd06bf7ddafb | 56 | break; |
aganger3 | 8:4e65648a50cd | 57 | case 27: |
aganger3 | 7:bd06bf7ddafb | 58 | out='g'; |
aganger3 | 7:bd06bf7ddafb | 59 | break; |
aganger3 | 8:4e65648a50cd | 60 | case 19: |
aganger3 | 7:bd06bf7ddafb | 61 | out='h'; |
aganger3 | 7:bd06bf7ddafb | 62 | break; |
aganger3 | 8:4e65648a50cd | 63 | case 10: |
aganger3 | 7:bd06bf7ddafb | 64 | out='i'; |
aganger3 | 7:bd06bf7ddafb | 65 | break; |
aganger3 | 8:4e65648a50cd | 66 | case 26: |
aganger3 | 7:bd06bf7ddafb | 67 | out='j'; |
aganger3 | 7:bd06bf7ddafb | 68 | break; |
aganger3 | 8:4e65648a50cd | 69 | case 5: |
aganger3 | 7:bd06bf7ddafb | 70 | out='k'; |
aganger3 | 7:bd06bf7ddafb | 71 | break; |
aganger3 | 8:4e65648a50cd | 72 | case 7: |
aganger3 | 7:bd06bf7ddafb | 73 | out='l'; |
aganger3 | 7:bd06bf7ddafb | 74 | break; |
aganger3 | 8:4e65648a50cd | 75 | case 13: |
aganger3 | 7:bd06bf7ddafb | 76 | out='m'; |
aganger3 | 7:bd06bf7ddafb | 77 | break; |
aganger3 | 8:4e65648a50cd | 78 | case 29: |
aganger3 | 7:bd06bf7ddafb | 79 | out='n'; |
aganger3 | 7:bd06bf7ddafb | 80 | break; |
aganger3 | 8:4e65648a50cd | 81 | case 21: |
aganger3 | 7:bd06bf7ddafb | 82 | out='o'; |
aganger3 | 7:bd06bf7ddafb | 83 | break; |
aganger3 | 8:4e65648a50cd | 84 | case 15: |
aganger3 | 7:bd06bf7ddafb | 85 | out='p'; |
aganger3 | 7:bd06bf7ddafb | 86 | break; |
aganger3 | 8:4e65648a50cd | 87 | case 31: |
aganger3 | 7:bd06bf7ddafb | 88 | out='q'; |
aganger3 | 7:bd06bf7ddafb | 89 | break; |
aganger3 | 8:4e65648a50cd | 90 | case 23: |
aganger3 | 7:bd06bf7ddafb | 91 | out='r'; |
aganger3 | 7:bd06bf7ddafb | 92 | break; |
aganger3 | 8:4e65648a50cd | 93 | case 14: |
aganger3 | 7:bd06bf7ddafb | 94 | out='s'; |
aganger3 | 7:bd06bf7ddafb | 95 | break; |
aganger3 | 8:4e65648a50cd | 96 | case 30: |
aganger3 | 7:bd06bf7ddafb | 97 | out='t'; |
aganger3 | 7:bd06bf7ddafb | 98 | break; |
aganger3 | 8:4e65648a50cd | 99 | case 37: |
aganger3 | 7:bd06bf7ddafb | 100 | out='u'; |
aganger3 | 7:bd06bf7ddafb | 101 | break; |
aganger3 | 8:4e65648a50cd | 102 | case 39: |
aganger3 | 7:bd06bf7ddafb | 103 | out='v'; |
aganger3 | 7:bd06bf7ddafb | 104 | break; |
aganger3 | 8:4e65648a50cd | 105 | case 58: |
aganger3 | 7:bd06bf7ddafb | 106 | out='w'; |
aganger3 | 7:bd06bf7ddafb | 107 | break; |
aganger3 | 8:4e65648a50cd | 108 | case 45: |
aganger3 | 7:bd06bf7ddafb | 109 | out='x'; |
aganger3 | 7:bd06bf7ddafb | 110 | break; |
aganger3 | 8:4e65648a50cd | 111 | case 61: |
aganger3 | 7:bd06bf7ddafb | 112 | out='y'; |
aganger3 | 7:bd06bf7ddafb | 113 | break; |
aganger3 | 8:4e65648a50cd | 114 | case 53: |
aganger3 | 7:bd06bf7ddafb | 115 | out='z'; |
aganger3 | 7:bd06bf7ddafb | 116 | break; |
aganger3 | 8:4e65648a50cd | 117 | case 38: |
aganger3 | 7:bd06bf7ddafb | 118 | out='?'; |
aganger3 | 7:bd06bf7ddafb | 119 | break; |
aganger3 | 8:4e65648a50cd | 120 | case 50: |
aganger3 | 7:bd06bf7ddafb | 121 | out='.'; |
aganger3 | 7:bd06bf7ddafb | 122 | break; |
aganger3 | 8:4e65648a50cd | 123 | case 22: |
aganger3 | 7:bd06bf7ddafb | 124 | out='!'; |
aganger3 | 7:bd06bf7ddafb | 125 | break; |
aganger3 | 8:4e65648a50cd | 126 | case 18: |
aganger3 | 7:bd06bf7ddafb | 127 | out=':'; |
aganger3 | 7:bd06bf7ddafb | 128 | break; |
aganger3 | 8:4e65648a50cd | 129 | case 6: |
aganger3 | 7:bd06bf7ddafb | 130 | out=';'; |
aganger3 | 7:bd06bf7ddafb | 131 | break; |
aganger3 | 7:bd06bf7ddafb | 132 | case 0: |
aganger3 | 7:bd06bf7ddafb | 133 | out=' '; |
aganger3 | 7:bd06bf7ddafb | 134 | break; |
aganger3 | 8:4e65648a50cd | 135 | case 32: |
aganger3 | 7:bd06bf7ddafb | 136 | out=' '; |
aganger3 | 7:bd06bf7ddafb | 137 | NextCaps=true; |
aganger3 | 7:bd06bf7ddafb | 138 | break; |
aganger3 | 9:cc189ce99a98 | 139 | case 127: |
aganger3 | 9:cc189ce99a98 | 140 | out=' '; |
aganger3 | 9:cc189ce99a98 | 141 | break; |
aganger3 | 0:22ca5452cf10 | 142 | |
aganger3 | 7:bd06bf7ddafb | 143 | default: |
aganger3 | 7:bd06bf7ddafb | 144 | out=' '; |
aganger3 | 7:bd06bf7ddafb | 145 | } |
aganger3 | 7:bd06bf7ddafb | 146 | |
aganger3 | 7:bd06bf7ddafb | 147 | |
aganger3 | 7:bd06bf7ddafb | 148 | |
aganger3 | 7:bd06bf7ddafb | 149 | |
aganger3 | 7:bd06bf7ddafb | 150 | |
aganger3 | 1:d79dbb617533 | 151 | |
aganger3 | 1:d79dbb617533 | 152 | if (NextCaps) |
aganger3 | 1:d79dbb617533 | 153 | { |
aganger3 | 8:4e65648a50cd | 154 | |
aganger3 | 7:bd06bf7ddafb | 155 | //out=out-0x20; |
aganger3 | 1:d79dbb617533 | 156 | NextCaps=false; |
aganger3 | 1:d79dbb617533 | 157 | } |
aganger3 | 0:22ca5452cf10 | 158 | |
aganger3 | 0:22ca5452cf10 | 159 | |
aganger3 | 2:4cd96cdca95a | 160 | if (input== 0x0) |
aganger3 | 2:4cd96cdca95a | 161 | { |
aganger3 | 2:4cd96cdca95a | 162 | out=' '; |
aganger3 | 2:4cd96cdca95a | 163 | } |
aganger3 | 0:22ca5452cf10 | 164 | |
aganger3 | 0:22ca5452cf10 | 165 | return out; |
aganger3 | 0:22ca5452cf10 | 166 | } |
aganger3 | 0:22ca5452cf10 | 167 | |
aganger3 | 0:22ca5452cf10 | 168 | |
aganger3 | 0:22ca5452cf10 | 169 | |
aganger3 | 0:22ca5452cf10 | 170 | |
aganger3 | 0:22ca5452cf10 | 171 | |
aganger3 | 0:22ca5452cf10 | 172 | |
aganger3 | 0:22ca5452cf10 | 173 | |
aganger3 | 0:22ca5452cf10 | 174 | |
aganger3 | 0:22ca5452cf10 | 175 | |
aganger3 | 0:22ca5452cf10 | 176 | |
aganger3 | 0:22ca5452cf10 | 177 | |
aganger3 | 0:22ca5452cf10 | 178 | |
aganger3 | 0:22ca5452cf10 | 179 | |
aganger3 | 0:22ca5452cf10 | 180 | |
aganger3 | 0:22ca5452cf10 | 181 | |
aganger3 | 0:22ca5452cf10 | 182 |