view src/cs/layer1/gtt_include/ctm/tonemod.h @ 673:62a5285e014a

Lorekeeping: allow tpudrv-leonardo.lib on Leonardo/Tango Back in 2015 the Mother's idea was to produce a FreeCalypso development board that would be a clone of TI Leonardo, including the original quadband RFFE; one major additional stipulation was that this board needed to be able to run original unmodified TCS211-20070608 firmware with all blobs intact, with only minimal binary patches to main.lib and tpudrv.lib. The necessary patched libs were produced at that time in the tcs211-patches repository. That plan was changed and we produced FCDEV3B instead, with Openmoko's triband RFFE instead of Leonardo quadband, but when FC Magnetite started in 2016, a TPUDRV_blob= provision was still made, allowing the possibility of patching OM's tpudrv.lib for a restored Leonardo RFFE. Now in 2020 we have FC Tango which is essentially a verbatim clone of Leonardo core, including the original quadband RFFE. We have also deblobbed our firmware so much that we have absolutely no real need for a blob version of tpudrv.lib - but I thought it would be neat to put the ancient TPUDRV_blob= mechanism (classic config) to its originally intended use, just for the heck of it.
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 29 May 2020 03:55:36 +0000
parents 945cf7f506b2
children
line wrap: on
line source

/*
*******************************************************************************
*
*      COPYRIGHT (C) 2000 BY ERICSSON EUROLAB DEUTSCHLAND GmbH
*      90411 NUERNBERG, GERMANY, Tel Int + 49 911 5217 100
*
*      The program(s) may be used and/or copied only with the
*      written permission from Ericsson or in accordance
*      with the terms and conditions stipulated in the agreement or
*      contract under which the program(s) have been supplied.
*
*      Changes since October 13, 2000:
*      - The type mod_state_t includes a new member txbits_fifo_state now.
*
*******************************************************************************
*
*      File             : tonemod.h
*      Purpose          : header file for tonemod.c
*
*******************************************************************************
*/

#ifndef tonemod_h
#define tonemod_h "$Id: $"

/*
*******************************************************************************
*                         INCLUDE FILES
*******************************************************************************
*/

#include <fifo.h>

/*
*******************************************************************************
*                         DECLARATION OF PROTOTYPES
*******************************************************************************
*/


/* Define a type for the state variable of the function tonemod()     */

typedef struct {
  WORD16      cntModulatedSamples;
  WORD16      actualBits[2];
  fifo_state_t  txbits_fifo_state;
} mod_state_t;


/* ---------------------------------------------------------------------- */
/* Function init_tonemod()                                                */
/* ***********************                                                */
/* This function has to be executed before tonemod() can be used.         */
/* ---------------------------------------------------------------------- */

void init_tonemod(mod_state_t  *mod_state);


/* ---------------------------------------------------------------------- */
/* Function tonemod()                                                     */
/* ******************                                                     */
/* Modulator of the Cellular Text Telephone Modem.                        */
/* The input vector bits_in must contain the bits that have to be         */
/* transmitted. The length of bits_in must be even because always two     */
/* bits are coded in parallel.                                            */
/* Bits are either unipolar (i.e. {0, 1}) or bipolar (i.e. {-1, +1)}.     */
/* The length of the output vector tones_out must be 20 times longer than */
/* the length of bits_in, since each pair of two bits is coded within a   */
/* frame of 40 audio samples.                                             */
/* ---------------------------------------------------------------------- */

void tonemod(WORD16    *tones_out,
             WORD16    *bits_in,
             WORD16     num_samples_tones_out,
             WORD16     num_bits_in,
             mod_state_t *mod_state);

#endif