FreeCalypso > hg > fc-magnetite
annotate src/cs/services/Audio/audio_vm_amr_play.c @ 363:cce24b9de6db
FCHG: CV control loop implemented
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Fri, 29 Dec 2017 07:28:29 +0000 | 
| parents | 945cf7f506b2 | 
| children | 
| 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 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 /* File Name: audio_vm_play.c */ | 
| 
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 /* Purpose: This file contains all the functions used to manage the */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 /* Voice Memorization AMR play task. */ | 
| 
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 /* Version 0.1 */ | 
| 
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 /* Date Modification */ | 
| 
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 /* ?? ?? 2002 Create */ | 
| 
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 /* Author */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 /* Stephanie Gerthoux */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 /* (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved*/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 /****************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 #include "rv/rv_defined_swe.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 #ifdef RVM_AUDIO_MAIN_SWE | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 #ifndef _WINDOWS | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 #include "config/swconfig.cfg" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 #include "config/sys.cfg" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 #include "config/chipset.cfg" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 /* include the usefull L1 header */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 #include "l1_confg.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 #if (L1_VOICE_MEMO_AMR) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 #include "rv/rv_general.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 #include "rvm/rvm_gen.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 #include "audio/audio_features_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 #include "audio/audio_ffs_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 #include "audio/audio_api.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 #include "audio/audio_structs_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 #include "audio/audio_var_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 #include "audio/audio_messages_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 #include "rvf/rvf_target.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 #include "audio/audio_const_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 #include "audio/audio_error_hdlr_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 #include "audio/audio_features_i.h" | 
| 
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 /* include the usefull L1 header */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 #define BOOL_FLAG | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 #define CHAR_FLAG | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 #include "l1_types.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 #include "l1audio_cust.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 #include "l1audio_msgty.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 #include "l1audio_signa.h" | 
| 
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 #include "audio/audio_macro_i.h" | 
| 
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 /********************************************************************************/ | 
| 
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 /* Function Name: audio_vm_amr_play_send_status */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 /* Purpose: This function sends the voice memorization AMR play status */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 /* to the entity. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 61 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 62 /* Input Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 /* status, */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 /* return path */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 /* Output Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 /* Note: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 /* None. */ | 
| 
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 /* Revision History: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 /* None. */ | 
| 
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 #if (AUDIO_MEM_MANAGER) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 void audio_vm_amr_play_send_status (T_AUDIO_RET status, T_RV_RETURN return_path) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 T_AUDIO_AMR_PLAY_STATUS *p_send_message; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 T_RVF_MB_STATUS mb_status = RVF_RED; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 /* allocate the message buffer */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 while (mb_status == RVF_RED) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 mb_status = rvf_get_buf (p_audio_gbl_var->mb_external, | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 sizeof (T_AUDIO_AMR_PLAY_STATUS), | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 (T_RVF_BUFFER **) (&p_send_message)); | 
| 
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 /* If insufficient resources, then report a memory error and abort. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 /* and wait until more ressource is given */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 if (mb_status == RVF_RED) | 
| 
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 audio_voice_memo_amr_error_trace(AUDIO_ENTITY_NO_MEMORY); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 rvf_delay(RVF_MS_TO_TICKS(1000)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 95 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 96 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 /*fill the header of the message */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 p_send_message->os_hdr.msg_id = AUDIO_AMR_PLAY_FROM_MEM_STATUS_MSG; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 /* fill the status parameters */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 p_send_message->status = status; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 /* send message or call callback */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 if (return_path.callback_func == NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 106 rvf_send_msg (return_path.addr_id, p_send_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 (*return_path.callback_func)((void *)(p_send_message)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 rvf_free_buf((T_RVF_BUFFER *)p_send_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 115 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 116 /* Function Name: audio_vm_amr_play_from_memory_manager */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 117 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 118 /* Purpose: This function is called to manage a voice memorization play */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 /* manager */ | 
| 
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 /* Input Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 /* Message to the audio entity */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 /* Output Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 126 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 127 /* Note: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 /* Revision History: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 133 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 134 void audio_vm_amr_play_from_memory_manager (T_RV_HDR *p_message) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 135 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 136 /* Declare local variables. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 137 T_RV_HDR *p_send_message; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 T_RVF_MB_STATUS mb_status; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 T_RV_RETURN return_path; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 141 /**************** audio_vm_amr_play_from_memory_manager function begins ***********************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 switch(p_audio_gbl_var->audio_vm_amr_play.state) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 144 case AUDIO_IDLE: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 145 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 146 switch(p_message->msg_id) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 147 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 148 case AUDIO_VM_AMR_PLAY_FROM_FFS_START_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 149 case AUDIO_VM_AMR_PLAY_FROM_RAM_START_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 150 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 T_AUDIO_DRIVER_PARAMETER driver_parameter; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 153 switch (p_message->msg_id) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 154 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 case AUDIO_VM_AMR_PLAY_FROM_FFS_START_REQ: | 
| 
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 /* save the return path + ffs_fd */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 158 #if (AUDIO_RAM_MANAGER) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 159 p_audio_gbl_var->audio_vm_amr_play.audio_ram_fd = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 160 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 161 p_audio_gbl_var->audio_vm_amr_play.return_path.callback_func = | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 162 ((T_AUDIO_VM_AMR_PLAY_FROM_FFS_START *)p_message)->return_path.callback_func; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 163 p_audio_gbl_var->audio_vm_amr_play.return_path.addr_id = | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 164 ((T_AUDIO_VM_AMR_PLAY_FROM_FFS_START*)p_message)->return_path.addr_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 165 #if (AUDIO_NEW_FFS_MANAGER) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 166 p_audio_gbl_var->audio_vm_amr_play.ffs_fd = | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 167 ((T_AUDIO_VM_AMR_PLAY_FROM_FFS_START *)p_message)->audio_ffs_fd; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 168 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 169 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 170 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 171 case AUDIO_VM_AMR_PLAY_FROM_RAM_START_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 172 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 173 /* save the return path + ffs_fd */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 174 #if (AUDIO_NEW_FFS_MANAGER) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 175 p_audio_gbl_var->audio_vm_amr_play.ffs_fd = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 176 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 177 p_audio_gbl_var->audio_vm_amr_play.return_path.callback_func = | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 178 ((T_AUDIO_VM_AMR_PLAY_FROM_RAM_START *)p_message)->return_path.callback_func; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 179 p_audio_gbl_var->audio_vm_amr_play.return_path.addr_id = | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 180 ((T_AUDIO_VM_AMR_PLAY_FROM_RAM_START*)p_message)->return_path.addr_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 181 #if (AUDIO_RAM_MANAGER) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 182 p_audio_gbl_var->audio_vm_amr_play.audio_ram_fd = | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 183 ((T_AUDIO_VM_AMR_PLAY_FROM_RAM_START *)p_message)->p_buffer; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 184 p_audio_gbl_var->audio_vm_amr_play.audio_ram_size = | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 185 ((T_AUDIO_VM_AMR_PLAY_FROM_RAM_START *)p_message)->buffer_size; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 186 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 187 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 188 break; | 
| 
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 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 191 /* driver parameters */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 192 driver_parameter.nb_buffer = AUDIO_VM_AMR_PLAY_NB_BUFFER; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 193 driver_parameter.buffer_size = AUDIO_VM_AMR_PLAY_SIZE;// 16 bit words | 
| 
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 /* return_path for driver */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 196 return_path.callback_func = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 197 return_path.addr_id = p_audio_gbl_var->addrId; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 198 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 199 /* Init driver */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 200 audio_driver_init_vm_amr_play_session(&driver_parameter, return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 201 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 202 p_audio_gbl_var->audio_vm_amr_play.state = AUDIO_WAIT_CHANNEL_ID; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 203 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 204 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 205 case AUDIO_VM_AMR_PLAY_FROM_FFS_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 206 case AUDIO_VM_AMR_PLAY_FROM_RAM_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 207 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 208 audio_voice_memo_amr_error_trace(AUDIO_ERROR_STOP_EVENT); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 209 /* do not send a status message because of pre-emption issues | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 210 An automatic stop can pre-empt a stop request. A status is sent + back in state idle | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 211 then the stop request is received and another status is sent, which can be misinterpreted */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 212 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 213 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 214 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 215 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 216 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 217 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 218 case AUDIO_WAIT_CHANNEL_ID: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 219 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 220 switch(p_message->msg_id) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 221 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 222 case AUDIO_DRIVER_INIT_STATUS_MSG: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 223 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 224 /* check init is successfull otherwise, send status AUDIO_ERROR */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 225 if (((T_AUDIO_DRIVER_INIT_STATUS *)p_message)->status == AUDIO_OK) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 226 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 227 /* get channel id */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 228 p_audio_gbl_var->audio_vm_amr_play.channel_id = ((T_AUDIO_DRIVER_INIT_STATUS *)p_message)->channel_id; | 
| 
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 /* Send the Start message to MEM */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 231 mb_status = rvf_get_buf (p_audio_gbl_var->mb_internal, | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 232 sizeof (T_AUDIO_MEM_START), | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 233 (T_RVF_BUFFER **) (&p_send_message)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 234 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 235 /* If insufficient resources, then report a memory error and abort. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 236 if (mb_status == RVF_RED) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 237 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 238 audio_voice_memo_amr_error_trace(AUDIO_ENTITY_NO_MEMORY); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 239 // TODO: use blocking function from GSP | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 240 return; | 
| 
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 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 243 /* fill the header of the message */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 244 ((T_AUDIO_MEM_START *)p_send_message)->os_hdr.msg_id = AUDIO_MEM_START_REQ; | 
| 
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 /* fill the parameters */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 247 ((T_AUDIO_MEM_START *)p_send_message)->session_id = AUDIO_VM_AMR_PLAY_SESSION_ID; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 248 ((T_AUDIO_MEM_START *)p_send_message)->channel_id = p_audio_gbl_var->audio_vm_amr_play.channel_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 249 ((T_AUDIO_MEM_START *)p_send_message)->size = AUDIO_VM_AMR_PLAY_SIZE*2;// 8-bit | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 250 #if (AUDIO_NEW_FFS_MANAGER) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 251 ((T_AUDIO_MEM_START *)p_send_message)->audio_ffs_fd = p_audio_gbl_var->audio_vm_amr_play.ffs_fd; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 252 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 253 #if (AUDIO_RAM_MANAGER) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 254 ((T_AUDIO_MEM_START *)p_send_message)->audio_ram_fd = p_audio_gbl_var->audio_vm_amr_play.audio_ram_fd; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 255 ((T_AUDIO_MEM_START *)p_send_message)->audio_ram_size = p_audio_gbl_var->audio_vm_amr_play.audio_ram_size; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 256 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 257 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 258 /* send the message to the entity */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 259 rvf_send_msg (p_audio_gbl_var->audio_ffs_addrId, p_send_message); | 
| 
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 /* change state */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 262 p_audio_gbl_var->audio_vm_amr_play.state = AUDIO_WAIT_STOP; | 
| 
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 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 265 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 266 audio_voice_memo_amr_error_trace(AUDIO_ERROR_START_EVENT); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 267 audio_vm_amr_play_send_status (AUDIO_ERROR, | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 268 p_audio_gbl_var->audio_vm_amr_play.return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 269 /* change state */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 270 p_audio_gbl_var->audio_vm_amr_play.state = AUDIO_IDLE; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 271 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 272 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 273 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 274 case AUDIO_VM_AMR_PLAY_FROM_FFS_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 275 #if (AUDIO_RAM_MANAGER) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 276 if (p_audio_gbl_var->audio_vm_amr_play.audio_ram_fd != NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 277 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 278 audio_voice_memo_amr_error_trace(AUDIO_ERROR_STOP_EVENT); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 279 return; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 280 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 281 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 282 /* change state */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 283 p_audio_gbl_var->audio_vm_amr_play.state = AUDIO_WAIT_CHANNEL_ID_TO_STOP; | 
| 
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 AUDIO_VM_AMR_PLAY_FROM_RAM_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 286 #if (AUDIO_NEW_FFS_MANAGER) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 287 if (p_audio_gbl_var->audio_vm_amr_play.ffs_fd != NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 288 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 289 audio_voice_memo_amr_error_trace(AUDIO_ERROR_STOP_EVENT); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 290 return; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 291 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 292 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 293 /* change state */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 294 p_audio_gbl_var->audio_vm_amr_play.state = AUDIO_WAIT_CHANNEL_ID_TO_STOP; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 295 break; | 
| 
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 } // case AUDIO_WAIT_CHANNEL_ID: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 298 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 299 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 300 case AUDIO_WAIT_STOP: | 
| 
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 switch (p_message->msg_id) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 303 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 304 case AUDIO_VM_AMR_PLAY_FROM_FFS_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 305 case AUDIO_VM_AMR_PLAY_FROM_RAM_STOP_REQ: | 
| 
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 // we handle a RAM stop when New_ffs is running as an error | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 308 #if (AUDIO_NEW_FFS_MANAGER) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 309 if ((p_message->msg_id == AUDIO_VM_AMR_PLAY_FROM_RAM_STOP_REQ)&& | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 310 (p_audio_gbl_var->audio_vm_amr_play.ffs_fd != NULL)) | 
| 
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 audio_voice_memo_amr_error_trace(AUDIO_ERROR_STOP_EVENT); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 313 return; | 
| 
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 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 316 // we handle a New_ffs stop when RAM is running as an error | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 317 #if (AUDIO_RAM_MANAGER) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 318 if ((p_message->msg_id == AUDIO_VM_AMR_PLAY_FROM_FFS_STOP_REQ)&& | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 319 (p_audio_gbl_var->audio_vm_amr_play.audio_ram_fd != NULL)) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 320 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 321 audio_voice_memo_amr_error_trace(AUDIO_ERROR_STOP_EVENT); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 322 return; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 323 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 324 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 325 /* Send the Stop message to the FFS */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 326 mb_status = rvf_get_buf (p_audio_gbl_var->mb_internal, | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 327 sizeof (T_AUDIO_MEM_STOP), | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 328 (T_RVF_BUFFER **) (&p_send_message)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 329 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 330 /* If insufficient resources, then report a memory error and abort. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 331 if (mb_status == RVF_RED) | 
| 
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 audio_voice_memo_amr_error_trace(AUDIO_ENTITY_NO_MEMORY); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 334 return; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 335 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 336 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 337 /* fill message */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 338 ((T_AUDIO_MEM_STOP *)p_send_message)->os_hdr.msg_id = AUDIO_MEM_STOP_REQ; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 339 ((T_AUDIO_MEM_STOP *)p_send_message)->channel_id = p_audio_gbl_var->audio_vm_amr_play.channel_id; | 
| 
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 /* send the message to the entity */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 342 rvf_send_msg (p_audio_gbl_var->audio_ffs_addrId, p_send_message); | 
| 
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 p_audio_gbl_var->audio_vm_amr_play.state = AUDIO_WAIT_STOP_CON; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 345 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 346 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 347 case AUDIO_MEM_STATUS_MSG: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 348 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 349 if (((T_AUDIO_MEM_STATUS *)p_message)->status_type == AUDIO_STOP_STATUS) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 350 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 351 /* should be useless as it is an automatic stop so AUDIO_OK */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 352 if (((T_AUDIO_MEM_STATUS *)p_message)->status == AUDIO_OK) | 
| 
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 audio_vm_amr_play_send_status (AUDIO_OK, | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 355 p_audio_gbl_var->audio_vm_amr_play.return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 356 p_audio_gbl_var->audio_vm_amr_play.state = AUDIO_IDLE; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 357 } | 
| 
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 if (((T_AUDIO_MEM_STATUS *)p_message)->status_type == AUDIO_START_STATUS) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 360 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 361 /* MEM could not find a free mem channel */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 362 if (((T_AUDIO_MEM_STATUS *)p_message)->status == AUDIO_ERROR) | 
| 
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 audio_vm_amr_play_send_status (AUDIO_ERROR, | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 365 p_audio_gbl_var->audio_vm_amr_play.return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 366 p_audio_gbl_var->audio_vm_amr_play.state = AUDIO_IDLE; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 367 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 368 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 369 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 370 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 371 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 372 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 373 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 374 case AUDIO_WAIT_STOP_CON: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 375 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 376 switch (p_message->msg_id) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 377 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 378 case AUDIO_MEM_STATUS_MSG: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 379 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 380 if (((T_AUDIO_MEM_STATUS *)p_message)->status_type == AUDIO_STOP_STATUS) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 381 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 382 audio_vm_amr_play_send_status (AUDIO_OK, | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 383 p_audio_gbl_var->audio_vm_amr_play.return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 384 p_audio_gbl_var->audio_vm_amr_play.state = AUDIO_IDLE; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 385 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 386 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 387 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 388 case AUDIO_VM_AMR_PLAY_FROM_FFS_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 389 case AUDIO_VM_AMR_PLAY_FROM_RAM_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 390 audio_voice_memo_amr_error_trace(AUDIO_ERROR_STOP_EVENT); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 391 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 392 } | 
| 
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 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 395 case AUDIO_WAIT_CHANNEL_ID_TO_STOP: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 396 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 397 switch (p_message->msg_id) | 
| 
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 case AUDIO_DRIVER_INIT_STATUS_MSG: | 
| 
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 if (((T_AUDIO_DRIVER_INIT_STATUS *)p_message)->status == AUDIO_OK) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 402 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 403 /* get channel_id */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 404 p_audio_gbl_var->audio_vm_amr_play.channel_id = ((T_AUDIO_DRIVER_INIT_STATUS *)p_message)->channel_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 405 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 406 audio_driver_stop_session(p_audio_gbl_var->audio_vm_amr_play.channel_id); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 407 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 408 /* change state */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 409 p_audio_gbl_var->audio_vm_amr_play.state = AUDIO_WAIT_DRIVER_STOP_CON; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 410 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 411 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 412 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 413 /* close file */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 414 #if (AUDIO_NEW_FFS_MANAGER) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 415 if (p_audio_gbl_var->audio_vm_amr_play.ffs_fd != NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 416 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 417 if ( ffs_close(p_audio_gbl_var->audio_vm_amr_play.ffs_fd) != EFFS_OK ) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 418 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 419 audio_ffs_error_trace(AUDIO_ENTITY_FILE_NO_CLOSE); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 420 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 421 AUDIO_SEND_TRACE("AUDIO VM AMR PLAY: close FFS file:", RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 422 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 423 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 424 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 425 audio_vm_amr_play_send_status (AUDIO_OK, | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 426 p_audio_gbl_var->audio_vm_amr_play.return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 427 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 428 /* change state */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 429 p_audio_gbl_var->audio_vm_amr_play.state = AUDIO_IDLE; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 430 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 431 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 432 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 433 case AUDIO_VM_AMR_PLAY_FROM_FFS_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 434 case AUDIO_VM_AMR_PLAY_FROM_RAM_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 435 audio_voice_memo_amr_error_trace(AUDIO_ERROR_STOP_EVENT); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 436 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 437 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 438 } // case AUDIO_WAIT_CHANNEL_ID_TO_STOP: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 439 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 440 case AUDIO_WAIT_DRIVER_STOP_CON: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 441 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 442 switch (p_message->msg_id) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 443 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 444 case AUDIO_DRIVER_STATUS_MSG: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 445 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 446 if (((T_AUDIO_DRIVER_STATUS *)p_message)->status_type == AUDIO_STOP_STATUS) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 447 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 448 /* close file */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 449 #if (AUDIO_NEW_FFS_MANAGER) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 450 if (p_audio_gbl_var->audio_vm_amr_play.ffs_fd != NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 451 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 452 if ( ffs_close(p_audio_gbl_var->audio_vm_amr_play.ffs_fd) != EFFS_OK ) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 453 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 454 audio_ffs_error_trace(AUDIO_ENTITY_FILE_NO_CLOSE); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 455 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 456 AUDIO_SEND_TRACE("AUDIO VM AMR PLAY: close FFS file", RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 457 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 458 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 459 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 460 audio_vm_amr_play_send_status (((T_AUDIO_DRIVER_STATUS *)p_message)->status, | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 461 p_audio_gbl_var->audio_vm_amr_play.return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 462 p_audio_gbl_var->audio_vm_amr_play.state = AUDIO_IDLE; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 463 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 464 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 465 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 466 case AUDIO_VM_AMR_PLAY_FROM_FFS_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 467 case AUDIO_VM_AMR_PLAY_FROM_RAM_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 468 audio_voice_memo_amr_error_trace(AUDIO_ERROR_STOP_EVENT); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 469 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 470 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 471 } //case AUDIO_WAIT_DRIVER_STOP_CON: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 472 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 473 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 474 } /*********************** End of audio_vm_amr_play_from_memory_manager function **********************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 475 #endif // AUDIO_MEM_MANAGER | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 476 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 477 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 478 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 479 /* Function Name: audio_driver_vm_amr_play_manager */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 480 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 481 /* Purpose: This function is called to manage a voice memorization AMR play */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 482 /* manager */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 483 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 484 /* Input Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 485 /* Message to the audio entity */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 486 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 487 /* Output Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 488 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 489 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 490 /* Note: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 491 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 492 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 493 /* Revision History: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 494 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 495 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 496 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 497 T_AUDIO_RET audio_driver_vm_amr_play_manager (T_RV_HDR *p_message, T_AUDIO_DRIVER_SESSION *p_session) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 498 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 499 /**************** audio_driver_vm_amr_play_manager function begins ***********************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 500 switch(p_session->session_info.state) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 501 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 502 case AUDIO_DRIVER_CHANNEL_WAIT_INIT: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 503 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 504 /* init buffer index, layer1 not valid until 1st buffer is filled */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 505 /* index_l1 will be set to 0 when get_play_buffer() is called in WAIT_START state */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 506 p_session->session_info.index_l1 = 0xFF; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 507 p_session->session_info.index_appli = 0; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 508 p_session->session_info.play_api_state = AUDIO_PLAY_API_STATE_GET_BUF; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 509 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 510 /* allocate the buffer for the message to the L1 */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 511 p_session->session_req.p_l1_send_message = | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 512 audio_allocate_l1_message(sizeof(T_MMI_VM_AMR_PLAY_REQ)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 513 ((T_MMI_VM_AMR_PLAY_REQ *)(p_session->session_req.p_l1_send_message))->session_id = | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 514 AUDIO_VM_AMR_PLAY_SESSION_ID; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 515 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 516 if (p_session->session_req.p_l1_send_message != NULL ) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 517 return (AUDIO_OK); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 518 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 519 return (AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 520 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 521 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 522 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 523 case AUDIO_DRIVER_CHANNEL_WAIT_START: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 524 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 525 /* send the start voice memo play message to the L1 */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 526 audio_send_l1_message(MMI_VM_AMR_PLAY_START_REQ, | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 527 p_session->session_req.p_l1_send_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 528 return (AUDIO_OK); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 529 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 530 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 531 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 532 case AUDIO_DRIVER_CHANNEL_WAIT_STOP: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 533 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 534 /* send the stop command to the audio L1 */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 535 void *p_send_message = audio_allocate_l1_message(0); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 536 if ( p_send_message != NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 537 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 538 /* send the stop command to the audio L1 */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 539 audio_send_l1_message(MMI_VM_AMR_PLAY_STOP_REQ, p_send_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 540 return (AUDIO_OK); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 541 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 542 return (AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 543 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 544 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 545 case AUDIO_DRIVER_CHANNEL_WAIT_START_CON_TO_STOP: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 546 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 547 /* send the stop command to the audio L1 */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 548 void *p_send_message = audio_allocate_l1_message(0); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 549 if ( p_send_message != NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 550 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 551 /* send the stop command to the audio L1 */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 552 audio_send_l1_message(MMI_VM_AMR_PLAY_STOP_REQ, p_send_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 553 return (AUDIO_OK); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 554 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 555 return (AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 556 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 557 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 558 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 559 } /*********************** End of audio_vm_play_manager function **********************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 560 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 561 #endif /* VM_AMR_PLAY */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 562 #endif /* RVM_AUDIO_MAIN_SWE */ | 
