1 /* ------------------------------------------------------------------ 2 * Copyright (C) 1998-2009 PacketVideo 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 * express or implied. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * ------------------------------------------------------------------- 17 */ 18 /* 19 20 Pathname: window_tables_fxp.c 21 Funtions: 22 23 ------------------------------------------------------------------------------ 24 REVISION HISTORY 25 26 Description: 27 changed table content definition from UInt to UInt16. 28 29 Description: 30 changed Long_Window_fxp and Short _Window_fxp tables definition, from 31 "const UInt16 *" to "const UInt16 * const" to avoid global variable 32 definition. 33 34 Description: 35 Improved rounding on table elements. 36 37 Description: Eliminated structure to avoid assigning addresses to constant 38 tables. This solve linking problem when using the 39 /ropi option (Read-only position independent) for some 40 compilers 41 - Eliminated Long_Window_fxp and Short_Window_fxp as global 42 contants vectors 43 44 Who: Date: 45 Description: 46 47 ------------------------------------------------------------------------------ 48 MODULE DESCRIPTION 49 50 Window tables 51 52 For a sine table with N points: 53 54 w_left = sin(pi/N (n + 1/2)) for 0 =< n < N/2 55 56 w_rigth = sin(pi/N (n + 1/2)) for N/2 =< n < N 57 58 59 For Kaiser-Bessel derived (KBD) 60 61 n N/2 62 w_left = sqrt(( SUM W(p,a) )/( SUM W(p,a) ) for 0 =< n < N/2 63 p=0 p=0 64 65 66 N-n-1 N/2 67 w_rigth = sqrt(( SUM W(p,a) )/( SUM W(p,a) ) for N/2 =< n < N 68 p=0 p=0 69 70 71 W(p,a) see ISO 14496-3, pag 113 72 73 ------------------------------------------------------------------------------ 74 REQUIREMENTS 75 76 This module shall implement the fix point verwion of the windowing tables 77 78 ------------------------------------------------------------------------------ 79 REFERENCES 80 81 [1] ISO 14496-3, pag 113 82 83 ------------------------------------------------------------------------------ 84 */ 85 86 87 /*---------------------------------------------------------------------------- 88 ; INCLUDES 89 ----------------------------------------------------------------------------*/ 90 #include "pv_audio_type_defs.h" 91 #include "window_block_fxp.h" 92 93 /*---------------------------------------------------------------------------- 94 ; MACROS 95 ; Define module specific macros here 96 ----------------------------------------------------------------------------*/ 97 98 /*---------------------------------------------------------------------------- 99 ; DEFINES 100 ; Include all pre-processor statements here. Include conditional 101 ; compile variables also. 102 ----------------------------------------------------------------------------*/ 103 104 /*---------------------------------------------------------------------------- 105 ; LOCAL FUNCTION DEFINITIONS 106 ; Function Prototype declaration 107 ----------------------------------------------------------------------------*/ 108 109 /*---------------------------------------------------------------------------- 110 ; LOCAL VARIABLE DEFINITIONS 111 ; Variable declaration - defined here and used outside this module 112 ----------------------------------------------------------------------------*/ 113 114 115 /*---------------------------------------------------------------------------- 116 ; EXTERNAL FUNCTION REFERENCES 117 ; Declare functions defined elsewhere and referenced in this module 118 ----------------------------------------------------------------------------*/ 119 120 /*---------------------------------------------------------------------------- 121 ; EXTERNAL VARIABLES REFERENCES 122 ; Declare variables used in this module but defined elsewhere 123 ----------------------------------------------------------------------------*/ 124 125 126 const Int16 Long_Window_sine_fxp[LONG_WINDOW] = 127 { 128 129 130 0x0019, 0x004B, 0x007E, 0x00B0, 131 0x00E2, 0x0114, 0x0147, 0x0179, 132 0x01AB, 0x01DD, 0x0210, 0x0242, 133 0x0274, 0x02A7, 0x02D9, 0x030B, 134 0x033D, 0x0370, 0x03A2, 0x03D4, 135 0x0406, 0x0438, 0x046B, 0x049D, 136 0x04CF, 0x0501, 0x0534, 0x0566, 137 0x0598, 0x05CA, 0x05FC, 0x062F, 138 0x0661, 0x0693, 0x06C5, 0x06F7, 139 0x072A, 0x075C, 0x078E, 0x07C0, 140 0x07F2, 0x0825, 0x0857, 0x0889, 141 0x08BB, 0x08ED, 0x091F, 0x0951, 142 0x0984, 0x09B6, 0x09E8, 0x0A1A, 143 0x0A4C, 0x0A7E, 0x0AB0, 0x0AE2, 144 0x0B14, 0x0B46, 0x0B78, 0x0BAB, 145 0x0BDD, 0x0C0F, 0x0C41, 0x0C73, 146 0x0CA5, 0x0CD7, 0x0D09, 0x0D3B, 147 0x0D6D, 0x0D9F, 0x0DD1, 0x0E03, 148 0x0E35, 0x0E67, 0x0E99, 0x0ECA, 149 0x0EFC, 0x0F2E, 0x0F60, 0x0F92, 150 0x0FC4, 0x0FF6, 0x1028, 0x105A, 151 0x108B, 0x10BD, 0x10EF, 0x1121, 152 0x1153, 0x1185, 0x11B6, 0x11E8, 153 0x121A, 0x124C, 0x127D, 0x12AF, 154 0x12E1, 0x1312, 0x1344, 0x1376, 155 0x13A8, 0x13D9, 0x140B, 0x143C, 156 0x146E, 0x14A0, 0x14D1, 0x1503, 157 0x1534, 0x1566, 0x1598, 0x15C9, 158 0x15FB, 0x162C, 0x165E, 0x168F, 159 0x16C1, 0x16F2, 0x1724, 0x1755, 160 0x1786, 0x17B8, 0x17E9, 0x181B, 161 0x184C, 0x187D, 0x18AF, 0x18E0, 162 0x1911, 0x1942, 0x1974, 0x19A5, 163 0x19D6, 0x1A07, 0x1A39, 0x1A6A, 164 0x1A9B, 0x1ACC, 0x1AFD, 0x1B2E, 165 0x1B60, 0x1B91, 0x1BC2, 0x1BF3, 166 0x1C24, 0x1C55, 0x1C86, 0x1CB7, 167 0x1CE8, 0x1D19, 0x1D4A, 0x1D7B, 168 0x1DAC, 0x1DDC, 0x1E0D, 0x1E3E, 169 0x1E6F, 0x1EA0, 0x1ED1, 0x1F01, 170 0x1F32, 0x1F63, 0x1F94, 0x1FC4, 171 0x1FF5, 0x2026, 0x2056, 0x2087, 172 0x20B7, 0x20E8, 0x2119, 0x2149, 173 0x217A, 0x21AA, 0x21DB, 0x220B, 174 0x223C, 0x226C, 0x229C, 0x22CD, 175 0x22FD, 0x232E, 0x235E, 0x238E, 176 0x23BE, 0x23EF, 0x241F, 0x244F, 177 0x247F, 0x24AF, 0x24E0, 0x2510, 178 0x2540, 0x2570, 0x25A0, 0x25D0, 179 0x2600, 0x2630, 0x2660, 0x2690, 180 0x26C0, 0x26F0, 0x2720, 0x274F, 181 0x277F, 0x27AF, 0x27DF, 0x280F, 182 0x283E, 0x286E, 0x289E, 0x28CD, 183 0x28FD, 0x292D, 0x295C, 0x298C, 184 0x29BB, 0x29EB, 0x2A1A, 0x2A4A, 185 0x2A79, 0x2AA8, 0x2AD8, 0x2B07, 186 0x2B37, 0x2B66, 0x2B95, 0x2BC4, 187 0x2BF4, 0x2C23, 0x2C52, 0x2C81, 188 0x2CB0, 0x2CDF, 0x2D0E, 0x2D3D, 189 0x2D6C, 0x2D9B, 0x2DCA, 0x2DF9, 190 0x2E28, 0x2E57, 0x2E86, 0x2EB5, 191 0x2EE3, 0x2F12, 0x2F41, 0x2F70, 192 0x2F9E, 0x2FCD, 0x2FFC, 0x302A, 193 0x3059, 0x3087, 0x30B6, 0x30E4, 194 0x3113, 0x3141, 0x316F, 0x319E, 195 0x31CC, 0x31FA, 0x3229, 0x3257, 196 0x3285, 0x32B3, 0x32E1, 0x330F, 197 0x333E, 0x336C, 0x339A, 0x33C8, 198 0x33F6, 0x3423, 0x3451, 0x347F, 199 0x34AD, 0x34DB, 0x3509, 0x3536, 200 0x3564, 0x3592, 0x35BF, 0x35ED, 201 0x361A, 0x3648, 0x3676, 0x36A3, 202 0x36D0, 0x36FE, 0x372B, 0x3759, 203 0x3786, 0x37B3, 0x37E0, 0x380E, 204 0x383B, 0x3868, 0x3895, 0x38C2, 205 0x38EF, 0x391C, 0x3949, 0x3976, 206 0x39A3, 0x39D0, 0x39FD, 0x3A29, 207 0x3A56, 0x3A83, 0x3AB0, 0x3ADC, 208 0x3B09, 0x3B35, 0x3B62, 0x3B8E, 209 0x3BBB, 0x3BE7, 0x3C14, 0x3C40, 210 0x3C6C, 0x3C99, 0x3CC5, 0x3CF1, 211 0x3D1D, 0x3D4A, 0x3D76, 0x3DA2, 212 0x3DCE, 0x3DFA, 0x3E26, 0x3E52, 213 0x3E7D, 0x3EA9, 0x3ED5, 0x3F01, 214 0x3F2D, 0x3F58, 0x3F84, 0x3FB0, 215 0x3FDB, 0x4007, 0x4032, 0x405E, 216 0x4089, 0x40B5, 0x40E0, 0x410B, 217 0x4136, 0x4162, 0x418D, 0x41B8, 218 0x41E3, 0x420E, 0x4239, 0x4264, 219 0x428F, 0x42BA, 0x42E5, 0x4310, 220 0x433B, 0x4365, 0x4390, 0x43BB, 221 0x43E5, 0x4410, 0x443B, 0x4465, 222 0x448F, 0x44BA, 0x44E4, 0x450F, 223 0x4539, 0x4563, 0x458D, 0x45B8, 224 0x45E2, 0x460C, 0x4636, 0x4660, 225 0x468A, 0x46B4, 0x46DE, 0x4707, 226 0x4731, 0x475B, 0x4785, 0x47AE, 227 0x47D8, 0x4802, 0x482B, 0x4855, 228 0x487E, 0x48A7, 0x48D1, 0x48FA, 229 0x4923, 0x494D, 0x4976, 0x499F, 230 0x49C8, 0x49F1, 0x4A1A, 0x4A43, 231 0x4A6C, 0x4A95, 0x4ABE, 0x4AE6, 232 0x4B0F, 0x4B38, 0x4B61, 0x4B89, 233 0x4BB2, 0x4BDA, 0x4C03, 0x4C2B, 234 0x4C53, 0x4C7C, 0x4CA4, 0x4CCC, 235 0x4CF4, 0x4D1D, 0x4D45, 0x4D6D, 236 0x4D95, 0x4DBD, 0x4DE5, 0x4E0D, 237 0x4E34, 0x4E5C, 0x4E84, 0x4EAB, 238 0x4ED3, 0x4EFB, 0x4F22, 0x4F4A, 239 0x4F71, 0x4F99, 0x4FC0, 0x4FE7, 240 0x500E, 0x5036, 0x505D, 0x5084, 241 0x50AB, 0x50D2, 0x50F9, 0x5120, 242 0x5147, 0x516D, 0x5194, 0x51BB, 243 0x51E2, 0x5208, 0x522F, 0x5255, 244 0x527C, 0x52A2, 0x52C8, 0x52EF, 245 0x5315, 0x533B, 0x5361, 0x5387, 246 0x53AE, 0x53D4, 0x53FA, 0x541F, 247 0x5445, 0x546B, 0x5491, 0x54B7, 248 0x54DC, 0x5502, 0x5527, 0x554D, 249 0x5572, 0x5598, 0x55BD, 0x55E2, 250 0x5608, 0x562D, 0x5652, 0x5677, 251 0x569C, 0x56C1, 0x56E6, 0x570B, 252 0x5730, 0x5754, 0x5779, 0x579E, 253 0x57C2, 0x57E7, 0x580C, 0x5830, 254 0x5854, 0x5879, 0x589D, 0x58C1, 255 0x58E5, 0x590A, 0x592E, 0x5952, 256 0x5976, 0x599A, 0x59BD, 0x59E1, 257 0x5A05, 0x5A29, 0x5A4C, 0x5A70, 258 0x5A94, 0x5AB7, 0x5ADA, 0x5AFE, 259 0x5B21, 0x5B44, 0x5B68, 0x5B8B, 260 0x5BAE, 0x5BD1, 0x5BF4, 0x5C17, 261 0x5C3A, 0x5C5D, 0x5C7F, 0x5CA2, 262 0x5CC5, 0x5CE7, 0x5D0A, 0x5D2C, 263 0x5D4F, 0x5D71, 0x5D94, 0x5DB6, 264 0x5DD8, 0x5DFA, 0x5E1C, 0x5E3E, 265 0x5E60, 0x5E82, 0x5EA4, 0x5EC6, 266 0x5EE8, 0x5F09, 0x5F2B, 0x5F4D, 267 0x5F6E, 0x5F90, 0x5FB1, 0x5FD2, 268 0x5FF4, 0x6015, 0x6036, 0x6057, 269 0x6078, 0x6099, 0x60BA, 0x60DB, 270 0x60FC, 0x611D, 0x613D, 0x615E, 271 0x617F, 0x619F, 0x61C0, 0x61E0, 272 0x6200, 0x6221, 0x6241, 0x6261, 273 0x6281, 0x62A1, 0x62C1, 0x62E1, 274 0x6301, 0x6321, 0x6341, 0x6360, 275 0x6380, 0x63A0, 0x63BF, 0x63DF, 276 0x63FE, 0x641D, 0x643D, 0x645C, 277 0x647B, 0x649A, 0x64B9, 0x64D8, 278 0x64F7, 0x6516, 0x6535, 0x6554, 279 0x6572, 0x6591, 0x65AF, 0x65CE, 280 0x65EC, 0x660B, 0x6629, 0x6647, 281 0x6666, 0x6684, 0x66A2, 0x66C0, 282 0x66DE, 0x66FC, 0x6719, 0x6737, 283 0x6755, 0x6772, 0x6790, 0x67AE, 284 0x67CB, 0x67E8, 0x6806, 0x6823, 285 0x6840, 0x685D, 0x687A, 0x6897, 286 0x68B4, 0x68D1, 0x68EE, 0x690B, 287 0x6927, 0x6944, 0x6961, 0x697D, 288 0x699A, 0x69B6, 0x69D2, 0x69EE, 289 0x6A0B, 0x6A27, 0x6A43, 0x6A5F, 290 0x6A7B, 0x6A97, 0x6AB2, 0x6ACE, 291 0x6AEA, 0x6B05, 0x6B21, 0x6B3C, 292 0x6B58, 0x6B73, 0x6B8E, 0x6BAA, 293 0x6BC5, 0x6BE0, 0x6BFB, 0x6C16, 294 0x6C31, 0x6C4C, 0x6C66, 0x6C81, 295 0x6C9C, 0x6CB6, 0x6CD1, 0x6CEB, 296 0x6D06, 0x6D20, 0x6D3A, 0x6D54, 297 0x6D6E, 0x6D88, 0x6DA2, 0x6DBC, 298 0x6DD6, 0x6DF0, 0x6E0A, 0x6E23, 299 0x6E3D, 0x6E56, 0x6E70, 0x6E89, 300 0x6EA2, 0x6EBC, 0x6ED5, 0x6EEE, 301 0x6F07, 0x6F20, 0x6F39, 0x6F52, 302 0x6F6B, 0x6F83, 0x6F9C, 0x6FB4, 303 0x6FCD, 0x6FE5, 0x6FFE, 0x7016, 304 0x702E, 0x7046, 0x705F, 0x7077, 305 0x708F, 0x70A6, 0x70BE, 0x70D6, 306 0x70EE, 0x7105, 0x711D, 0x7134, 307 0x714C, 0x7163, 0x717A, 0x7192, 308 0x71A9, 0x71C0, 0x71D7, 0x71EE, 309 0x7205, 0x721C, 0x7232, 0x7249, 310 0x7260, 0x7276, 0x728D, 0x72A3, 311 0x72B9, 0x72D0, 0x72E6, 0x72FC, 312 0x7312, 0x7328, 0x733E, 0x7354, 313 0x7369, 0x737F, 0x7395, 0x73AA, 314 0x73C0, 0x73D5, 0x73EB, 0x7400, 315 0x7415, 0x742A, 0x743F, 0x7454, 316 0x7469, 0x747E, 0x7493, 0x74A8, 317 0x74BC, 0x74D1, 0x74E5, 0x74FA, 318 0x750E, 0x7522, 0x7537, 0x754B, 319 0x755F, 0x7573, 0x7587, 0x759B, 320 0x75AE, 0x75C2, 0x75D6, 0x75E9, 321 0x75FD, 0x7610, 0x7624, 0x7637, 322 0x764A, 0x765E, 0x7671, 0x7684, 323 0x7697, 0x76A9, 0x76BC, 0x76CF, 324 0x76E2, 0x76F4, 0x7707, 0x7719, 325 0x772C, 0x773E, 0x7750, 0x7762, 326 0x7774, 0x7786, 0x7798, 0x77AA, 327 0x77BC, 0x77CE, 0x77DF, 0x77F1, 328 0x7803, 0x7814, 0x7825, 0x7837, 329 0x7848, 0x7859, 0x786A, 0x787B, 330 0x788C, 0x789D, 0x78AE, 0x78BE, 331 0x78CF, 0x78E0, 0x78F0, 0x7901, 332 0x7911, 0x7921, 0x7931, 0x7941, 333 0x7952, 0x7962, 0x7971, 0x7981, 334 0x7991, 0x79A1, 0x79B0, 0x79C0, 335 0x79CF, 0x79DF, 0x79EE, 0x79FD, 336 0x7A0D, 0x7A1C, 0x7A2B, 0x7A3A, 337 0x7A49, 0x7A57, 0x7A66, 0x7A75, 338 0x7A83, 0x7A92, 0x7AA0, 0x7AAF, 339 0x7ABD, 0x7ACB, 0x7AD9, 0x7AE7, 340 0x7AF5, 0x7B03, 0x7B11, 0x7B1F, 341 0x7B2D, 0x7B3A, 0x7B48, 0x7B55, 342 0x7B63, 0x7B70, 0x7B7D, 0x7B8B, 343 0x7B98, 0x7BA5, 0x7BB2, 0x7BBF, 344 0x7BCB, 0x7BD8, 0x7BE5, 0x7BF1, 345 0x7BFE, 0x7C0A, 0x7C17, 0x7C23, 346 0x7C2F, 0x7C3B, 0x7C47, 0x7C53, 347 0x7C5F, 0x7C6B, 0x7C77, 0x7C83, 348 0x7C8E, 0x7C9A, 0x7CA5, 0x7CB1, 349 0x7CBC, 0x7CC7, 0x7CD2, 0x7CDD, 350 0x7CE8, 0x7CF3, 0x7CFE, 0x7D09, 351 0x7D14, 0x7D1E, 0x7D29, 0x7D33, 352 0x7D3E, 0x7D48, 0x7D52, 0x7D5C, 353 0x7D67, 0x7D71, 0x7D7B, 0x7D84, 354 0x7D8E, 0x7D98, 0x7DA2, 0x7DAB, 355 0x7DB5, 0x7DBE, 0x7DC8, 0x7DD1, 356 0x7DDA, 0x7DE3, 0x7DEC, 0x7DF5, 357 0x7DFE, 0x7E07, 0x7E10, 0x7E18, 358 0x7E21, 0x7E29, 0x7E32, 0x7E3A, 359 0x7E42, 0x7E4B, 0x7E53, 0x7E5B, 360 0x7E63, 0x7E6B, 0x7E73, 0x7E7A, 361 0x7E82, 0x7E8A, 0x7E91, 0x7E99, 362 0x7EA0, 0x7EA7, 0x7EAF, 0x7EB6, 363 0x7EBD, 0x7EC4, 0x7ECB, 0x7ED2, 364 0x7ED8, 0x7EDF, 0x7EE6, 0x7EEC, 365 0x7EF3, 0x7EF9, 0x7EFF, 0x7F05, 366 0x7F0C, 0x7F12, 0x7F18, 0x7F1E, 367 0x7F23, 0x7F29, 0x7F2F, 0x7F35, 368 0x7F3A, 0x7F40, 0x7F45, 0x7F4A, 369 0x7F50, 0x7F55, 0x7F5A, 0x7F5F, 370 0x7F64, 0x7F69, 0x7F6D, 0x7F72, 371 0x7F77, 0x7F7B, 0x7F80, 0x7F84, 372 0x7F88, 0x7F8D, 0x7F91, 0x7F95, 373 0x7F99, 0x7F9D, 0x7FA1, 0x7FA4, 374 0x7FA8, 0x7FAC, 0x7FAF, 0x7FB3, 375 0x7FB6, 0x7FB9, 0x7FBD, 0x7FC0, 376 0x7FC3, 0x7FC6, 0x7FC9, 0x7FCC, 377 0x7FCE, 0x7FD1, 0x7FD4, 0x7FD6, 378 0x7FD9, 0x7FDB, 0x7FDD, 0x7FE0, 379 0x7FE2, 0x7FE4, 0x7FE6, 0x7FE8, 380 0x7FEA, 0x7FEB, 0x7FED, 0x7FEF, 381 0x7FF0, 0x7FF2, 0x7FF3, 0x7FF5, 382 0x7FF6, 0x7FF7, 0x7FF8, 0x7FF9, 383 0x7FFA, 0x7FFB, 0x7FFC, 0x7FFC, 384 0x7FFD, 0x7FFD, 0x7FFE, 0x7FFE, 385 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF 386 387 }; 388 389 390 const Int16 Short_Window_sine_fxp[SHORT_WINDOW] = 391 { 392 393 0x00C9, 0x025B, 0x03ED, 0x057F, 394 0x0711, 0x08A2, 0x0A33, 0x0BC4, 395 0x0D54, 0x0EE3, 0x1072, 0x1201, 396 0x138F, 0x151C, 0x16A8, 0x1833, 397 0x19BE, 0x1B47, 0x1CCF, 0x1E57, 398 0x1FDD, 0x2161, 0x22E5, 0x2467, 399 0x25E8, 0x2767, 0x28E5, 0x2A61, 400 0x2BDC, 0x2D55, 0x2ECC, 0x3041, 401 0x31B5, 0x3326, 0x3496, 0x3604, 402 0x376F, 0x38D9, 0x3A40, 0x3BA5, 403 0x3D07, 0x3E68, 0x3FC5, 0x4121, 404 0x427A, 0x43D0, 0x4524, 0x4675, 405 0x47C3, 0x490F, 0x4A58, 0x4B9D, 406 0x4CE0, 0x4E20, 0x4F5D, 0x5097, 407 0x51CE, 0x5302, 0x5432, 0x5560, 408 0x568A, 0x57B0, 0x58D3, 0x59F3, 409 0x5B0F, 0x5C28, 0x5D3E, 0x5E4F, 410 0x5F5D, 0x6068, 0x616E, 0x6271, 411 0x6370, 0x646C, 0x6563, 0x6656, 412 0x6746, 0x6832, 0x6919, 0x69FD, 413 0x6ADC, 0x6BB7, 0x6C8E, 0x6D61, 414 0x6E30, 0x6EFB, 0x6FC1, 0x7083, 415 0x7140, 0x71F9, 0x72AE, 0x735E, 416 0x740A, 0x74B2, 0x7555, 0x75F3, 417 0x768D, 0x7722, 0x77B3, 0x783F, 418 0x78C7, 0x794A, 0x79C8, 0x7A41, 419 0x7AB6, 0x7B26, 0x7B91, 0x7BF8, 420 0x7C59, 0x7CB6, 0x7D0E, 0x7D62, 421 0x7DB0, 0x7DFA, 0x7E3E, 0x7E7E, 422 0x7EB9, 0x7EEF, 0x7F21, 0x7F4D, 423 0x7F74, 0x7F97, 0x7FB4, 0x7FCD, 424 0x7FE1, 0x7FF0, 0x7FF9, 0x7FFE 425 }; 426 427 428 429 const Int16 Long_Window_KBD_fxp[LONG_WINDOW] = 430 { 431 432 0x000A, 0x000E, 0x0012, 0x0015, 433 0x0019, 0x001C, 0x0020, 0x0023, 434 0x0026, 0x002A, 0x002D, 0x0030, 435 0x0034, 0x0038, 0x003B, 0x003F, 436 0x0043, 0x0047, 0x004B, 0x004F, 437 0x0053, 0x0057, 0x005B, 0x0060, 438 0x0064, 0x0069, 0x006D, 0x0072, 439 0x0077, 0x007C, 0x0081, 0x0086, 440 0x008B, 0x0091, 0x0096, 0x009C, 441 0x00A1, 0x00A7, 0x00AD, 0x00B3, 442 0x00B9, 0x00BF, 0x00C6, 0x00CC, 443 0x00D3, 0x00DA, 0x00E0, 0x00E7, 444 0x00EE, 0x00F5, 0x00FD, 0x0104, 445 0x010C, 0x0113, 0x011B, 0x0123, 446 0x012B, 0x0133, 0x013C, 0x0144, 447 0x014D, 0x0156, 0x015F, 0x0168, 448 0x0171, 0x017A, 0x0183, 0x018D, 449 0x0197, 0x01A1, 0x01AB, 0x01B5, 450 0x01BF, 0x01CA, 0x01D4, 0x01DF, 451 0x01EA, 0x01F5, 0x0200, 0x020C, 452 0x0217, 0x0223, 0x022F, 0x023B, 453 0x0247, 0x0253, 0x0260, 0x026D, 454 0x027A, 0x0287, 0x0294, 0x02A1, 455 0x02AF, 0x02BC, 0x02CA, 0x02D8, 456 0x02E7, 0x02F5, 0x0304, 0x0312, 457 0x0321, 0x0331, 0x0340, 0x034F, 458 0x035F, 0x036F, 0x037F, 0x038F, 459 0x03A0, 0x03B0, 0x03C1, 0x03D2, 460 0x03E3, 0x03F5, 0x0406, 0x0418, 461 0x042A, 0x043C, 0x044F, 0x0461, 462 0x0474, 0x0487, 0x049A, 0x04AE, 463 0x04C1, 0x04D5, 0x04E9, 0x04FD, 464 0x0512, 0x0526, 0x053B, 0x0550, 465 0x0566, 0x057B, 0x0591, 0x05A7, 466 0x05BD, 0x05D3, 0x05EA, 0x0601, 467 0x0618, 0x062F, 0x0646, 0x065E, 468 0x0676, 0x068E, 0x06A6, 0x06BF, 469 0x06D8, 0x06F1, 0x070A, 0x0723, 470 0x073D, 0x0757, 0x0771, 0x078C, 471 0x07A6, 0x07C1, 0x07DC, 0x07F7, 472 0x0813, 0x082F, 0x084B, 0x0867, 473 0x0884, 0x08A0, 0x08BD, 0x08DA, 474 0x08F8, 0x0916, 0x0933, 0x0952, 475 0x0970, 0x098F, 0x09AE, 0x09CD, 476 0x09EC, 0x0A0C, 0x0A2C, 0x0A4C, 477 0x0A6C, 0x0A8D, 0x0AAD, 0x0ACF, 478 0x0AF0, 0x0B11, 0x0B33, 0x0B55, 479 0x0B78, 0x0B9A, 0x0BBD, 0x0BE0, 480 0x0C03, 0x0C27, 0x0C4B, 0x0C6F, 481 0x0C93, 0x0CB8, 0x0CDD, 0x0D02, 482 0x0D27, 0x0D4D, 0x0D73, 0x0D99, 483 0x0DBF, 0x0DE6, 0x0E0C, 0x0E33, 484 0x0E5B, 0x0E82, 0x0EAA, 0x0ED2, 485 0x0EFB, 0x0F23, 0x0F4C, 0x0F75, 486 0x0F9F, 0x0FC8, 0x0FF2, 0x101C, 487 0x1047, 0x1071, 0x109C, 0x10C7, 488 0x10F3, 0x111E, 0x114A, 0x1176, 489 0x11A3, 0x11D0, 0x11FC, 0x122A, 490 0x1257, 0x1285, 0x12B3, 0x12E1, 491 0x130F, 0x133E, 0x136D, 0x139C, 492 0x13CB, 0x13FB, 0x142B, 0x145B, 493 0x148B, 0x14BC, 0x14ED, 0x151E, 494 0x1550, 0x1581, 0x15B3, 0x15E5, 495 0x1618, 0x164A, 0x167D, 0x16B0, 496 0x16E3, 0x1717, 0x174B, 0x177F, 497 0x17B3, 0x17E8, 0x181D, 0x1852, 498 0x1887, 0x18BC, 0x18F2, 0x1928, 499 0x195E, 0x1995, 0x19CB, 0x1A02, 500 0x1A39, 0x1A71, 0x1AA8, 0x1AE0, 501 0x1B18, 0x1B50, 0x1B89, 0x1BC1, 502 0x1BFA, 0x1C34, 0x1C6D, 0x1CA7, 503 0x1CE0, 0x1D1A, 0x1D55, 0x1D8F, 504 0x1DCA, 0x1E05, 0x1E40, 0x1E7B, 505 0x1EB7, 0x1EF2, 0x1F2E, 0x1F6B, 506 0x1FA7, 0x1FE4, 0x2020, 0x205D, 507 0x209B, 0x20D8, 0x2116, 0x2153, 508 0x2191, 0x21D0, 0x220E, 0x224D, 509 0x228B, 0x22CA, 0x2309, 0x2349, 510 0x2388, 0x23C8, 0x2408, 0x2448, 511 0x2488, 0x24C9, 0x2509, 0x254A, 512 0x258B, 0x25CC, 0x260E, 0x264F, 513 0x2691, 0x26D3, 0x2715, 0x2757, 514 0x2799, 0x27DC, 0x281F, 0x2861, 515 0x28A4, 0x28E8, 0x292B, 0x296E, 516 0x29B2, 0x29F6, 0x2A3A, 0x2A7E, 517 0x2AC2, 0x2B06, 0x2B4B, 0x2B8F, 518 0x2BD4, 0x2C19, 0x2C5E, 0x2CA3, 519 0x2CE9, 0x2D2E, 0x2D74, 0x2DB9, 520 0x2DFF, 0x2E45, 0x2E8B, 0x2ED1, 521 0x2F18, 0x2F5E, 0x2FA5, 0x2FEB, 522 0x3032, 0x3079, 0x30C0, 0x3107, 523 0x314E, 0x3195, 0x31DD, 0x3224, 524 0x326C, 0x32B4, 0x32FB, 0x3343, 525 0x338B, 0x33D3, 0x341B, 0x3463, 526 0x34AC, 0x34F4, 0x353D, 0x3585, 527 0x35CE, 0x3616, 0x365F, 0x36A8, 528 0x36F1, 0x373A, 0x3783, 0x37CC, 529 0x3815, 0x385E, 0x38A7, 0x38F0, 530 0x393A, 0x3983, 0x39CC, 0x3A16, 531 0x3A5F, 0x3AA9, 0x3AF2, 0x3B3C, 532 0x3B86, 0x3BCF, 0x3C19, 0x3C63, 533 0x3CAC, 0x3CF6, 0x3D40, 0x3D8A, 534 0x3DD3, 0x3E1D, 0x3E67, 0x3EB1, 535 0x3EFB, 0x3F45, 0x3F8E, 0x3FD8, 536 0x4022, 0x406C, 0x40B6, 0x4100, 537 0x414A, 0x4193, 0x41DD, 0x4227, 538 0x4271, 0x42BB, 0x4304, 0x434E, 539 0x4398, 0x43E1, 0x442B, 0x4475, 540 0x44BE, 0x4508, 0x4551, 0x459B, 541 0x45E4, 0x462E, 0x4677, 0x46C0, 542 0x4709, 0x4753, 0x479C, 0x47E5, 543 0x482E, 0x4877, 0x48C0, 0x4909, 544 0x4951, 0x499A, 0x49E3, 0x4A2B, 545 0x4A74, 0x4ABC, 0x4B04, 0x4B4D, 546 0x4B95, 0x4BDD, 0x4C25, 0x4C6D, 547 0x4CB5, 0x4CFC, 0x4D44, 0x4D8C, 548 0x4DD3, 0x4E1A, 0x4E62, 0x4EA9, 549 0x4EF0, 0x4F37, 0x4F7E, 0x4FC4, 550 0x500B, 0x5051, 0x5098, 0x50DE, 551 0x5124, 0x516A, 0x51B0, 0x51F6, 552 0x523B, 0x5281, 0x52C6, 0x530B, 553 0x5351, 0x5396, 0x53DA, 0x541F, 554 0x5464, 0x54A8, 0x54EC, 0x5530, 555 0x5574, 0x55B8, 0x55FC, 0x563F, 556 0x5683, 0x56C6, 0x5709, 0x574C, 557 0x578F, 0x57D1, 0x5814, 0x5856, 558 0x5898, 0x58DA, 0x591B, 0x595D, 559 0x599E, 0x59E0, 0x5A21, 0x5A61, 560 0x5AA2, 0x5AE3, 0x5B23, 0x5B63, 561 0x5BA3, 0x5BE3, 0x5C22, 0x5C62, 562 0x5CA1, 0x5CE0, 0x5D1F, 0x5D5D, 563 0x5D9C, 0x5DDA, 0x5E18, 0x5E56, 564 0x5E93, 0x5ED1, 0x5F0E, 0x5F4B, 565 0x5F87, 0x5FC4, 0x6000, 0x603D, 566 0x6079, 0x60B4, 0x60F0, 0x612B, 567 0x6166, 0x61A1, 0x61DC, 0x6216, 568 0x6250, 0x628A, 0x62C4, 0x62FE, 569 0x6337, 0x6370, 0x63A9, 0x63E2, 570 0x641A, 0x6452, 0x648A, 0x64C2, 571 0x64F9, 0x6531, 0x6568, 0x659E, 572 0x65D5, 0x660B, 0x6641, 0x6677, 573 0x66AD, 0x66E2, 0x6717, 0x674C, 574 0x6781, 0x67B5, 0x67E9, 0x681D, 575 0x6851, 0x6885, 0x68B8, 0x68EB, 576 0x691D, 0x6950, 0x6982, 0x69B4, 577 0x69E6, 0x6A17, 0x6A48, 0x6A79, 578 0x6AAA, 0x6ADB, 0x6B0B, 0x6B3B, 579 0x6B6A, 0x6B9A, 0x6BC9, 0x6BF8, 580 0x6C27, 0x6C55, 0x6C83, 0x6CB1, 581 0x6CDF, 0x6D0D, 0x6D3A, 0x6D67, 582 0x6D93, 0x6DC0, 0x6DEC, 0x6E18, 583 0x6E44, 0x6E6F, 0x6E9A, 0x6EC5, 584 0x6EF0, 0x6F1A, 0x6F44, 0x6F6E, 585 0x6F98, 0x6FC1, 0x6FEA, 0x7013, 586 0x703C, 0x7064, 0x708C, 0x70B4, 587 0x70DB, 0x7103, 0x712A, 0x7151, 588 0x7177, 0x719D, 0x71C3, 0x71E9, 589 0x720F, 0x7234, 0x7259, 0x727E, 590 0x72A2, 0x72C7, 0x72EB, 0x730E, 591 0x7332, 0x7355, 0x7378, 0x739B, 592 0x73BD, 0x73E0, 0x7402, 0x7424, 593 0x7445, 0x7466, 0x7487, 0x74A8, 594 0x74C9, 0x74E9, 0x7509, 0x7529, 595 0x7548, 0x7568, 0x7587, 0x75A5, 596 0x75C4, 0x75E2, 0x7601, 0x761E, 597 0x763C, 0x7659, 0x7676, 0x7693, 598 0x76B0, 0x76CC, 0x76E9, 0x7705, 599 0x7720, 0x773C, 0x7757, 0x7772, 600 0x778D, 0x77A8, 0x77C2, 0x77DC, 601 0x77F6, 0x780F, 0x7829, 0x7842, 602 0x785B, 0x7874, 0x788C, 0x78A5, 603 0x78BD, 0x78D5, 0x78EC, 0x7904, 604 0x791B, 0x7932, 0x7949, 0x795F, 605 0x7976, 0x798C, 0x79A2, 0x79B7, 606 0x79CD, 0x79E2, 0x79F7, 0x7A0C, 607 0x7A21, 0x7A35, 0x7A4A, 0x7A5E, 608 0x7A72, 0x7A85, 0x7A99, 0x7AAC, 609 0x7ABF, 0x7AD2, 0x7AE5, 0x7AF7, 610 0x7B09, 0x7B1B, 0x7B2D, 0x7B3F, 611 0x7B51, 0x7B62, 0x7B73, 0x7B84, 612 0x7B95, 0x7BA5, 0x7BB6, 0x7BC6, 613 0x7BD6, 0x7BE6, 0x7BF6, 0x7C05, 614 0x7C15, 0x7C24, 0x7C33, 0x7C42, 615 0x7C50, 0x7C5F, 0x7C6D, 0x7C7B, 616 0x7C89, 0x7C97, 0x7CA5, 0x7CB2, 617 0x7CC0, 0x7CCD, 0x7CDA, 0x7CE7, 618 0x7CF3, 0x7D00, 0x7D0C, 0x7D18, 619 0x7D25, 0x7D31, 0x7D3C, 0x7D48, 620 0x7D53, 0x7D5F, 0x7D6A, 0x7D75, 621 0x7D80, 0x7D8B, 0x7D95, 0x7DA0, 622 0x7DAA, 0x7DB4, 0x7DBE, 0x7DC8, 623 0x7DD2, 0x7DDC, 0x7DE5, 0x7DEF, 624 0x7DF8, 0x7E01, 0x7E0A, 0x7E13, 625 0x7E1C, 0x7E25, 0x7E2D, 0x7E36, 626 0x7E3E, 0x7E46, 0x7E4E, 0x7E56, 627 0x7E5E, 0x7E66, 0x7E6D, 0x7E75, 628 0x7E7C, 0x7E83, 0x7E8B, 0x7E92, 629 0x7E99, 0x7EA0, 0x7EA6, 0x7EAD, 630 0x7EB3, 0x7EBA, 0x7EC0, 0x7EC6, 631 0x7ECD, 0x7ED3, 0x7ED9, 0x7EDE, 632 0x7EE4, 0x7EEA, 0x7EF0, 0x7EF5, 633 0x7EFA, 0x7F00, 0x7F05, 0x7F0A, 634 0x7F0F, 0x7F14, 0x7F19, 0x7F1E, 635 0x7F23, 0x7F27, 0x7F2C, 0x7F30, 636 0x7F35, 0x7F39, 0x7F3D, 0x7F41, 637 0x7F46, 0x7F4A, 0x7F4E, 0x7F52, 638 0x7F55, 0x7F59, 0x7F5D, 0x7F60, 639 0x7F64, 0x7F68, 0x7F6B, 0x7F6E, 640 0x7F72, 0x7F75, 0x7F78, 0x7F7B, 641 0x7F7E, 0x7F81, 0x7F84, 0x7F87, 642 0x7F8A, 0x7F8D, 0x7F90, 0x7F92, 643 0x7F95, 0x7F97, 0x7F9A, 0x7F9C, 644 0x7F9F, 0x7FA1, 0x7FA4, 0x7FA6, 645 0x7FA8, 0x7FAA, 0x7FAC, 0x7FAE, 646 0x7FB1, 0x7FB3, 0x7FB5, 0x7FB6, 647 0x7FB8, 0x7FBA, 0x7FBC, 0x7FBE, 648 0x7FBF, 0x7FC1, 0x7FC3, 0x7FC4, 649 0x7FC6, 0x7FC8, 0x7FC9, 0x7FCB, 650 0x7FCC, 0x7FCD, 0x7FCF, 0x7FD0, 651 0x7FD1, 0x7FD3, 0x7FD4, 0x7FD5, 652 0x7FD6, 0x7FD8, 0x7FD9, 0x7FDA, 653 0x7FDB, 0x7FDC, 0x7FDD, 0x7FDE, 654 0x7FDF, 0x7FE0, 0x7FE1, 0x7FE2, 655 0x7FE3, 0x7FE4, 0x7FE4, 0x7FE5, 656 0x7FE6, 0x7FE7, 0x7FE8, 0x7FE8, 657 0x7FE9, 0x7FEA, 0x7FEA, 0x7FEB, 658 0x7FEC, 0x7FEC, 0x7FED, 0x7FEE, 659 0x7FEE, 0x7FEF, 0x7FEF, 0x7FF0, 660 0x7FF0, 0x7FF1, 0x7FF1, 0x7FF2, 661 0x7FF2, 0x7FF3, 0x7FF3, 0x7FF4, 662 0x7FF4, 0x7FF4, 0x7FF5, 0x7FF5, 663 0x7FF6, 0x7FF6, 0x7FF6, 0x7FF7, 664 0x7FF7, 0x7FF7, 0x7FF8, 0x7FF8, 665 0x7FF8, 0x7FF8, 0x7FF9, 0x7FF9, 666 0x7FF9, 0x7FF9, 0x7FFA, 0x7FFA, 667 0x7FFA, 0x7FFA, 0x7FFA, 0x7FFB, 668 0x7FFB, 0x7FFB, 0x7FFB, 0x7FFB, 669 0x7FFC, 0x7FFC, 0x7FFC, 0x7FFC, 670 0x7FFC, 0x7FFC, 0x7FFC, 0x7FFC, 671 0x7FFD, 0x7FFD, 0x7FFD, 0x7FFD, 672 0x7FFD, 0x7FFD, 0x7FFD, 0x7FFD, 673 0x7FFD, 0x7FFD, 0x7FFE, 0x7FFE, 674 0x7FFE, 0x7FFE, 0x7FFE, 0x7FFE, 675 0x7FFE, 0x7FFE, 0x7FFE, 0x7FFE, 676 0x7FFE, 0x7FFE, 0x7FFE, 0x7FFE, 677 0x7FFE, 0x7FFE, 0x7FFE, 0x7FFE, 678 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 679 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 680 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 681 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 682 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 683 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 684 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 685 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 686 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 687 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF 688 689 }; 690 691 692 693 694 const Int16 Short_Window_KBD_fxp[SHORT_WINDOW] = 695 { 696 697 0x0001, 0x0004, 0x0008, 0x000D, 698 0x0014, 0x001D, 0x0029, 0x0039, 699 0x004C, 0x0063, 0x0080, 0x00A2, 700 0x00CB, 0x00FB, 0x0133, 0x0174, 701 0x01BE, 0x0214, 0x0275, 0x02E3, 702 0x035E, 0x03E8, 0x0481, 0x052B, 703 0x05E7, 0x06B4, 0x0795, 0x088A, 704 0x0993, 0x0AB2, 0x0BE7, 0x0D32, 705 0x0E94, 0x100E, 0x119F, 0x1347, 706 0x1507, 0x16DE, 0x18CC, 0x1AD0, 707 0x1CEB, 0x1F1A, 0x215F, 0x23B6, 708 0x2620, 0x289C, 0x2B27, 0x2DC0, 709 0x3066, 0x3317, 0x35D2, 0x3894, 710 0x3B5C, 0x3E28, 0x40F6, 0x43C4, 711 0x468F, 0x4956, 0x4C18, 0x4ED1, 712 0x5181, 0x5425, 0x56BC, 0x5944, 713 0x5BBB, 0x5E21, 0x6073, 0x62B1, 714 0x64DA, 0x66EC, 0x68E7, 0x6ACB, 715 0x6C96, 0x6E49, 0x6FE4, 0x7166, 716 0x72D0, 0x7421, 0x755B, 0x767E, 717 0x778A, 0x7881, 0x7962, 0x7A30, 718 0x7AEA, 0x7B92, 0x7C29, 0x7CB0, 719 0x7D28, 0x7D92, 0x7DF0, 0x7E42, 720 0x7E89, 0x7EC7, 0x7EFC, 0x7F2A, 721 0x7F50, 0x7F71, 0x7F8C, 0x7FA3, 722 0x7FB6, 0x7FC5, 0x7FD2, 0x7FDC, 723 0x7FE4, 0x7FEB, 0x7FF0, 0x7FF4, 724 0x7FF7, 0x7FF9, 0x7FFB, 0x7FFC, 725 0x7FFD, 0x7FFE, 0x7FFE, 0x7FFE, 726 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 727 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 728 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF 729 }; 730 731