14f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber/* ------------------------------------------------------------------ 24f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber * Copyright (C) 1998-2009 PacketVideo 34f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber * 44f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 54f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber * you may not use this file except in compliance with the License. 64f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber * You may obtain a copy of the License at 74f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber * 84f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber * http://www.apache.org/licenses/LICENSE-2.0 94f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber * 104f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber * Unless required by applicable law or agreed to in writing, software 114f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 124f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 134f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber * express or implied. 144f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber * See the License for the specific language governing permissions 154f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber * and limitations under the License. 164f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber * ------------------------------------------------------------------- 174f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber */ 184f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber/**************************************************************************************** 194f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas HuberPortions of this file are derived from the following 3GPP standard: 204f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 214f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 3GPP TS 26.073 224f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ANSI-C code for the Adaptive Multi-Rate (AMR) speech codec 234f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber Available from http://www.3gpp.org 244f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 254f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber(C) 2004, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC) 264f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas HuberPermission to distribute, modify and use this file under the standard license 274f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huberterms listed above has been obtained from the copyright holder. 284f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber****************************************************************************************/ 294f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber/* 304f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 314f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber Pathname: .audio/gsm-amr/c/src/bitreorder.c 324f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 334f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber------------------------------------------------------------------------------ 344f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber REVISION HISTORY 354f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 364f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber Description: Changed file name to bitreorder_tab.c and .h. Also, updated the 374f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber module description. 384f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 394f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber Description: Define "const Word16 *reorderBits[NUM_MODES-1]" as 404f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber "const Word16 *const reorderBits[NUM_MODES-1]". 414f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 424f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber Description: Added #ifdef __cplusplus and removed "extern" from table 434f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber definition. Removed corresponding header file from Include 444f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber section. 454f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 464f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber Description: Put "extern" back. 474f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 484f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber Who: Date: 494f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber Description: 504f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 514f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber------------------------------------------------------------------------------ 524f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber INPUT AND OUTPUT DEFINITIONS 534f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 544f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber Inputs: 554f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber None 564f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 574f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber Local Stores/Buffers/Pointers Needed: 584f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber None 594f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 604f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber Global Stores/Buffers/Pointers Needed: 614f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber None 624f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 634f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber Outputs: 644f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber None 654f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 664f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber Pointers and Buffers Modified: 674f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber None 684f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 694f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber Local Stores Modified: 704f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber None 714f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 724f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber Global Stores Modified: 734f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber None 744f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 754f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber------------------------------------------------------------------------------ 764f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber FUNCTION DESCRIPTION 774f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 784f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber This function contains tables needed to reformat the encoded speech bits 794f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber into IF2, WMF, and ETS. 804f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 814f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber------------------------------------------------------------------------------ 824f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber REQUIREMENTS 834f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 844f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber None 854f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 864f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber------------------------------------------------------------------------------ 874f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber REFERENCES 884f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 894f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber AMR Speech Codec Frame Structure, 904f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 3GPP TS 26.101 version 4.1.0 Release 4, June 2001 914f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 924f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber------------------------------------------------------------------------------ 934f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber PSEUDO-CODE 944f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 954f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 964f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber------------------------------------------------------------------------------ 974f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber RESOURCES USED 984f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber When the code is written for a specific target processor the 994f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber the resources used should be documented below. 1004f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1014f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber STACK USAGE: [stack count for this module] + [variable to represent 1024f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber stack usage for each subroutine called] 1034f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1044f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber where: [stack usage variable] = stack usage for [subroutine 1054f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber name] (see [filename].ext) 1064f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1074f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber DATA MEMORY USED: x words 1084f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1094f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber PROGRAM MEMORY USED: x words 1104f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1114f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber CLOCK CYCLES: [cycle count equation for this module] + [variable 1124f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber used to represent cycle count for each subroutine 1134f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber called] 1144f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1154f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber where: [cycle count variable] = cycle count for [subroutine 1164f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber name] (see [filename].ext) 1174f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1184f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber------------------------------------------------------------------------------ 1194f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber*/ 1204f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1214f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1224f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber/*---------------------------------------------------------------------------- 1234f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber; INCLUDES 1244f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber----------------------------------------------------------------------------*/ 1254f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#include "typedef.h" 126d95a8462c367a7bea1b4aee24917d3e9ed7e2a48Martin Storsjo#include "bitreorder_tab.h" 1274f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1284f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber/*--------------------------------------------------------------------------*/ 1294f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#ifdef __cplusplus 1304f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huberextern "C" 1314f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber{ 1324f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#endif 1334f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1344f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber /*---------------------------------------------------------------------------- 1354f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ; MACROS 1364f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ; Define module specific macros here 1374f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ----------------------------------------------------------------------------*/ 1384f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1394f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1404f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber /*---------------------------------------------------------------------------- 1414f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ; DEFINES 1424f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ; Include all pre-processor statements here. Include conditional 1434f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ; compile variables also. 1444f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ----------------------------------------------------------------------------*/ 1454f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUM_MODES 16 1464f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_MR475 95 1474f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_MR515 103 1484f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_MR59 118 1494f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_MR67 134 1504f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_MR74 148 1514f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_MR795 159 1524f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_MR102 204 1534f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_MR122 244 1544f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_AMR_SID 39 1554f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_GSMEFR_SID 43 1564f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_TDMAEFR_SID 38 1574f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_PDCEFR_SID 37 1584f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_UNUSED1 0 1594f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_UNUSED2 0 1604f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_UNUSED3 0 1614f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define NUMBIT_NO_DATA 0 1624f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1634f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#define MAX_NUM_BITS 244 1644f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber /*---------------------------------------------------------------------------- 1654f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ; LOCAL FUNCTION DEFINITIONS 1664f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ; Function Prototype declaration 1674f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ----------------------------------------------------------------------------*/ 1684f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1694f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1704f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber /*---------------------------------------------------------------------------- 1714f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ; LOCAL STORE/BUFFER/POINTER DEFINITIONS 1724f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ; Variable declaration - defined here and used outside this module 1734f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ----------------------------------------------------------------------------*/ 1744f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber /* number of parameters per modes (values must be <= MAX_PRM_SIZE!) */ 1751ead790eadd0e09a118308caccc7ac37d36f43f3Martin Storsjo const Word16 numOfBits[NUM_MODES] = 1764f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber { 1774f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_MR475, 1784f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_MR515, 1794f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_MR59, 1804f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_MR67, 1814f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_MR74, 1824f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_MR795, 1834f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_MR102, 1844f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_MR122, 1854f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_AMR_SID, 1864f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_GSMEFR_SID, 1874f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_TDMAEFR_SID, 1884f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_PDCEFR_SID, 1894f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_UNUSED1, 1904f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_UNUSED2, 1914f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_UNUSED3, 1924f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber NUMBIT_NO_DATA 1934f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber }; 1944f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1951ead790eadd0e09a118308caccc7ac37d36f43f3Martin Storsjo const Word16 reorderBits_MR475[NUMBIT_MR475] = 1964f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber { 1974f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1984f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 10, 11, 12, 13, 14, 15, 23, 24, 25, 26, 1994f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 27, 28, 48, 49, 61, 62, 82, 83, 47, 46, 2004f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 45, 44, 81, 80, 79, 78, 17, 18, 20, 22, 2014f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 77, 76, 75, 74, 29, 30, 43, 42, 41, 40, 2024f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 38, 39, 16, 19, 21, 50, 51, 59, 60, 63, 2034f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 64, 72, 73, 84, 85, 93, 94, 32, 33, 35, 2044f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 36, 53, 54, 56, 57, 66, 67, 69, 70, 87, 2054f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 88, 90, 91, 34, 55, 68, 89, 37, 58, 71, 2064f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 92, 31, 52, 65, 86 2074f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber }; 2084f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 2091ead790eadd0e09a118308caccc7ac37d36f43f3Martin Storsjo const Word16 reorderBits_MR515[NUMBIT_MR515] = 2104f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber { 2114f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 2124f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 13, 12, 11, 10, 9, 8, 23, 24, 25, 26, 2134f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 27, 46, 65, 84, 45, 44, 43, 64, 63, 62, 2144f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 83, 82, 81, 102, 101, 100, 42, 61, 80, 99, 2154f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 28, 47, 66, 85, 18, 41, 60, 79, 98, 29, 2164f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 48, 67, 17, 20, 22, 40, 59, 78, 97, 21, 2174f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 30, 49, 68, 86, 19, 16, 87, 39, 38, 58, 2184f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 57, 77, 35, 54, 73, 92, 76, 96, 95, 36, 2194f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 55, 74, 93, 32, 51, 33, 52, 70, 71, 89, 2204f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 90, 31, 50, 69, 88, 37, 56, 75, 94, 34, 2214f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 53, 72, 91 2224f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber }; 2234f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 2241ead790eadd0e09a118308caccc7ac37d36f43f3Martin Storsjo const Word16 reorderBits_MR59[NUMBIT_MR59] = 2254f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber { 2264f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 0, 1, 4, 5, 3, 6, 7, 2, 13, 15, 2274f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 8, 9, 11, 12, 14, 10, 16, 28, 74, 29, 2284f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 75, 27, 73, 26, 72, 30, 76, 51, 97, 50, 2294f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 71, 96, 117, 31, 77, 52, 98, 49, 70, 95, 2304f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 116, 53, 99, 32, 78, 33, 79, 48, 69, 94, 2314f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 115, 47, 68, 93, 114, 46, 67, 92, 113, 19, 2324f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 21, 23, 22, 18, 17, 20, 24, 111, 43, 89, 2334f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 110, 64, 65, 44, 90, 25, 45, 66, 91, 112, 2344f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 54, 100, 40, 61, 86, 107, 39, 60, 85, 106, 2354f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 36, 57, 82, 103, 35, 56, 81, 102, 34, 55, 2364f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 80, 101, 42, 63, 88, 109, 41, 62, 87, 108, 2374f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 38, 59, 84, 105, 37, 58, 83, 104 2384f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber }; 2394f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 2401ead790eadd0e09a118308caccc7ac37d36f43f3Martin Storsjo const Word16 reorderBits_MR67[NUMBIT_MR67] = 2414f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber { 2424f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 0, 1, 4, 3, 5, 6, 13, 7, 2, 8, 2434f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 9, 11, 15, 12, 14, 10, 28, 82, 29, 83, 2444f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 27, 81, 26, 80, 30, 84, 16, 55, 109, 56, 2454f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 110, 31, 85, 57, 111, 48, 73, 102, 127, 32, 2464f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 86, 51, 76, 105, 130, 52, 77, 106, 131, 58, 2474f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 112, 33, 87, 19, 23, 53, 78, 107, 132, 21, 2484f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 22, 18, 17, 20, 24, 25, 50, 75, 104, 129, 2494f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 47, 72, 101, 126, 54, 79, 108, 133, 46, 71, 2504f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 100, 125, 128, 103, 74, 49, 45, 70, 99, 124, 2514f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 42, 67, 96, 121, 39, 64, 93, 118, 38, 63, 2524f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 92, 117, 35, 60, 89, 114, 34, 59, 88, 113, 2534f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 44, 69, 98, 123, 43, 68, 97, 122, 41, 66, 2544f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 95, 120, 40, 65, 94, 119, 37, 62, 91, 116, 2554f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 36, 61, 90, 115 2564f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber }; 2574f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 2581ead790eadd0e09a118308caccc7ac37d36f43f3Martin Storsjo const Word16 reorderBits_MR74[NUMBIT_MR74] = 2594f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber { 2604f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 2614f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 10, 11, 12, 13, 14, 15, 16, 26, 87, 27, 2624f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 88, 28, 89, 29, 90, 30, 91, 51, 80, 112, 2634f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 141, 52, 81, 113, 142, 54, 83, 115, 144, 55, 2644f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 84, 116, 145, 58, 119, 59, 120, 21, 22, 23, 2654f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 17, 18, 19, 31, 60, 92, 121, 56, 85, 117, 2664f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 146, 20, 24, 25, 50, 79, 111, 140, 57, 86, 2674f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 118, 147, 49, 78, 110, 139, 48, 77, 53, 82, 2684f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 114, 143, 109, 138, 47, 76, 108, 137, 32, 33, 2694f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 61, 62, 93, 94, 122, 123, 41, 42, 43, 44, 2704f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 45, 46, 70, 71, 72, 73, 74, 75, 102, 103, 2714f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 104, 105, 106, 107, 131, 132, 133, 134, 135, 136, 2724f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 34, 63, 95, 124, 35, 64, 96, 125, 36, 65, 2734f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 97, 126, 37, 66, 98, 127, 38, 67, 99, 128, 2744f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 39, 68, 100, 129, 40, 69, 101, 130 2754f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber }; 2764f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 2771ead790eadd0e09a118308caccc7ac37d36f43f3Martin Storsjo const Word16 reorderBits_MR795[NUMBIT_MR795] = 2784f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber { 2794f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 8, 7, 6, 5, 4, 3, 2, 14, 16, 9, 2804f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 10, 12, 13, 15, 11, 17, 20, 22, 24, 23, 2814f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 19, 18, 21, 56, 88, 122, 154, 57, 89, 123, 2824f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 155, 58, 90, 124, 156, 52, 84, 118, 150, 53, 2834f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 85, 119, 151, 27, 93, 28, 94, 29, 95, 30, 2844f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 96, 31, 97, 61, 127, 62, 128, 63, 129, 59, 2854f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 91, 125, 157, 32, 98, 64, 130, 1, 0, 25, 2864f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 26, 33, 99, 34, 100, 65, 131, 66, 132, 54, 2874f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 86, 120, 152, 60, 92, 126, 158, 55, 87, 121, 2884f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 153, 117, 116, 115, 46, 78, 112, 144, 43, 75, 2894f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 109, 141, 40, 72, 106, 138, 36, 68, 102, 134, 2904f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 114, 149, 148, 147, 146, 83, 82, 81, 80, 51, 2914f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 50, 49, 48, 47, 45, 44, 42, 39, 35, 79, 2924f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 77, 76, 74, 71, 67, 113, 111, 110, 108, 105, 2934f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 101, 145, 143, 142, 140, 137, 133, 41, 73, 107, 2944f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 139, 37, 69, 103, 135, 38, 70, 104, 136 2954f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber }; 2964f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 2971ead790eadd0e09a118308caccc7ac37d36f43f3Martin Storsjo const Word16 reorderBits_MR102[NUMBIT_MR102] = 2984f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber { 2994f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 7, 6, 5, 4, 3, 2, 1, 0, 16, 15, 3004f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 14, 13, 12, 11, 10, 9, 8, 26, 27, 28, 3014f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 29, 30, 31, 115, 116, 117, 118, 119, 120, 72, 3024f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 73, 161, 162, 65, 68, 69, 108, 111, 112, 154, 3034f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 157, 158, 197, 200, 201, 32, 33, 121, 122, 74, 3044f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 75, 163, 164, 66, 109, 155, 198, 19, 23, 21, 3054f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 22, 18, 17, 20, 24, 25, 37, 36, 35, 34, 3064f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 80, 79, 78, 77, 126, 125, 124, 123, 169, 168, 3074f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 167, 166, 70, 67, 71, 113, 110, 114, 159, 156, 3084f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 160, 202, 199, 203, 76, 165, 81, 82, 92, 91, 3094f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 93, 83, 95, 85, 84, 94, 101, 102, 96, 104, 3104f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 86, 103, 87, 97, 127, 128, 138, 137, 139, 129, 3114f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 141, 131, 130, 140, 147, 148, 142, 150, 132, 149, 3124f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 133, 143, 170, 171, 181, 180, 182, 172, 184, 174, 3134f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 173, 183, 190, 191, 185, 193, 175, 192, 176, 186, 3144f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 38, 39, 49, 48, 50, 40, 52, 42, 41, 51, 3154f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 58, 59, 53, 61, 43, 60, 44, 54, 194, 179, 3164f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 189, 196, 177, 195, 178, 187, 188, 151, 136, 146, 3174f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 153, 134, 152, 135, 144, 145, 105, 90, 100, 107, 3184f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 88, 106, 89, 98, 99, 62, 47, 57, 64, 45, 3194f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 63, 46, 55, 56 3204f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber }; 3214f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 3221ead790eadd0e09a118308caccc7ac37d36f43f3Martin Storsjo const Word16 reorderBits_MR122[NUMBIT_MR122] = 3234f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber { 3244f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 3254f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 10, 11, 12, 13, 14, 23, 15, 16, 17, 18, 3264f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 19, 20, 21, 22, 24, 25, 26, 27, 28, 38, 3274f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 141, 39, 142, 40, 143, 41, 144, 42, 145, 43, 3284f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 146, 44, 147, 45, 148, 46, 149, 47, 97, 150, 3294f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 200, 48, 98, 151, 201, 49, 99, 152, 202, 86, 3304f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 136, 189, 239, 87, 137, 190, 240, 88, 138, 191, 3314f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 241, 91, 194, 92, 195, 93, 196, 94, 197, 95, 3324f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 198, 29, 30, 31, 32, 33, 34, 35, 50, 100, 3334f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 153, 203, 89, 139, 192, 242, 51, 101, 154, 204, 3344f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 55, 105, 158, 208, 90, 140, 193, 243, 59, 109, 3354f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 162, 212, 63, 113, 166, 216, 67, 117, 170, 220, 3364f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 36, 37, 54, 53, 52, 58, 57, 56, 62, 61, 3374f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 60, 66, 65, 64, 70, 69, 68, 104, 103, 102, 3384f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 108, 107, 106, 112, 111, 110, 116, 115, 114, 120, 3394f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 119, 118, 157, 156, 155, 161, 160, 159, 165, 164, 3404f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 163, 169, 168, 167, 173, 172, 171, 207, 206, 205, 3414f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 211, 210, 209, 215, 214, 213, 219, 218, 217, 223, 3424f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 222, 221, 73, 72, 71, 76, 75, 74, 79, 78, 3434f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 77, 82, 81, 80, 85, 84, 83, 123, 122, 121, 3444f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 126, 125, 124, 129, 128, 127, 132, 131, 130, 135, 3454f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 134, 133, 176, 175, 174, 179, 178, 177, 182, 181, 3464f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 180, 185, 184, 183, 188, 187, 186, 226, 225, 224, 3474f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 229, 228, 227, 232, 231, 230, 235, 234, 233, 238, 3484f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 237, 236, 96, 199 3494f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber }; 3504f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 3514f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber /* overall table with all parameter sizes for all modes */ 3521ead790eadd0e09a118308caccc7ac37d36f43f3Martin Storsjo const Word16 * const reorderBits[NUM_MODES-1] = 3534f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber { 3544f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber reorderBits_MR475, 3554f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber reorderBits_MR515, 3564f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber reorderBits_MR59, 3574f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber reorderBits_MR67, 3584f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber reorderBits_MR74, 3594f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber reorderBits_MR795, 3604f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber reorderBits_MR102, 3614f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber reorderBits_MR122 3624f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber }; 3634f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 3644f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber /* Number of Frames (16-bit segments sent for each mode */ 3651ead790eadd0e09a118308caccc7ac37d36f43f3Martin Storsjo const Word16 numCompressedBytes[16] = 3664f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber { 3674f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 13, /*4.75*/ 3684f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 14, /*5.15*/ 3694f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 16, /*5.90*/ 3704f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 18, /*6.70*/ 3714f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 19, /*7.40*/ 3724f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 21, /*7.95*/ 3734f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 26, /*10.2*/ 3744f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 31, /*12.2*/ 3754f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 6, /*GsmAmr comfort noise*/ 3764f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 6, /*Gsm-Efr comfort noise*/ 3774f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 6, /*IS-641 comfort noise*/ 3784f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 6, /*Pdc-Efr comfort noise*/ 3794f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 0, /*future use*/ 3804f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 0, /*future use*/ 3814f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 0, /*future use*/ 3824f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 1 /*No transmission*/ 3834f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber }; 3844f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber /*---------------------------------------------------------------------------- 3854f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ; EXTERNAL FUNCTION REFERENCES 3864f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ; Declare functions defined elsewhere and referenced in this module 3874f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ----------------------------------------------------------------------------*/ 3884f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 3894f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 3904f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber /*---------------------------------------------------------------------------- 3914f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES 3924f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ; Declare variables used in this module but defined elsewhere 3934f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber ----------------------------------------------------------------------------*/ 3944f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 3954f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber /*--------------------------------------------------------------------------*/ 3964f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#ifdef __cplusplus 3974f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber} 3984f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber#endif 3994f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 4004f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 4014f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber/*---------------------------------------------------------------------------- 4024f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber; FUNCTION CODE 4034f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber----------------------------------------------------------------------------*/ 4044f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 4054f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber/*---------------------------------------------------------------------------- 4064f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber; Define all local variables 4074f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber----------------------------------------------------------------------------*/ 4084f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 4094f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 4104f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber/*---------------------------------------------------------------------------- 4114f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber; Function body here 4124f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber----------------------------------------------------------------------------*/ 4134f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 4144f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 4154f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber/*---------------------------------------------------------------------------- 4164f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber; Return nothing or data or data pointer 4174f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber----------------------------------------------------------------------------*/ 4184f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 4194f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 4204f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 4214f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 4224f1efc098cb5791c3e9f483f2af84aef70d2d0a0Andreas Huber 423