FreeCalypso > hg > fc-magnetite
annotate src/cs/services/etm/etm_audio.c @ 193:4cb2e85d9d6a
src/g23m-gprs/llc/llc_{itxp,uitxp}.c: compilation fixes for !REL99
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Thu, 13 Oct 2016 23:09:26 +0000 | 
| parents | 945cf7f506b2 | 
| children | 9394305d4ff5 | 
| rev | line source | 
|---|---|
| 0 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /******************************************************************************** | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 * Enhanced TestMode (ETM) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 * @file etm_audio.c (Support for AUDIO commands) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 * | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 * @author Kim T. Peteren (ktp@ti.com) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 * @version 0.8 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 * | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 * | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 * History: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 * | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 * Date Modification | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 * ------------------------------------ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 * 16/06/2003 Creation | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 * 30/06/2003 Small cleanup in func. etm_audio_write, etm_audio_saveload and | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 * etm_aud_wait_for_aud_event is updated and renamed | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 * 12/08/2003 The func. etm_audio_write has been updated regarding the AEC struct. | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 * 14/08/2003 The func. etm_audio_read has been updated regarding the AEC struct. | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 * 17/03/2004 Modified the event handling, events revceived from the Audio SWE. | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 * Integrated event callback function, etm_audio_callback(). | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 * | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 * (C) Copyright 2003 by Texas Instruments Incorporated, All Rights Reserved | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 *********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 #include "etm/etm.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 #include "etm/etm_api.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 #include "etm/etm_trace.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 #include "etm/etm_env.h" // Need because use of T_ETM_ENV_CTRL_BLK | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 #include "etm/etm_audio_err.h" // Privat Audio error codes for PC and Target | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 #include "etm/etm_trace.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 #include "audio/audio_api.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 #include "rv/rv_general.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 #include "spi/spi_drv.h" // used for codec read/write | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 #include "memif/mem.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 #include <string.h> | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 /****************************************************************************** | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 * Globals | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 *****************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 // Version of the ETM AUDIO module | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 //const uint16 etm_audio_revision = (1<<12) | (0x1); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 extern T_ETM_ENV_CTRL_BLK *etm_env_ctrl_blk; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 static int etm_audio_event_status = 0; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 /****************************************************************************** | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 55 * Internal prototypes | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 56 *****************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 int etm_audio(uint8 *indata, int insize); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 T_RV_HDR *etm_audio_wait_for_event(UINT16 msg_id_expected); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 T_ETM_PKT *etm_audio_setup(uint8 fid, uint8 cfg_data); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 void etm_audio_callback(void *event_from_audio); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 /****************************************************************************** | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 * Register the Audio Module to the ETM database | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 *****************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 int etm_audio_init(void) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 int result; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 71 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 72 result = etm_register("AUDIO", ETM_AUDIO, 0, 0, etm_audio); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 return result; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 /****************************************************************************** | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 * Audio Full Access Read Function | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 *****************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 int etm_audio_read(T_ETM_PKT *pkt, uint8 *buf) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 int result, size = 0, size_tmp, i; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 uint8 param; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 T_AUDIO_FULL_ACCESS_READ audio; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 T_AUDIO_AEC_CFG *aec_parameter = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 void *parameter = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 param = *buf; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 if ((result = etm_pkt_put8(pkt, param)) < 0) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 return result; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 92 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 93 tr_etm(TgTrAudio, "ETM AUDIO: _audio_read: param(%d)", param); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 audio.variable_indentifier = param; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 audio.data = (T_AUDIO_FULL_ACCESS_READ *) &pkt->data[2]; //data[0] = fid | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 //data[1] = parameter/identifier | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 if ((result = audio_full_access_read(&audio)) != AUDIO_OK){ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 tr_etm(TgTrAudio, "ETM AUDIO: _audio_read: ERROR(%d)", result); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 if (result == AUDIO_ERROR) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 return ETM_INVAL; // Invalid audio parameter | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 return ETM_AUDIO_FATAL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 106 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 switch (param) { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 case AUDIO_PATH_USED: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 size = sizeof(T_AUDIO_VOICE_PATH_SETTING); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 case AUDIO_MICROPHONE_MODE: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 case AUDIO_MICROPHONE_GAIN: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 case AUDIO_MICROPHONE_EXTRA_GAIN: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 case AUDIO_MICROPHONE_OUTPUT_BIAS: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 case AUDIO_MICROPHONE_SPEAKER_LOOP_SIDETONE: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 size = sizeof(INT8); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 117 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 118 case AUDIO_MICROPHONE_SPEAKER_LOOP_AEC: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 size = sizeof(T_AUDIO_AEC_CFG); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 aec_parameter = (T_AUDIO_AEC_CFG *) &pkt->data[2]; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 etm_pkt_put16(pkt, aec_parameter->aec_enable); // 1 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 #if (L1_NEW_AEC) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 etm_pkt_put16(pkt, aec_parameter->continuous_filtering); // 2 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 etm_pkt_put16(pkt, aec_parameter->granularity_attenuation); // 3 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 etm_pkt_put16(pkt, aec_parameter->smoothing_coefficient); // 4 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 etm_pkt_put16(pkt, aec_parameter->max_echo_suppression_level); // 5 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 etm_pkt_put16(pkt, aec_parameter->vad_factor); // 6 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 etm_pkt_put16(pkt, aec_parameter->absolute_threshold); // 7 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 etm_pkt_put16(pkt, aec_parameter->factor_asd_filtering); // 8 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 etm_pkt_put16(pkt, aec_parameter->factor_asd_muting); // 9 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 133 etm_pkt_put16(pkt, aec_parameter->aec_visibility); //10 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 134 #else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 135 etm_pkt_put16(pkt, aec_parameter->aec_mode); // 2 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 136 etm_pkt_put16(pkt, aec_parameter->echo_suppression_level); // 3 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 137 #endif // end of (L1_NEW_AEC) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 etm_pkt_put16(pkt, aec_parameter->noise_suppression_enable); // 4 or 11 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 etm_pkt_put16(pkt, aec_parameter->noise_suppression_level); // 5 or 12 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 141 case AUDIO_MICROPHONE_FIR: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 case AUDIO_SPEAKER_FIR: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 size = sizeof(T_AUDIO_FIR_COEF); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 144 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 145 case AUDIO_SPEAKER_MODE: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 146 case AUDIO_SPEAKER_GAIN: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 147 case AUDIO_SPEAKER_FILTER: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 148 case AUDIO_SPEAKER_BUZZER_STATE: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 149 size = sizeof(INT8); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 150 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 case AUDIO_SPEAKER_VOLUME_LEVEL: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 size = sizeof(T_AUDIO_SPEAKER_LEVEL); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 153 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 154 default: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 size = ETM_INVAL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 156 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 157 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 158 pkt->size += size; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 159 return ETM_OK; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 160 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 161 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 162 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 163 /****************************************************************************** | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 164 * Audio Full Access Write Function | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 165 *****************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 166 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 167 int etm_audio_write(T_ETM_PKT *pkt, uint8 *buf) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 168 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 169 T_RV_HDR *msg = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 170 T_RV_RETURN return_path; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 171 T_AUDIO_FULL_ACCESS_WRITE audio; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 172 T_AUDIO_AEC_CFG *aec_parameter = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 173 void *parameter = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 174 int result = ETM_OK, i; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 175 uint8 param; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 176 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 177 param = *buf++; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 178 if ((result = etm_pkt_put8(pkt, param)) < ETM_OK) { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 179 return result; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 180 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 181 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 182 tr_etm(TgTrAudio, "ETM AUDIO: _audio_write: param(%d)", param); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 183 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 184 return_path.addr_id = NULL; //etm_env_ctrl_blk->addr_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 185 return_path.callback_func = etm_audio_callback; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 186 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 187 audio.variable_indentifier = param; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 188 audio.data = buf; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 189 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 190 switch (param) { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 191 case AUDIO_MICROPHONE_SPEAKER_LOOP_AEC: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 192 tr_etm(TgTrAudio, "ETM AUDIO: _audio_write: AUDIO_MICROPHONE_SPEAKER_LOOP_AEC"); // RemoveMe | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 193 aec_parameter = etm_malloc (sizeof(T_AUDIO_AEC_CFG)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 194 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 195 aec_parameter->aec_enable = etm_get16(buf); buf += 2;// 1 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 196 #if (L1_NEW_AEC) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 197 if (etm_get16(buf)) // 2 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 198 aec_parameter->continuous_filtering = TRUE; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 199 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 200 aec_parameter->continuous_filtering = FALSE; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 201 buf += 2; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 202 aec_parameter->granularity_attenuation = etm_get16(buf); buf += 2;// 3 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 203 aec_parameter->smoothing_coefficient = etm_get16(buf); buf += 2;// 4 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 204 aec_parameter->max_echo_suppression_level = etm_get16(buf); buf += 2;// 5 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 205 aec_parameter->vad_factor = etm_get16(buf); buf += 2;// 6 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 206 aec_parameter->absolute_threshold = etm_get16(buf); buf += 2;// 7 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 207 aec_parameter->factor_asd_filtering = etm_get16(buf); buf += 2;// 8 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 208 aec_parameter->factor_asd_muting = etm_get16(buf); buf += 2;// 9 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 209 aec_parameter->aec_visibility = etm_get16(buf); buf += 2;// 10 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 210 #else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 211 aec_parameter->aec_mode = etm_get16(buf); buf += 2;// 2 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 212 aec_parameter->echo_suppression_level = etm_get16(buf); buf += 2;// 3 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 213 #endif // end of (L1_NEW_AEC) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 214 #if (L1_ANR == 0) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 215 aec_parameter->noise_suppression_enable = etm_get16(buf); buf += 2;// 4 or 11 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 216 aec_parameter->noise_suppression_level = etm_get16(buf); // 5 or 12 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 217 #endif // end of (L1_ANR) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 218 audio.data = aec_parameter; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 219 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 220 case AUDIO_MICROPHONE_FIR: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 221 case AUDIO_SPEAKER_FIR: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 222 tr_etm(TgTrAudio, "ETM AUDIO: _audio_write: AUDIO_MICROPHONE/SPEAKER_FIR [%d]", | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 223 sizeof(T_AUDIO_FIR_COEF)/2); // RemoveMe | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 224 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 225 parameter = etm_malloc (sizeof(T_AUDIO_FIR_COEF)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 226 // Write coeffient values | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 227 for (i=0; i <= (sizeof(T_AUDIO_FIR_COEF)/2); i++) { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 228 ((T_AUDIO_FIR_COEF *) parameter)->coefficient[i] = etm_get16(buf); buf += 2; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 229 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 230 audio.data = parameter; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 231 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 232 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 233 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 234 if ((result = audio_full_access_write(&audio, return_path)) != AUDIO_OK) { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 235 tr_etm(TgTrAudio, "ETM AUDIO: _audio_write: ERROR(%d)", result); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 236 if (result == AUDIO_ERROR) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 237 result = ETM_INVAL; // Invalid audio parameter | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 238 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 239 result = ETM_AUDIO_FATAL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 240 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 241 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 242 // Wait for recv. of event: AUDIO_FULL_ACCESS_WRITE_DONE | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 243 rvf_wait(0xffff, 100); // Timeout 100 ticks | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 244 tr_etm(TgTrAudio, "ETM AUDIO: _audio_write: STATUS(%d)", etm_audio_event_status); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 245 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 246 if (parameter != NULL) { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 247 etm_free(parameter); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 248 parameter = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 249 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 250 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 251 if (aec_parameter != NULL) { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 252 etm_free(aec_parameter); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 253 aec_parameter = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 254 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 255 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 256 if (etm_audio_event_status != 0) { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 257 etm_audio_event_status = 0; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 258 result = ETM_AUDIO_FATAL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 259 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 260 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 261 return result; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 262 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 263 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 264 /****************************************************************************** | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 265 * Audio Save and Load cfg file Function | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 266 *****************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 267 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 268 int etm_audio_saveload(T_ETM_PKT *pkt, uint8 saveload, void *buf, int size) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 269 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 270 T_RV_HDR *msg; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 271 T_AUDIO_MODE_SAVE audio_s; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 272 T_AUDIO_MODE_LOAD audio_l; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 273 T_RV_RETURN return_path; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 274 int result = ETM_OK; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 275 int error, event; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 276 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 277 return_path.addr_id = etm_env_ctrl_blk->addr_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 278 return_path.callback_func = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 279 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 280 switch(saveload) { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 281 case 'S': | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 282 memcpy(audio_s.audio_mode_filename, buf, size); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 283 result = audio_mode_save(&audio_s, return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 284 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 285 case 'L': | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 286 memcpy(audio_l.audio_mode_filename, buf, size); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 287 result = audio_mode_load(&audio_l, return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 288 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 289 default: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 290 tr_etm(TgTrAudio, "ETM AUDIO: _audio_saveload: FAILED"); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 291 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 292 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 293 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 294 rvf_wait(0xffff, 100); // Timeout 100 ticks | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 295 tr_etm(TgTrAudio, "ETM AUDIO: _audio_saveload: STATUS(%d)", etm_audio_event_status); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 296 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 297 if (etm_audio_event_status != 0) { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 298 etm_audio_event_status = 0; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 299 return ETM_AUDIO_FATAL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 300 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 301 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 302 if (result != AUDIO_OK) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 303 return ETM_AUDIO_FATAL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 304 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 305 return result; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 306 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 307 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 308 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 309 /****************************************************************************** | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 310 * ETM AUDIO callback functio | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 311 *****************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 312 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 313 void etm_audio_callback(void *event_from_audio) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 314 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 315 tr_etm(TgTrEtmLow,"ETM: AUDIO: _audio_callback: recv. event (0x%x)", | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 316 ((T_RV_HDR *) event_from_audio)->msg_id); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 317 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 318 switch (((T_RV_HDR *) event_from_audio)->msg_id) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 319 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 320 case AUDIO_FULL_ACCESS_WRITE_DONE: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 321 tr_etm(TgTrAudio, "ETM AUDIO: _audio_callback: recv. event AUDIO_FULL_ACCESS_WRITE_DONE"); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 322 etm_audio_event_status = ((T_AUDIO_FULL_ACCESS_WRITE_DONE *) event_from_audio)->status; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 323 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 324 case AUDIO_MODE_SAVE_DONE: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 325 tr_etm(TgTrAudio, "ETM AUDIO: _audio_callback: recv. event AUDIO_MODE_SAVE_DONE"); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 326 etm_audio_event_status = ((T_AUDIO_SAVE_DONE *) event_from_audio)->status; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 327 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 328 case AUDIO_MODE_LOAD_DONE: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 329 tr_etm(TgTrAudio, "ETM AUDIO: _audio_callback: recv. event AUDIO_MODE_LOAD_DONE"); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 330 etm_audio_event_status = ((T_AUDIO_LOAD_DONE *) event_from_audio)->status; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 331 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 332 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 333 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 334 if (event_from_audio != NULL) { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 335 // etm_free(event_from_audio); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 336 event_from_audio = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 337 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 338 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 339 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 340 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 341 /****************************************************************************** | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 342 * ETM AUDIO Moudle - Main Task | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 343 *****************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 344 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 345 // AUDIO packet structure for audio read/write and codec read/write: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 346 // |fid(8)|param(8)|--data(W)--| and for audio save/load |fid|--data(W)--| | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 347 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 348 int etm_audio(uint8 *indata, int insize) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 349 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 350 int error = ETM_OK; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 351 uint8 fid; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 352 T_ETM_PKT *pkt = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 353 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 354 fid = *indata++; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 355 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 356 tr_etm(TgTrAudio, "ETM AUDIO: _audio: fid(%c) param(%d) recv. size(%d)", | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 357 fid, *indata, insize); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 358 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 359 /* Create TestMode return Packet */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 360 if ((pkt = (T_ETM_PKT *) etm_malloc(sizeof(T_ETM_PKT))) == NULL) { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 361 return ETM_NOMEM; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 362 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 363 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 364 // Init. of return packet | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 365 pkt->mid = ETM_AUDIO; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 366 pkt->status = ETM_OK; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 367 pkt->size = 0; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 368 pkt->index = 0; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 369 etm_pkt_put8(pkt, fid); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 370 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 371 if (error == ETM_OK) { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 372 switch (fid) { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 373 case 'R': | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 374 error = etm_audio_read(pkt, indata); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 375 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 376 case 'W': | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 377 error = etm_audio_write(pkt, indata); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 378 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 379 case 'S': | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 380 case 'L': | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 381 error = etm_audio_saveload(pkt, fid, indata, insize); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 382 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 383 default: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 384 tr_etm(TgTrAudio, "ETM AUDIO: _audio: fid(%c) - ERROR ", fid); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 385 error = ETM_NOSYS; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 386 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 387 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 388 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 389 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 390 if (error < 0) { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 391 tr_etm(TgTrAudio,"ETM AUDIO: _audio: ERROR(%d)", error); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 392 pkt->status = -error; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 393 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 394 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 395 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 396 etm_pkt_send(pkt); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 397 etm_free(pkt); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 398 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 399 return ETM_OK; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 400 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 401 | 
