1b815c7f3Sopenharmony_ci/* 2b815c7f3Sopenharmony_ci * Copyright 1992 by Jutta Degener and Carsten Bormann, Technische 3b815c7f3Sopenharmony_ci * Universitaet Berlin. See the accompanying file "COPYRIGHT" for 4b815c7f3Sopenharmony_ci * details. THERE IS ABSOLUTELY NO WARRANTY FOR THIS SOFTWARE. 5b815c7f3Sopenharmony_ci */ 6b815c7f3Sopenharmony_ci 7b815c7f3Sopenharmony_ci#include "gsm610_priv.h" 8b815c7f3Sopenharmony_ci#include "gsm.h" 9b815c7f3Sopenharmony_ci 10b815c7f3Sopenharmony_civoid gsm_encode (gsm s, gsm_signal * source, gsm_byte * c) 11b815c7f3Sopenharmony_ci{ 12b815c7f3Sopenharmony_ci int16_t LARc [8], Nc [4], Mc [4], bc [4], xmaxc [4], xmc [13 * 4] ; 13b815c7f3Sopenharmony_ci 14b815c7f3Sopenharmony_ci Gsm_Coder (s, source, LARc, Nc, bc, Mc, xmaxc, xmc) ; 15b815c7f3Sopenharmony_ci 16b815c7f3Sopenharmony_ci 17b815c7f3Sopenharmony_ci /* variable size 18b815c7f3Sopenharmony_ci 19b815c7f3Sopenharmony_ci GSM_MAGIC 4 20b815c7f3Sopenharmony_ci 21b815c7f3Sopenharmony_ci LARc [0] 6 22b815c7f3Sopenharmony_ci LARc [1] 6 23b815c7f3Sopenharmony_ci LARc [2] 5 24b815c7f3Sopenharmony_ci LARc [3] 5 25b815c7f3Sopenharmony_ci LARc [4] 4 26b815c7f3Sopenharmony_ci LARc [5] 4 27b815c7f3Sopenharmony_ci LARc [6] 3 28b815c7f3Sopenharmony_ci LARc [7] 3 29b815c7f3Sopenharmony_ci 30b815c7f3Sopenharmony_ci Nc [0] 7 31b815c7f3Sopenharmony_ci bc [0] 2 32b815c7f3Sopenharmony_ci Mc [0] 2 33b815c7f3Sopenharmony_ci xmaxc [0] 6 34b815c7f3Sopenharmony_ci xmc [0] 3 35b815c7f3Sopenharmony_ci xmc [1] 3 36b815c7f3Sopenharmony_ci xmc [2] 3 37b815c7f3Sopenharmony_ci xmc [3] 3 38b815c7f3Sopenharmony_ci xmc [4] 3 39b815c7f3Sopenharmony_ci xmc [5] 3 40b815c7f3Sopenharmony_ci xmc [6] 3 41b815c7f3Sopenharmony_ci xmc [7] 3 42b815c7f3Sopenharmony_ci xmc [8] 3 43b815c7f3Sopenharmony_ci xmc [9] 3 44b815c7f3Sopenharmony_ci xmc [10] 3 45b815c7f3Sopenharmony_ci xmc [11] 3 46b815c7f3Sopenharmony_ci xmc [12] 3 47b815c7f3Sopenharmony_ci 48b815c7f3Sopenharmony_ci Nc [1] 7 49b815c7f3Sopenharmony_ci bc [1] 2 50b815c7f3Sopenharmony_ci Mc [1] 2 51b815c7f3Sopenharmony_ci xmaxc [1] 6 52b815c7f3Sopenharmony_ci xmc [13] 3 53b815c7f3Sopenharmony_ci xmc [14] 3 54b815c7f3Sopenharmony_ci xmc [15] 3 55b815c7f3Sopenharmony_ci xmc [16] 3 56b815c7f3Sopenharmony_ci xmc [17] 3 57b815c7f3Sopenharmony_ci xmc [18] 3 58b815c7f3Sopenharmony_ci xmc [19] 3 59b815c7f3Sopenharmony_ci xmc [20] 3 60b815c7f3Sopenharmony_ci xmc [21] 3 61b815c7f3Sopenharmony_ci xmc [22] 3 62b815c7f3Sopenharmony_ci xmc [23] 3 63b815c7f3Sopenharmony_ci xmc [24] 3 64b815c7f3Sopenharmony_ci xmc [25] 3 65b815c7f3Sopenharmony_ci 66b815c7f3Sopenharmony_ci Nc [2] 7 67b815c7f3Sopenharmony_ci bc [2] 2 68b815c7f3Sopenharmony_ci Mc [2] 2 69b815c7f3Sopenharmony_ci xmaxc [2] 6 70b815c7f3Sopenharmony_ci xmc [26] 3 71b815c7f3Sopenharmony_ci xmc [27] 3 72b815c7f3Sopenharmony_ci xmc [28] 3 73b815c7f3Sopenharmony_ci xmc [29] 3 74b815c7f3Sopenharmony_ci xmc [30] 3 75b815c7f3Sopenharmony_ci xmc [31] 3 76b815c7f3Sopenharmony_ci xmc [32] 3 77b815c7f3Sopenharmony_ci xmc [33] 3 78b815c7f3Sopenharmony_ci xmc [34] 3 79b815c7f3Sopenharmony_ci xmc [35] 3 80b815c7f3Sopenharmony_ci xmc [36] 3 81b815c7f3Sopenharmony_ci xmc [37] 3 82b815c7f3Sopenharmony_ci xmc [38] 3 83b815c7f3Sopenharmony_ci 84b815c7f3Sopenharmony_ci Nc [3] 7 85b815c7f3Sopenharmony_ci bc [3] 2 86b815c7f3Sopenharmony_ci Mc [3] 2 87b815c7f3Sopenharmony_ci xmaxc [3] 6 88b815c7f3Sopenharmony_ci xmc [39] 3 89b815c7f3Sopenharmony_ci xmc [40] 3 90b815c7f3Sopenharmony_ci xmc [41] 3 91b815c7f3Sopenharmony_ci xmc [42] 3 92b815c7f3Sopenharmony_ci xmc [43] 3 93b815c7f3Sopenharmony_ci xmc [44] 3 94b815c7f3Sopenharmony_ci xmc [45] 3 95b815c7f3Sopenharmony_ci xmc [46] 3 96b815c7f3Sopenharmony_ci xmc [47] 3 97b815c7f3Sopenharmony_ci xmc [48] 3 98b815c7f3Sopenharmony_ci xmc [49] 3 99b815c7f3Sopenharmony_ci xmc [50] 3 100b815c7f3Sopenharmony_ci xmc [51] 3 101b815c7f3Sopenharmony_ci */ 102b815c7f3Sopenharmony_ci 103b815c7f3Sopenharmony_ci#ifdef WAV49 104b815c7f3Sopenharmony_ci 105b815c7f3Sopenharmony_ci if (s->wav_fmt) 106b815c7f3Sopenharmony_ci { s->frame_index = !s->frame_index ; 107b815c7f3Sopenharmony_ci if (s->frame_index) 108b815c7f3Sopenharmony_ci { uint16_t sr ; 109b815c7f3Sopenharmony_ci 110b815c7f3Sopenharmony_ci sr = 0 ; 111b815c7f3Sopenharmony_ci sr = sr >> 6 | LARc [0] << 10 ; 112b815c7f3Sopenharmony_ci sr = sr >> 6 | LARc [1] << 10 ; 113b815c7f3Sopenharmony_ci *c++ = sr >> 4 ; 114b815c7f3Sopenharmony_ci sr = sr >> 5 | LARc [2] << 11 ; 115b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 116b815c7f3Sopenharmony_ci sr = sr >> 5 | LARc [3] << 11 ; 117b815c7f3Sopenharmony_ci sr = sr >> 4 | LARc [4] << 12 ; 118b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 119b815c7f3Sopenharmony_ci sr = sr >> 4 | LARc [5] << 12 ; 120b815c7f3Sopenharmony_ci sr = sr >> 3 | LARc [6] << 13 ; 121b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 122b815c7f3Sopenharmony_ci sr = sr >> 3 | LARc [7] << 13 ; 123b815c7f3Sopenharmony_ci sr = sr >> 7 | Nc [0] << 9 ; 124b815c7f3Sopenharmony_ci *c++ = sr >> 5 ; 125b815c7f3Sopenharmony_ci sr = sr >> 2 | bc [0] << 14 ; 126b815c7f3Sopenharmony_ci sr = sr >> 2 | Mc [0] << 14 ; 127b815c7f3Sopenharmony_ci sr = sr >> 6 | xmaxc [0] << 10 ; 128b815c7f3Sopenharmony_ci *c++ = sr >> 3 ; 129b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [0] << 13 ; 130b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 131b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [1] << 13 ; 132b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [2] << 13 ; 133b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [3] << 13 ; 134b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 135b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [4] << 13 ; 136b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [5] << 13 ; 137b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [6] << 13 ; 138b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 139b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [7] << 13 ; 140b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [8] << 13 ; 141b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 142b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [9] << 13 ; 143b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [10] << 13 ; 144b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [11] << 13 ; 145b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 146b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [12] << 13 ; 147b815c7f3Sopenharmony_ci sr = sr >> 7 | Nc [1] << 9 ; 148b815c7f3Sopenharmony_ci *c++ = sr >> 5 ; 149b815c7f3Sopenharmony_ci sr = sr >> 2 | bc [1] << 14 ; 150b815c7f3Sopenharmony_ci sr = sr >> 2 | Mc [1] << 14 ; 151b815c7f3Sopenharmony_ci sr = sr >> 6 | xmaxc [1] << 10 ; 152b815c7f3Sopenharmony_ci *c++ = sr >> 3 ; 153b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [13] << 13 ; 154b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 155b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [14] << 13 ; 156b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [15] << 13 ; 157b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [16] << 13 ; 158b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 159b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [17] << 13 ; 160b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [18] << 13 ; 161b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [19] << 13 ; 162b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 163b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [20] << 13 ; 164b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [21] << 13 ; 165b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 166b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [22] << 13 ; 167b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [23] << 13 ; 168b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [24] << 13 ; 169b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 170b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [25] << 13 ; 171b815c7f3Sopenharmony_ci sr = sr >> 7 | Nc [2] << 9 ; 172b815c7f3Sopenharmony_ci *c++ = sr >> 5 ; 173b815c7f3Sopenharmony_ci sr = sr >> 2 | bc [2] << 14 ; 174b815c7f3Sopenharmony_ci sr = sr >> 2 | Mc [2] << 14 ; 175b815c7f3Sopenharmony_ci sr = sr >> 6 | xmaxc [2] << 10 ; 176b815c7f3Sopenharmony_ci *c++ = sr >> 3 ; 177b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [26] << 13 ; 178b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 179b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [27] << 13 ; 180b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [28] << 13 ; 181b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [29] << 13 ; 182b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 183b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [30] << 13 ; 184b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [31] << 13 ; 185b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [32] << 13 ; 186b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 187b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [33] << 13 ; 188b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [34] << 13 ; 189b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 190b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [35] << 13 ; 191b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [36] << 13 ; 192b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [37] << 13 ; 193b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 194b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [38] << 13 ; 195b815c7f3Sopenharmony_ci sr = sr >> 7 | Nc [3] << 9 ; 196b815c7f3Sopenharmony_ci *c++ = sr >> 5 ; 197b815c7f3Sopenharmony_ci sr = sr >> 2 | bc [3] << 14 ; 198b815c7f3Sopenharmony_ci sr = sr >> 2 | Mc [3] << 14 ; 199b815c7f3Sopenharmony_ci sr = sr >> 6 | xmaxc [3] << 10 ; 200b815c7f3Sopenharmony_ci *c++ = sr >> 3 ; 201b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [39] << 13 ; 202b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 203b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [40] << 13 ; 204b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [41] << 13 ; 205b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [42] << 13 ; 206b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 207b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [43] << 13 ; 208b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [44] << 13 ; 209b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [45] << 13 ; 210b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 211b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [46] << 13 ; 212b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [47] << 13 ; 213b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 214b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [48] << 13 ; 215b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [49] << 13 ; 216b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [50] << 13 ; 217b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 218b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [51] << 13 ; 219b815c7f3Sopenharmony_ci sr = sr >> 4 ; 220b815c7f3Sopenharmony_ci *c = sr >> 8 ; 221b815c7f3Sopenharmony_ci s->frame_chain = *c ; 222b815c7f3Sopenharmony_ci } 223b815c7f3Sopenharmony_ci else { 224b815c7f3Sopenharmony_ci uint16_t sr ; 225b815c7f3Sopenharmony_ci 226b815c7f3Sopenharmony_ci sr = 0 ; 227b815c7f3Sopenharmony_ci sr = sr >> 4 | s->frame_chain << 12 ; 228b815c7f3Sopenharmony_ci sr = sr >> 6 | LARc [0] << 10 ; 229b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 230b815c7f3Sopenharmony_ci sr = sr >> 6 | LARc [1] << 10 ; 231b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 232b815c7f3Sopenharmony_ci sr = sr >> 5 | LARc [2] << 11 ; 233b815c7f3Sopenharmony_ci sr = sr >> 5 | LARc [3] << 11 ; 234b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 235b815c7f3Sopenharmony_ci sr = sr >> 4 | LARc [4] << 12 ; 236b815c7f3Sopenharmony_ci sr = sr >> 4 | LARc [5] << 12 ; 237b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 238b815c7f3Sopenharmony_ci sr = sr >> 3 | LARc [6] << 13 ; 239b815c7f3Sopenharmony_ci sr = sr >> 3 | LARc [7] << 13 ; 240b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 241b815c7f3Sopenharmony_ci sr = sr >> 7 | Nc [0] << 9 ; 242b815c7f3Sopenharmony_ci sr = sr >> 2 | bc [0] << 14 ; 243b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 244b815c7f3Sopenharmony_ci sr = sr >> 2 | Mc [0] << 14 ; 245b815c7f3Sopenharmony_ci sr = sr >> 6 | xmaxc [0] << 10 ; 246b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 247b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [0] << 13 ; 248b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [1] << 13 ; 249b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [2] << 13 ; 250b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 251b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [3] << 13 ; 252b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [4] << 13 ; 253b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 254b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [5] << 13 ; 255b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [6] << 13 ; 256b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [7] << 13 ; 257b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 258b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [8] << 13 ; 259b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [9] << 13 ; 260b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [10] << 13 ; 261b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 262b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [11] << 13 ; 263b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [12] << 13 ; 264b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 265b815c7f3Sopenharmony_ci sr = sr >> 7 | Nc [1] << 9 ; 266b815c7f3Sopenharmony_ci sr = sr >> 2 | bc [1] << 14 ; 267b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 268b815c7f3Sopenharmony_ci sr = sr >> 2 | Mc [1] << 14 ; 269b815c7f3Sopenharmony_ci sr = sr >> 6 | xmaxc [1] << 10 ; 270b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 271b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [13] << 13 ; 272b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [14] << 13 ; 273b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [15] << 13 ; 274b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 275b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [16] << 13 ; 276b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [17] << 13 ; 277b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 278b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [18] << 13 ; 279b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [19] << 13 ; 280b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [20] << 13 ; 281b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 282b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [21] << 13 ; 283b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [22] << 13 ; 284b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [23] << 13 ; 285b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 286b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [24] << 13 ; 287b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [25] << 13 ; 288b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 289b815c7f3Sopenharmony_ci sr = sr >> 7 | Nc [2] << 9 ; 290b815c7f3Sopenharmony_ci sr = sr >> 2 | bc [2] << 14 ; 291b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 292b815c7f3Sopenharmony_ci sr = sr >> 2 | Mc [2] << 14 ; 293b815c7f3Sopenharmony_ci sr = sr >> 6 | xmaxc [2] << 10 ; 294b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 295b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [26] << 13 ; 296b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [27] << 13 ; 297b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [28] << 13 ; 298b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 299b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [29] << 13 ; 300b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [30] << 13 ; 301b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 302b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [31] << 13 ; 303b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [32] << 13 ; 304b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [33] << 13 ; 305b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 306b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [34] << 13 ; 307b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [35] << 13 ; 308b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [36] << 13 ; 309b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 310b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [37] << 13 ; 311b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [38] << 13 ; 312b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 313b815c7f3Sopenharmony_ci sr = sr >> 7 | Nc [3] << 9 ; 314b815c7f3Sopenharmony_ci sr = sr >> 2 | bc [3] << 14 ; 315b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 316b815c7f3Sopenharmony_ci sr = sr >> 2 | Mc [3] << 14 ; 317b815c7f3Sopenharmony_ci sr = sr >> 6 | xmaxc [3] << 10 ; 318b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 319b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [39] << 13 ; 320b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [40] << 13 ; 321b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [41] << 13 ; 322b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 323b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [42] << 13 ; 324b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [43] << 13 ; 325b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 326b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [44] << 13 ; 327b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [45] << 13 ; 328b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [46] << 13 ; 329b815c7f3Sopenharmony_ci *c++ = sr >> 7 ; 330b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [47] << 13 ; 331b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [48] << 13 ; 332b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [49] << 13 ; 333b815c7f3Sopenharmony_ci *c++ = sr >> 6 ; 334b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [50] << 13 ; 335b815c7f3Sopenharmony_ci sr = sr >> 3 | xmc [51] << 13 ; 336b815c7f3Sopenharmony_ci *c++ = sr >> 8 ; 337b815c7f3Sopenharmony_ci } 338b815c7f3Sopenharmony_ci } 339b815c7f3Sopenharmony_ci 340b815c7f3Sopenharmony_ci else 341b815c7f3Sopenharmony_ci 342b815c7f3Sopenharmony_ci#endif /* WAV49 */ 343b815c7f3Sopenharmony_ci { 344b815c7f3Sopenharmony_ci 345b815c7f3Sopenharmony_ci *c++ = ((GSM_MAGIC & 0xF) << 4) /* 1 */ 346b815c7f3Sopenharmony_ci | ((LARc [0] >> 2) & 0xF) ; 347b815c7f3Sopenharmony_ci *c++ = ((LARc [0] & 0x3) << 6) 348b815c7f3Sopenharmony_ci | (LARc [1] & 0x3F) ; 349b815c7f3Sopenharmony_ci *c++ = ((LARc [2] & 0x1F) << 3) 350b815c7f3Sopenharmony_ci | ((LARc [3] >> 2) & 0x7) ; 351b815c7f3Sopenharmony_ci *c++ = ((LARc [3] & 0x3) << 6) 352b815c7f3Sopenharmony_ci | ((LARc [4] & 0xF) << 2) 353b815c7f3Sopenharmony_ci | ((LARc [5] >> 2) & 0x3) ; 354b815c7f3Sopenharmony_ci *c++ = ((LARc [5] & 0x3) << 6) 355b815c7f3Sopenharmony_ci | ((LARc [6] & 0x7) << 3) 356b815c7f3Sopenharmony_ci | (LARc [7] & 0x7) ; 357b815c7f3Sopenharmony_ci *c++ = ((Nc [0] & 0x7F) << 1) 358b815c7f3Sopenharmony_ci | ((bc [0] >> 1) & 0x1) ; 359b815c7f3Sopenharmony_ci *c++ = ((bc [0] & 0x1) << 7) 360b815c7f3Sopenharmony_ci | ((Mc [0] & 0x3) << 5) 361b815c7f3Sopenharmony_ci | ((xmaxc [0] >> 1) & 0x1F) ; 362b815c7f3Sopenharmony_ci *c++ = ((xmaxc [0] & 0x1) << 7) 363b815c7f3Sopenharmony_ci | ((xmc [0] & 0x7) << 4) 364b815c7f3Sopenharmony_ci | ((xmc [1] & 0x7) << 1) 365b815c7f3Sopenharmony_ci | ((xmc [2] >> 2) & 0x1) ; 366b815c7f3Sopenharmony_ci *c++ = ((xmc [2] & 0x3) << 6) 367b815c7f3Sopenharmony_ci | ((xmc [3] & 0x7) << 3) 368b815c7f3Sopenharmony_ci | (xmc [4] & 0x7) ; 369b815c7f3Sopenharmony_ci *c++ = ((xmc [5] & 0x7) << 5) /* 10 */ 370b815c7f3Sopenharmony_ci | ((xmc [6] & 0x7) << 2) 371b815c7f3Sopenharmony_ci | ((xmc [7] >> 1) & 0x3) ; 372b815c7f3Sopenharmony_ci *c++ = ((xmc [7] & 0x1) << 7) 373b815c7f3Sopenharmony_ci | ((xmc [8] & 0x7) << 4) 374b815c7f3Sopenharmony_ci | ((xmc [9] & 0x7) << 1) 375b815c7f3Sopenharmony_ci | ((xmc [10] >> 2) & 0x1) ; 376b815c7f3Sopenharmony_ci *c++ = ((xmc [10] & 0x3) << 6) 377b815c7f3Sopenharmony_ci | ((xmc [11] & 0x7) << 3) 378b815c7f3Sopenharmony_ci | (xmc [12] & 0x7) ; 379b815c7f3Sopenharmony_ci *c++ = ((Nc [1] & 0x7F) << 1) 380b815c7f3Sopenharmony_ci | ((bc [1] >> 1) & 0x1) ; 381b815c7f3Sopenharmony_ci *c++ = ((bc [1] & 0x1) << 7) 382b815c7f3Sopenharmony_ci | ((Mc [1] & 0x3) << 5) 383b815c7f3Sopenharmony_ci | ((xmaxc [1] >> 1) & 0x1F) ; 384b815c7f3Sopenharmony_ci *c++ = ((xmaxc [1] & 0x1) << 7) 385b815c7f3Sopenharmony_ci | ((xmc [13] & 0x7) << 4) 386b815c7f3Sopenharmony_ci | ((xmc [14] & 0x7) << 1) 387b815c7f3Sopenharmony_ci | ((xmc [15] >> 2) & 0x1) ; 388b815c7f3Sopenharmony_ci *c++ = ((xmc [15] & 0x3) << 6) 389b815c7f3Sopenharmony_ci | ((xmc [16] & 0x7) << 3) 390b815c7f3Sopenharmony_ci | (xmc [17] & 0x7) ; 391b815c7f3Sopenharmony_ci *c++ = ((xmc [18] & 0x7) << 5) 392b815c7f3Sopenharmony_ci | ((xmc [19] & 0x7) << 2) 393b815c7f3Sopenharmony_ci | ((xmc [20] >> 1) & 0x3) ; 394b815c7f3Sopenharmony_ci *c++ = ((xmc [20] & 0x1) << 7) 395b815c7f3Sopenharmony_ci | ((xmc [21] & 0x7) << 4) 396b815c7f3Sopenharmony_ci | ((xmc [22] & 0x7) << 1) 397b815c7f3Sopenharmony_ci | ((xmc [23] >> 2) & 0x1) ; 398b815c7f3Sopenharmony_ci *c++ = ((xmc [23] & 0x3) << 6) 399b815c7f3Sopenharmony_ci | ((xmc [24] & 0x7) << 3) 400b815c7f3Sopenharmony_ci | (xmc [25] & 0x7) ; 401b815c7f3Sopenharmony_ci *c++ = ((Nc [2] & 0x7F) << 1) /* 20 */ 402b815c7f3Sopenharmony_ci | ((bc [2] >> 1) & 0x1) ; 403b815c7f3Sopenharmony_ci *c++ = ((bc [2] & 0x1) << 7) 404b815c7f3Sopenharmony_ci | ((Mc [2] & 0x3) << 5) 405b815c7f3Sopenharmony_ci | ((xmaxc [2] >> 1) & 0x1F) ; 406b815c7f3Sopenharmony_ci *c++ = ((xmaxc [2] & 0x1) << 7) 407b815c7f3Sopenharmony_ci | ((xmc [26] & 0x7) << 4) 408b815c7f3Sopenharmony_ci | ((xmc [27] & 0x7) << 1) 409b815c7f3Sopenharmony_ci | ((xmc [28] >> 2) & 0x1) ; 410b815c7f3Sopenharmony_ci *c++ = ((xmc [28] & 0x3) << 6) 411b815c7f3Sopenharmony_ci | ((xmc [29] & 0x7) << 3) 412b815c7f3Sopenharmony_ci | (xmc [30] & 0x7) ; 413b815c7f3Sopenharmony_ci *c++ = ((xmc [31] & 0x7) << 5) 414b815c7f3Sopenharmony_ci | ((xmc [32] & 0x7) << 2) 415b815c7f3Sopenharmony_ci | ((xmc [33] >> 1) & 0x3) ; 416b815c7f3Sopenharmony_ci *c++ = ((xmc [33] & 0x1) << 7) 417b815c7f3Sopenharmony_ci | ((xmc [34] & 0x7) << 4) 418b815c7f3Sopenharmony_ci | ((xmc [35] & 0x7) << 1) 419b815c7f3Sopenharmony_ci | ((xmc [36] >> 2) & 0x1) ; 420b815c7f3Sopenharmony_ci *c++ = ((xmc [36] & 0x3) << 6) 421b815c7f3Sopenharmony_ci | ((xmc [37] & 0x7) << 3) 422b815c7f3Sopenharmony_ci | (xmc [38] & 0x7) ; 423b815c7f3Sopenharmony_ci *c++ = ((Nc [3] & 0x7F) << 1) 424b815c7f3Sopenharmony_ci | ((bc [3] >> 1) & 0x1) ; 425b815c7f3Sopenharmony_ci *c++ = ((bc [3] & 0x1) << 7) 426b815c7f3Sopenharmony_ci | ((Mc [3] & 0x3) << 5) 427b815c7f3Sopenharmony_ci | ((xmaxc [3] >> 1) & 0x1F) ; 428b815c7f3Sopenharmony_ci *c++ = ((xmaxc [3] & 0x1) << 7) 429b815c7f3Sopenharmony_ci | ((xmc [39] & 0x7) << 4) 430b815c7f3Sopenharmony_ci | ((xmc [40] & 0x7) << 1) 431b815c7f3Sopenharmony_ci | ((xmc [41] >> 2) & 0x1) ; 432b815c7f3Sopenharmony_ci *c++ = ((xmc [41] & 0x3) << 6) /* 30 */ 433b815c7f3Sopenharmony_ci | ((xmc [42] & 0x7) << 3) 434b815c7f3Sopenharmony_ci | (xmc [43] & 0x7) ; 435b815c7f3Sopenharmony_ci *c++ = ((xmc [44] & 0x7) << 5) 436b815c7f3Sopenharmony_ci | ((xmc [45] & 0x7) << 2) 437b815c7f3Sopenharmony_ci | ((xmc [46] >> 1) & 0x3) ; 438b815c7f3Sopenharmony_ci *c++ = ((xmc [46] & 0x1) << 7) 439b815c7f3Sopenharmony_ci | ((xmc [47] & 0x7) << 4) 440b815c7f3Sopenharmony_ci | ((xmc [48] & 0x7) << 1) 441b815c7f3Sopenharmony_ci | ((xmc [49] >> 2) & 0x1) ; 442b815c7f3Sopenharmony_ci *c++ = ((xmc [49] & 0x3) << 6) 443b815c7f3Sopenharmony_ci | ((xmc [50] & 0x7) << 3) 444b815c7f3Sopenharmony_ci | (xmc [51] & 0x7) ; 445b815c7f3Sopenharmony_ci 446b815c7f3Sopenharmony_ci } 447b815c7f3Sopenharmony_ci} 448b815c7f3Sopenharmony_ci 449