FreeCalypso > hg > fc-magnetite
annotate src/cs/services/audio/audio_midi.c @ 587:36eb33f1d45a
config system: RVTMUX_ON_MODEM and UI_CONFIG moved into targets/*.conf
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Wed, 13 Mar 2019 16:52:48 +0000 | 
| parents | 838eeafb0051 | 
| 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_midi.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 MIDI */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 /* Version 0.1 */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 /* Date Modification */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 /* ------------------------------------ */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 /* 11 June 2003 Create */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 /* Author */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 /* Fabrice Goucem */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 /* (C) Copyright 2003 by Texas Instruments Incorporated, All Rights Reserved*/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 17 /****************************************************************************/ | 
| 
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 #include "rv/rv_defined_swe.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 #ifdef RVM_AUDIO_MAIN_SWE | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 #ifndef _WINDOWS | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 #include "config/swconfig.cfg" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 #include "config/sys.cfg" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 #include "config/chipset.cfg" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 27 // include the usefull L1 header | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 28 #include "l1_confg.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 29 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 30 #include "rv/rv_general.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 31 #include "rvm/rvm_gen.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 32 #include "audio/audio_features_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 33 #include "audio/audio_ffs_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 #include "audio/audio_api.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 #include "audio/audio_structs_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 #include "audio/audio_var_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 #include "audio/audio_messages_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 #include "rvf/rvf_target.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 #include "audio/audio_const_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 40 #include "audio/audio_error_hdlr_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 41 #include "audio/audio_macro_i.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 42 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 43 // include the useful L1 header | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 44 #define BOOL_FLAG | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 45 #define CHAR_FLAG | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 46 #include "l1_types.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 47 #include "l1audio_cust.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 48 #include "l1audio_msgty.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 49 #include "l1audio_signa.h" | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 50 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 51 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 52 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 53 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 54 /* Function Name: audio_midi_start */ | 
| 
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 /* Purpose: This function is called to initiate a MIDI file playback */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 57 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 58 /* Input Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 59 /* Midi file parameters, */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 60 /* Return path. */ | 
| 
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 /* Output Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 63 /* Validation of the MIDI parameters. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 64 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 65 /* Note: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 66 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 67 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 68 /* Revision History: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 69 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 70 /* */ | 
| 
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 T_AUDIO_RET audio_midi_start(T_AUDIO_MIDI_PARAMETER *parameter, T_RV_RETURN *p_return_path) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 73 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 74 #if (L1_MIDI==1) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 75 // Declare local variables | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 76 T_RVF_MB_STATUS mb_status=RVF_GREEN; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 77 T_AUDIO_MIDI_START *p_msg_start=NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 78 T_FFS_FD ffs_fd; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 79 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 /************************ audio_midi_start function begins ******************/ | 
| 
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 if(p_audio_gbl_var==NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 audio_midi_error_trace(AUDIO_ENTITY_NOT_START); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 return(AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 // check if the midi file exists | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 #ifndef _WINDOWS | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 ffs_fd=ffs_open(parameter->midi_name,FFS_O_RDONLY); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 if(ffs_fd<=0) | 
| 
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_midi_error_trace(AUDIO_ENTITY_FILE_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 94 return(AUDIO_ERROR); | 
| 
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 #else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 97 ffs_fd=0xdeadbeef; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 98 #endif // _WINDOWS | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 99 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 100 // allocate the memory for the message to send | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 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 | 102 sizeof(T_AUDIO_MIDI_START), | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 (T_RVF_BUFFER **)(&p_msg_start)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 105 // 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 | 106 if(mb_status==RVF_YELLOW) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 107 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 108 // deallocate the memory | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 109 rvf_free_buf((T_RVF_BUFFER *)p_msg_start); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 110 audio_midi_error_trace(AUDIO_ENTITY_NO_MEMORY); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 111 #ifndef _WINDOWS | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 112 ffs_close(ffs_fd); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 113 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 114 return(AUDIO_ERROR); | 
| 
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 else | 
| 
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 if(mb_status==RVF_RED) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 119 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 120 audio_midi_error_trace(AUDIO_ENTITY_NO_MEMORY); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 121 #ifndef _WINDOWS | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 122 ffs_close(ffs_fd); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 123 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 124 return (AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 125 } | 
| 
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 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 128 // fill the message id | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 129 p_msg_start->os_hdr.msg_id=AUDIO_MIDI_START_REQ; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 130 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 131 // fill the address source id | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 132 p_msg_start->os_hdr.src_addr_id =rvf_get_taskid(); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 133 p_msg_start->os_hdr.dest_addr_id=p_audio_gbl_var->addrId; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 134 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 135 // fill the message parameters | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 136 p_msg_start->audio_ffs_fd=ffs_fd; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 137 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 138 if(p_return_path->callback_func==NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 139 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 140 p_msg_start->return_path.addr_id=p_return_path->addr_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 141 p_msg_start->return_path.callback_func=NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 142 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 143 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 144 p_msg_start->return_path.callback_func=p_return_path->callback_func; | 
| 
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 // send the messsage to the audio entity | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 147 rvf_send_msg(p_audio_gbl_var->addrId,p_msg_start); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 148 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 149 return(AUDIO_OK); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 150 #else // L1_MIDI==1 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 151 AUDIO_SEND_TRACE("MIDI not compiled",RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 152 return(AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 153 #endif // L1_MIDI==1 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 154 } /*********************** End of audio_midi_start function ******************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 155 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 156 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 157 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 158 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 159 /* Function Name: audio_midi_stop */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 160 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 161 /* Purpose: This function is called to stop MIDI file playback */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 162 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 163 /* Input Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 164 /* Return path. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 165 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 166 /* Output Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 167 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 168 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 169 /* Note: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 170 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 171 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 172 /* Revision History: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 173 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 174 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 175 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 176 T_AUDIO_RET audio_midi_stop(void) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 177 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 178 #if (L1_MIDI==1) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 179 // Declare local variables | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 180 T_RVF_MB_STATUS mb_status =RVF_GREEN; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 181 T_AUDIO_MIDI_STOP *p_msg_stop=NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 182 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 183 /************************ audio_midi_stop function begins ****************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 184 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 185 if(p_audio_gbl_var==NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 186 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 187 audio_midi_error_trace(AUDIO_ENTITY_NOT_START); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 188 return(AUDIO_ERROR); | 
| 
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 // allocate the memory for the message to send | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 192 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 | 193 sizeof(T_AUDIO_MIDI_STOP), | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 194 (T_RVF_BUFFER **)(&p_msg_stop)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 195 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 196 // 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 | 197 if(mb_status==RVF_YELLOW) | 
| 
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 // deallocate the memory | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 200 rvf_free_buf((T_RVF_BUFFER *)p_msg_stop); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 201 audio_midi_error_trace(AUDIO_ENTITY_NO_MEMORY); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 202 return(AUDIO_ERROR); | 
| 
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 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 205 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 206 if(mb_status==RVF_RED) | 
| 
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_midi_error_trace(AUDIO_ENTITY_NO_MEMORY); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 209 return(AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 210 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 211 } | 
| 
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 // fill the message id | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 214 p_msg_stop->os_hdr.msg_id=AUDIO_MIDI_STOP_REQ; | 
| 
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 // fill the address source id | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 217 p_msg_stop->os_hdr.src_addr_id =rvf_get_taskid(); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 218 p_msg_stop->os_hdr.dest_addr_id=p_audio_gbl_var->addrId; | 
| 
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 // send the messsage to the audio entity | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 221 rvf_send_msg(p_audio_gbl_var->addrId,p_msg_stop); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 222 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 223 return(AUDIO_OK); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 224 #else // L1_MIDI==1 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 225 AUDIO_SEND_TRACE("MIDI not compiled",RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 226 return(AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 227 #endif // L1_MIDI==1 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 228 } /*********************** End of audio_midi_stop function *******************/ | 
| 
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 #if (L1_MIDI == 1) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 231 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 232 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 233 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 234 /* Function Name: audio_midi_message_switch */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 235 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 236 /* Purpose: Manage the message supply */ | 
| 
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 /* Input Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 239 /* start or stop message from midi features */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 240 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 241 /* Output Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 242 /* index of the manager */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 243 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 244 /* Note: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 245 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 246 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 247 /* Revision History: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 248 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 249 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 250 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 251 UINT8 audio_midi_message_switch(T_RV_HDR *p_message) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 252 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 253 switch(p_message->msg_id) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 254 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 255 case AUDIO_MIDI_START_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 256 case AUDIO_MIDI_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 257 return(AUDIO_MIDI); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 258 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 259 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 260 // driver init => check session_id is MIDI | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 261 case AUDIO_DRIVER_INIT_STATUS_MSG: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 262 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 263 UINT8 session_id=((T_AUDIO_DRIVER_INIT_STATUS *)p_message)->session_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 264 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 265 // session_id is MIDI | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 266 if((session_id==AUDIO_MIDI_SESSION_ID) && (p_audio_gbl_var->midi.state!=AUDIO_IDLE)) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 267 return(AUDIO_MIDI); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 268 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 269 return(AUDIO_MIDI_NONE); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 270 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 271 break; | 
| 
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 case AUDIO_DRIVER_NOTIFICATION_MSG: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 274 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 275 UWORD8 channel_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 276 channel_id=((T_AUDIO_DRIVER_NOTIFICATION *)p_message)->channel_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 277 if((channel_id==p_audio_gbl_var->midi.channel_id) && (p_audio_gbl_var->midi.state>AUDIO_WAIT_CHANNEL_ID)) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 278 return(AUDIO_MIDI); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 279 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 280 return(AUDIO_MIDI_NONE); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 281 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 282 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 283 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 284 case AUDIO_DRIVER_STATUS_MSG: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 285 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 286 UWORD8 channel_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 287 channel_id=((T_AUDIO_DRIVER_STATUS *)p_message)->channel_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 288 if((channel_id==p_audio_gbl_var->midi.channel_id) && (p_audio_gbl_var->midi.state>AUDIO_WAIT_CHANNEL_ID)) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 289 return(AUDIO_MIDI); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 290 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 291 return(AUDIO_MIDI_NONE); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 292 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 293 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 294 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 295 default: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 296 return(AUDIO_MIDI_NONE); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 297 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 298 } // switch | 
| 
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 | 
| 
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 /********************************************************************************/ | 
| 
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 /* Function Name: audio_midi_send_status */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 305 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 306 /* Purpose: This function sends the MIDI play status to the entity */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 307 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 308 /* Input Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 309 /* status, */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 310 /* return path */ | 
| 
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 /* Output Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 313 /* None. */ | 
| 
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 /* Note: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 316 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 317 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 318 /* Revision History: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 319 /* None. */ | 
| 
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 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 322 void audio_midi_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 | 323 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 324 T_AUDIO_MIDI_STATUS *p_send_message; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 325 T_RVF_MB_STATUS mb_status=RVF_RED; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 326 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 327 // allocate the message buffer | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 328 while(mb_status==RVF_RED) | 
| 
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 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 | 331 sizeof(T_AUDIO_MIDI_STATUS), | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 332 (T_RVF_BUFFER **)(&p_send_message)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 333 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 334 // If 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 | 335 // and wait until more ressource is given | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 336 if(mb_status==RVF_RED) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 337 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 338 audio_midi_error_trace(AUDIO_ENTITY_NO_MEMORY); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 339 rvf_delay(RVF_MS_TO_TICKS(1000)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 340 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 341 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 342 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 343 // fill the header of the message | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 344 p_send_message->os_hdr.msg_id=AUDIO_MIDI_STATUS_MSG; | 
| 
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 // fill the status parameters | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 347 p_send_message->status=status; | 
| 
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 // send message or call callback | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 350 if(return_path->callback_func==NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 351 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 352 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 | 353 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 354 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 355 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 356 (*(return_path->callback_func))((void *)p_send_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 357 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 | 358 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 359 } | 
| 
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 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 362 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 363 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 364 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 365 /* Function Name: audio_midi_manager */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 366 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 367 /* Purpose: This function is called to manage a MIDI play manager */ | 
| 
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 /* Input Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 370 /* Message to the audio entity */ | 
| 
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 /* Output Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 373 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 374 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 375 /* Note: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 376 /* None. */ | 
| 
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 /* Revision History: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 379 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 380 /* */ | 
| 
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 void audio_midi_manager(T_RV_HDR *p_message) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 383 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 384 // Declare local variables | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 385 T_RV_HDR *p_send_message; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 386 T_RVF_MB_STATUS mb_status; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 387 T_RV_RETURN return_path; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 388 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 389 // initialize the return path | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 390 return_path.callback_func=NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 391 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 | 392 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 393 /**************** audio_midi_manager function begins ***********************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 394 switch(p_audio_gbl_var->midi.state) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 395 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 396 case AUDIO_IDLE: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 397 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 398 switch(p_message->msg_id) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 399 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 400 case AUDIO_MIDI_START_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 401 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 402 T_AUDIO_DRIVER_PARAMETER driver_parameter; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 403 p_audio_gbl_var->midi.stop_req_allowed=TRUE; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 404 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 405 // save the return path + ffs_fd | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 406 p_audio_gbl_var->midi.return_path.callback_func=((T_AUDIO_MIDI_START *)p_message)->return_path.callback_func; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 407 p_audio_gbl_var->midi.return_path.addr_id=((T_AUDIO_MIDI_START *)p_message)->return_path.addr_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 408 p_audio_gbl_var->midi.ffs_fd=((T_AUDIO_MIDI_START *)p_message)->audio_ffs_fd; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 409 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 410 // driver parameters | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 411 driver_parameter.nb_buffer = AUDIO_MIDI_NB_BUFFER; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 412 driver_parameter.buffer_size = AUDIO_MIDI_SIZE; // 16 bit words | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 413 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 414 // return_path for driver | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 415 return_path.callback_func = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 416 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 | 417 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 418 // init driver | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 419 audio_driver_init_midi_session(&driver_parameter,&return_path); | 
| 
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 p_audio_gbl_var->midi.state=AUDIO_WAIT_CHANNEL_ID; | 
| 
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 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 424 case AUDIO_MIDI_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 425 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 426 audio_midi_error_trace(AUDIO_ERROR_STOP_EVENT); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 427 // 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 | 428 // 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 | 429 // 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 | 430 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 431 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 432 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 433 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 434 break; // AUDIO_IDLE | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 435 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 436 case AUDIO_WAIT_CHANNEL_ID: | 
| 
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 switch(p_message->msg_id) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 439 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 440 case AUDIO_DRIVER_INIT_STATUS_MSG: | 
| 
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 UINT8 *play_buffer; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 443 INT16 size_read; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 444 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 445 // 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 | 446 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 | 447 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 448 // get channel id | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 449 p_audio_gbl_var->midi.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 | 450 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 451 // initializations | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 452 p_audio_gbl_var->midi.size = AUDIO_MIDI_SIZE << 1; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 453 p_audio_gbl_var->midi.stop_req_allowed=TRUE; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 454 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 455 // fill all buffers in advance | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 456 while(audio_driver_get_play_buffer(p_audio_gbl_var->midi.channel_id,&play_buffer)==AUDIO_OK) | 
| 
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 // write from FLASH to RAM buffer | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 459 if(p_audio_gbl_var->midi.ffs_fd!=NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 460 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 461 #ifndef _WINDOWS | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 462 size_read=ffs_read(p_audio_gbl_var->midi.ffs_fd,play_buffer,p_audio_gbl_var->midi.size); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 463 #else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 464 size_read=p_audio_gbl_var->midi.size; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 465 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 466 if(size_read<EFFS_OK) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 467 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 468 #ifndef _WINDOWS | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 469 if(ffs_close(p_audio_gbl_var->midi.ffs_fd)!=EFFS_OK) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 470 audio_mem_error_trace(AUDIO_ENTITY_FILE_NO_CLOSE); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 471 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 472 AUDIO_SEND_TRACE("AUDIO MIDI: FFS PLAY READ failed",RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 473 audio_mem_send_status(AUDIO_ERROR,p_audio_gbl_var->midi.channel_id,AUDIO_START_STATUS,return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 474 return; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 475 } | 
| 
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 AUDIO_SEND_TRACE_PARAM("AUDIO MIDI: size read",size_read,RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 479 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 480 audio_driver_play_buffer(p_audio_gbl_var->midi.channel_id,play_buffer); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 481 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 482 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 483 // send message | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 484 audio_driver_start_session(p_audio_gbl_var->midi.channel_id,return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 485 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 486 // change state | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 487 p_audio_gbl_var->midi.state=AUDIO_WAIT_STOP; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 488 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 489 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 490 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 491 audio_midi_error_trace(AUDIO_ERROR_START_EVENT); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 492 audio_midi_send_status(AUDIO_ERROR, &p_audio_gbl_var->midi.return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 493 // change state | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 494 p_audio_gbl_var->midi.state=AUDIO_IDLE; | 
| 
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 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 498 case AUDIO_MIDI_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 499 // change state | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 500 p_audio_gbl_var->midi.state=AUDIO_WAIT_CHANNEL_ID_TO_STOP; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 501 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 502 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 503 } // case AUDIO_WAIT_CHANNEL_ID: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 504 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 505 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 506 case AUDIO_WAIT_STOP: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 507 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 508 switch(p_message->msg_id) | 
| 
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 case AUDIO_DRIVER_NOTIFICATION_MSG: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 511 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 512 UINT8 *play_buffer; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 513 INT16 size_read; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 514 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 515 // try to get a buffer | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 516 if(audio_driver_get_play_buffer(p_audio_gbl_var->midi.channel_id,&play_buffer)==AUDIO_OK) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 517 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 518 #ifndef _WINDOWS | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 519 size_read=ffs_read(p_audio_gbl_var->midi.ffs_fd,play_buffer,p_audio_gbl_var->midi.size); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 520 #else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 521 size_read=p_audio_gbl_var->midi.size; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 522 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 523 if(size_read<EFFS_OK) | 
| 
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 AUDIO_SEND_TRACE("AUDIO MIDI: FFS PLAY READ FILED",RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 526 size_read=0; // will put END_MASK in whole buffer so stops play | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 527 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 528 audio_driver_play_buffer(p_audio_gbl_var->midi.channel_id,play_buffer); | 
| 
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 if(size_read>0) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 531 AUDIO_SEND_TRACE_PARAM("AUDIO MIDI: size read",size_read,RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 532 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 533 AUDIO_SEND_TRACE("AUDIO MIDI: buffer not used",RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 534 } // if(audio_driver_get_play_buffer(channel_id,&p_buffer)==AUDIO_OK) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 535 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 536 AUDIO_SEND_TRACE("AUDIO MIDI: no buffer available",RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
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 break; // case AUDIO_DRIVER_NOTIFICATION_MSG | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 539 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 540 case AUDIO_MIDI_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 541 if(p_audio_gbl_var->midi.stop_req_allowed==TRUE) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 542 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 543 p_audio_gbl_var->midi.stop_req_allowed=FALSE; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 544 audio_driver_stop_session(p_audio_gbl_var->midi.channel_id); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 545 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 546 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 547 AUDIO_SEND_TRACE("AUDIO MIDI: second stop request received",RV_TRACE_LEVEL_WARNING); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 548 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 549 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 550 case AUDIO_DRIVER_STATUS_MSG: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 551 if(p_audio_gbl_var->midi.ffs_fd!=NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 552 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 553 #ifndef _WINDOWS | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 554 if(ffs_close(p_audio_gbl_var->midi.ffs_fd)!=EFFS_OK) 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 | 555 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 556 AUDIO_SEND_TRACE("AUDIO MIDI: close FFS file", RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 557 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 558 audio_midi_send_status(AUDIO_OK,&p_audio_gbl_var->midi.return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 559 p_audio_gbl_var->midi.state=AUDIO_IDLE; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 560 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 561 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 562 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 563 break; // WAIT_STOP | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 564 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 565 case AUDIO_WAIT_CHANNEL_ID_TO_STOP: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 566 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 567 switch(p_message->msg_id) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 568 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 569 case AUDIO_DRIVER_INIT_STATUS_MSG: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 570 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 571 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 | 572 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 573 // get channel_id | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 574 p_audio_gbl_var->midi.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 | 575 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 576 audio_driver_stop_session(p_audio_gbl_var->midi.channel_id); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 577 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 578 // change state | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 579 p_audio_gbl_var->midi.state=AUDIO_WAIT_DRIVER_STOP_CON; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 580 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 581 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 582 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 583 // close file | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 584 if(p_audio_gbl_var->midi.ffs_fd!=NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 585 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 586 #ifndef _WINDOWS | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 587 if(ffs_close(p_audio_gbl_var->midi.ffs_fd)!=EFFS_OK) 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 | 588 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 589 AUDIO_SEND_TRACE("AUDIO MIDI: close FFS file:",RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 590 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 591 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 592 audio_midi_send_status(AUDIO_OK,&p_audio_gbl_var->midi.return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 593 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 594 // change state | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 595 p_audio_gbl_var->midi.state=AUDIO_IDLE; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 596 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 597 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 598 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 599 case AUDIO_MIDI_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 600 audio_midi_error_trace(AUDIO_ERROR_STOP_EVENT); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 601 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 602 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 603 } // case AUDIO_WAIT_CHANNEL_ID_TO_STOP: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 604 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 605 case AUDIO_WAIT_DRIVER_STOP_CON: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 606 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 607 switch(p_message->msg_id) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 608 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 609 case AUDIO_DRIVER_STATUS_MSG: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 610 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 611 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 | 612 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 613 // close file | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 614 if(p_audio_gbl_var->midi.ffs_fd!=NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 615 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 616 #ifndef _WINDOWS | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 617 if(ffs_close(p_audio_gbl_var->midi.ffs_fd)!=EFFS_OK) 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 | 618 #endif | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 619 AUDIO_SEND_TRACE("AUDIO MIDI: close FFS file",RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 620 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 621 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 622 audio_midi_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 | 623 &p_audio_gbl_var->midi.return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 624 p_audio_gbl_var->midi.state=AUDIO_IDLE; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 625 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 626 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 627 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 628 case AUDIO_MIDI_STOP_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 629 audio_midi_error_trace(AUDIO_ERROR_STOP_EVENT); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 630 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 631 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 632 } //case AUDIO_WAIT_DRIVER_STOP_CON: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 633 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 634 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 635 } /*********************** End of audio_midi_manager function **********************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 636 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 637 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 638 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 639 /* Function Name: audio_driver_midi_manager */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 640 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 641 /* Purpose: This function is called to manage a MIDI manager */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 642 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 643 /* Input Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 644 /* Message to the audio entity */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 645 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 646 /* Output Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 647 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 648 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 649 /* Note: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 650 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 651 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 652 /* Revision History: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 653 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 654 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 655 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 656 T_AUDIO_RET audio_driver_midi_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 | 657 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 658 /**************** audio_driver_midi_manager function begins ***********************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 659 switch(p_session->session_info.state) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 660 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 661 case AUDIO_DRIVER_CHANNEL_WAIT_INIT: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 662 // 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 | 663 // 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 | 664 p_session->session_info.index_l1 = 0xFF; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 665 p_session->session_info.index_appli = 0; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 666 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 | 667 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 668 // 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 | 669 p_session->session_req.p_l1_send_message=audio_allocate_l1_message(sizeof(T_MMI_MIDI_REQ)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 670 ((T_MMI_MIDI_REQ *)(p_session->session_req.p_l1_send_message))->session_id=AUDIO_MIDI_SESSION_ID; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 671 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 672 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 | 673 return(AUDIO_OK); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 674 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 675 return(AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 676 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 677 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 678 case AUDIO_DRIVER_CHANNEL_WAIT_START: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 679 // send the start midi message to the L1 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 680 audio_send_l1_message(MMI_MIDI_START_REQ,p_session->session_req.p_l1_send_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 681 return(AUDIO_OK); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 682 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 683 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 684 case AUDIO_DRIVER_CHANNEL_WAIT_STOP: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 685 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 686 // send the stop command to the audio L1 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 687 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 | 688 if(p_send_message!=NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 689 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 690 // send the stop command to the audio L1 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 691 audio_send_l1_message(MMI_MIDI_STOP_REQ,p_send_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 692 return(AUDIO_OK); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 693 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 694 return(AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 695 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 696 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 697 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 | 698 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 699 // send the stop command to the audio L1 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 700 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 | 701 if(p_send_message!=NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 702 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 703 // send the stop command to the audio L1 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 704 audio_send_l1_message(MMI_MIDI_STOP_REQ,p_send_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 705 return(AUDIO_OK); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 706 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 707 return(AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 708 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 709 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 710 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 711 } /*********************** End of audio_driver_midi_manager function **********************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 712 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 713 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 714 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 715 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 716 /* Function Name: audio_driver_init_midi_session */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 717 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 718 /* Purpose: This function is called in order to initialize MIDI */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 719 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 720 /* Input Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 721 /* Specific MIDI parameters */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 722 /* Driver parameters */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 723 /* Return path */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 724 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 725 /* Output Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 726 /* Validation of the parameters */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 727 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 728 /* Note: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 729 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 730 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 731 /* Revision History: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 732 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 733 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 734 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 735 T_AUDIO_RET audio_driver_init_midi_session(T_AUDIO_DRIVER_PARAMETER *p_driver_parameter, T_RV_RETURN *p_return_path) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 736 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 737 #if (L1_MIDI==1) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 738 /* Declare local variables. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 739 T_RVF_MB_STATUS mb_status = RVF_GREEN; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 740 T_AUDIO_DRIVER_INIT_MIDI_SESSION *p_msg = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 741 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 742 /************************ audio_keybeep_stop function begins ****************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 743 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 744 if (p_audio_gbl_var == NULL ) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 745 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 746 audio_driver_error_trace(AUDIO_ENTITY_NOT_START); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 747 return(AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 748 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 749 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 750 /* If bad parameters report an error and abort.*/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 751 if(p_driver_parameter->nb_buffer<2) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 752 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 753 audio_driver_error_trace(AUDIO_ENTITY_BAD_PARAMETER); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 754 return (AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 755 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 756 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 757 /* allocate the memory for the message to send */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 758 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 | 759 sizeof (T_AUDIO_DRIVER_INIT_MIDI_SESSION), | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 760 (T_RVF_BUFFER **) (&p_msg)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 761 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 762 /* 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 | 763 if (mb_status == RVF_YELLOW) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 764 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 765 /* deallocate the memory */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 766 rvf_free_buf((T_RVF_BUFFER *)p_msg); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 767 audio_driver_error_trace(AUDIO_ENTITY_NO_MEMORY); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 768 return (AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 769 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 770 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 771 if (mb_status == RVF_RED) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 772 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 773 audio_driver_error_trace(AUDIO_ENTITY_NO_MEMORY); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 774 return (AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 775 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 776 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 777 /* fill the message id */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 778 p_msg->os_hdr.msg_id = AUDIO_DRIVER_INIT_MIDI_SESSION; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 779 p_msg->os_hdr.dest_addr_id = p_audio_gbl_var->addrId; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 780 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 781 /* fill parameters */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 782 p_msg->driver_parameter.buffer_size = p_driver_parameter->buffer_size; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 783 p_msg->driver_parameter.nb_buffer = p_driver_parameter->nb_buffer; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 784 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 785 if (p_return_path->callback_func == NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 786 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 787 p_msg->return_path.addr_id = p_return_path->addr_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 788 p_msg->return_path.callback_func = NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 789 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 790 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 791 p_msg->return_path.callback_func = p_return_path->callback_func; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 792 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 793 /* send the messsage to the audio entity */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 794 rvf_send_msg (p_audio_gbl_var->addrId, p_msg); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 795 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 796 return (AUDIO_OK); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 797 #else // L1_MIDI==1 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 798 AUDIO_SEND_TRACE("MIDI not compiled", RV_TRACE_LEVEL_DEBUG_LOW); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 799 return (AUDIO_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 800 #endif // L1_MIDI==1 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 801 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 802 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 803 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 804 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 805 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 806 /* Function Name: audio_midi_l1_simulator */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 807 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 808 /* Purpose: This function simulates the L1 for MIDI */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 809 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 810 /* Input Parameters: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 811 /* event: Event that triggered the function */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 812 /* p_msg: Message (if any) associated with the event */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 813 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 814 /* Note: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 815 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 816 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 817 /* Revision History: */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 818 /* None. */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 819 /* */ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 820 /********************************************************************************/ | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 821 void audio_midi_l1_simulator(UINT16 event, T_RV_HDR *p_message) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 822 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 823 #ifdef _WINDOWS | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 824 enum { WAIT_START_REQ, WAIT_STOP }; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 825 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 826 T_RVF_MB_STATUS mb_status; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 827 T_RV_RETURN *return_path=&(p_audio_gbl_var->audio_driver_session[p_audio_gbl_var->midi.channel_id].session_req.return_path); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 828 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 829 switch(p_audio_gbl_var->midi.l1_state) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 830 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 831 case WAIT_START_REQ: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 832 if(p_message->msg_id==MMI_MIDI_START_REQ) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 833 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 834 rvf_start_timer(AUDIO_MIDI_L1_SIMUL_TIMER, | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 835 RVF_MS_TO_TICKS(1000), | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 836 AUDIO_MIDI_L1_SIMUL_ONE_SHOT_TIMER); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 837 p_audio_gbl_var->midi.counter=10; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 838 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 839 // send MMI_MIDI_START_CON message to the Riviera audio entity | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 840 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 | 841 sizeof(T_AUDIO_DRIVER_NOTIFICATION), | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 842 (T_RVF_BUFFER **)(&p_message)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 843 if(mb_status==RVF_RED) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 844 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 845 AUDIO_SEND_TRACE("AUDIO entity has no memory for driver notification",RV_TRACE_LEVEL_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 846 return; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 847 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 848 ((T_AUDIO_DRIVER_NOTIFICATION *)p_message)->header.msg_id=MMI_MIDI_START_CON; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 849 ((T_AUDIO_DRIVER_NOTIFICATION *)p_message)->channel_id=p_audio_gbl_var->midi.channel_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 850 ((T_AUDIO_DRIVER_NOTIFICATION *)p_message)->p_buffer=NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 851 if(return_path->callback_func==NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 852 rvf_send_msg(return_path->addr_id, p_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 853 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 854 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 855 (*return_path->callback_func)((void *)(p_message)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 856 rvf_free_buf((T_RVF_BUFFER *)p_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 857 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 858 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 859 p_audio_gbl_var->midi.l1_state=WAIT_STOP; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 860 return; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 861 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 862 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 863 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 864 case WAIT_STOP: | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 865 if(event & AUDIO_MIDI_L1_SIMUL_TIMER_EVT_MASK) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 866 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 867 p_audio_gbl_var->midi.counter--; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 868 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 869 // switch buffer | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 870 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 871 T_AUDIO_DRIVER_SESSION *p=&p_audio_gbl_var->audio_driver_session[p_audio_gbl_var->midi.channel_id]; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 872 p->session_info.index_l1++; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 873 if(p->session_info.index_l1==p->session_req.nb_buffer) p->session_info.index_l1=0; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 874 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 875 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 876 // send notification message to the Riviera audio entity | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 877 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 | 878 sizeof(T_AUDIO_DRIVER_NOTIFICATION), | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 879 (T_RVF_BUFFER **)(&p_message)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 880 if(mb_status==RVF_RED) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 881 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 882 AUDIO_SEND_TRACE("AUDIO entity has no memory for driver notification",RV_TRACE_LEVEL_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 883 return; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 884 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 885 ((T_AUDIO_DRIVER_NOTIFICATION *)p_message)->header.msg_id=AUDIO_DRIVER_NOTIFICATION_MSG; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 886 ((T_AUDIO_DRIVER_NOTIFICATION *)p_message)->channel_id=p_audio_gbl_var->midi.channel_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 887 ((T_AUDIO_DRIVER_NOTIFICATION *)p_message)->p_buffer=NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 888 if(return_path->callback_func==NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 889 rvf_send_msg(return_path->addr_id, p_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 890 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 891 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 892 (*return_path->callback_func)((void *)(p_message)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 893 rvf_free_buf((T_RVF_BUFFER *)p_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 894 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 895 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 896 // check if we're done with the simulation | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 897 if(p_audio_gbl_var->midi.counter==0) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 898 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 899 rvf_stop_timer(AUDIO_MIDI_L1_SIMUL_TIMER); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 900 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 901 // send MMI_MIDI_STOP_CON message to the Riviera audio entity | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 902 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 | 903 sizeof(T_AUDIO_DRIVER_NOTIFICATION), | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 904 (T_RVF_BUFFER **)(&p_message)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 905 if(mb_status==RVF_RED) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 906 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 907 AUDIO_SEND_TRACE("AUDIO entity has no memory for driver notification",RV_TRACE_LEVEL_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 908 return; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 909 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 910 ((T_AUDIO_DRIVER_NOTIFICATION *)p_message)->header.msg_id=MMI_MIDI_STOP_CON; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 911 ((T_AUDIO_DRIVER_NOTIFICATION *)p_message)->channel_id=p_audio_gbl_var->midi.channel_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 912 ((T_AUDIO_DRIVER_NOTIFICATION *)p_message)->p_buffer=NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 913 if(return_path->callback_func==NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 914 rvf_send_msg(return_path->addr_id, p_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 915 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 916 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 917 (*return_path->callback_func)((void *)(p_message)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 918 rvf_free_buf((T_RVF_BUFFER *)p_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 919 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 920 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 921 p_audio_gbl_var->midi.l1_state=WAIT_START_REQ; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 922 return; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 923 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 924 rvf_start_timer(AUDIO_MIDI_L1_SIMUL_TIMER, | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 925 RVF_MS_TO_TICKS(1000), | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 926 AUDIO_MIDI_L1_SIMUL_ONE_SHOT_TIMER); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 927 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 928 if(p_message->msg_id==MMI_MIDI_STOP_REQ) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 929 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 930 rvf_stop_timer(AUDIO_MIDI_L1_SIMUL_TIMER); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 931 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 932 // send MMI_MIDI_STOP_CON message to the Riviera audio entity | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 933 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 | 934 sizeof(T_AUDIO_DRIVER_NOTIFICATION), | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 935 (T_RVF_BUFFER **)(&p_message)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 936 if(mb_status==RVF_RED) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 937 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 938 AUDIO_SEND_TRACE("AUDIO entity has no memory for driver notification",RV_TRACE_LEVEL_ERROR); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 939 return; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 940 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 941 ((T_AUDIO_DRIVER_NOTIFICATION *)p_message)->header.msg_id=MMI_MIDI_STOP_CON; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 942 ((T_AUDIO_DRIVER_NOTIFICATION *)p_message)->channel_id=p_audio_gbl_var->midi.channel_id; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 943 ((T_AUDIO_DRIVER_NOTIFICATION *)p_message)->p_buffer=NULL; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 944 if(return_path->callback_func==NULL) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 945 rvf_send_msg(return_path->addr_id, p_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 946 else | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 947 { | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 948 (*return_path->callback_func)((void *)(p_message)); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 949 rvf_free_buf((T_RVF_BUFFER *)p_message); | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 950 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 951 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 952 p_audio_gbl_var->midi.l1_state=WAIT_START_REQ; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 953 return; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 954 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 955 break; | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 956 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 957 #endif // _WINDOWS | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 958 } | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 959 | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 960 #endif // #if (L1_MIDI == 1) | 
| 
945cf7f506b2
src/cs: chipsetsw import from tcs211-fcmodem
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 961 #endif // #ifdef RVM_AUDIO_MAIN_SWE | 
