FreeCalypso > hg > fc-magnetite
view src/aci2/aci/ati_audio.c @ 232:cbee8f31694a
l1_rf12.c: rf_850 Tx calchan bogon fixed
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 12 Mar 2017 20:58:28 +0000 |
parents | 67fe1b3f4bd7 |
children | e0b9c21d7908 |
line wrap: on
line source
/* * This ATI module and the AT commands implemented therein are a FreeCalypso * addition. The purpose of these AT commands is to exercise the audio * capabilities of the firmware - by using these commands, you should be * able to emit sounds from the speaker or record voice from the microphone * without needing to be in a call, and without bringing up GSM at all. */ #ifndef ATI_AUDIO_C #define ATI_AUDIO_C #include "aci_all.h" #include <ctype.h> #include <string.h> #include "aci_cmh.h" #include "ati_cmd.h" #include "aci_cmd.h" #include "aci_io.h" #include "aci_cmd.h" #include "l4_tim.h" #include "line_edit.h" #include "aci_lst.h" #include "pcm.h" #include "audio.h" #include "aci.h" #include "rx.h" #include "pwr.h" #include "l4_tim.h" #ifdef GPRS #ifdef DTI #include "dti.h" #include "dti_conn_mng.h" #include "dti_cntrl_mng.h" #endif /* DTI */ #include "gaci.h" #include "gaci_cmh.h" #include "gaci_cmd.h" #endif /* GPRS */ #include "aci_mem.h" #include "aci_prs.h" #include "ati_int.h" #ifndef _SIMULATION_ #include "ffs/ffs.h" #endif #ifdef FF_ATI_BAT #include "typedefs.h" #include "gdd.h" #include "bat.h" #include "ati_bat.h" #endif /*FF_ATI_BAT*/ #include "audio/audio_api.h" #include "audio.h" /* Condat */ /* AT@SND - emit sound through Condat API */ GLOBAL T_ATI_RSLT atAtSND ( char *cl, UBYTE srcId ) { UBYTE sound_id = TONES_KEYBEEP; cl = parse(cl, "x", &sound_id); audio_PlaySoundID(AUDIO_SPEAKER, sound_id, 0, AUDIO_PLAY_ONCE); return (ATI_CMPL); } static void audio_callback(void *event_from_audio) { /* do nothing at this time */ } /* AT@E1 - play an E1 format melody */ GLOBAL T_ATI_RSLT atAtE1 ( char *cl, UBYTE srcId ) { T_AUDIO_MELODY_E1_PARAMETER e1_param; T_RV_RETURN return_path; e1_param.melody_name[0] = 0; cl = parse(cl, "s", (LONG)(sizeof(e1_param.melody_name) - 1), e1_param.melody_name); if (!e1_param.melody_name[0]) return (ATI_FAIL); e1_param.loopback = AUDIO_MELODY_NO_LOOPBACK; e1_param.melody_mode = AUDIO_MELODY_NORMAL_MODE; return_path.addr_id = NULL; return_path.callback_func = audio_callback; if (audio_melody_E1_start(&e1_param, return_path) == AUDIO_OK) return (ATI_CMPL); else return (ATI_FAIL); } /* AT@E2 - play an E2 format melody */ GLOBAL T_ATI_RSLT atAtE2 ( char *cl, UBYTE srcId ) { T_AUDIO_MELODY_E2_PARAMETER e2_param; T_RV_RETURN return_path; e2_param.melody_E2_name[0] = 0; cl = parse(cl, "s", (LONG)(sizeof(e2_param.melody_E2_name) - 1), e2_param.melody_E2_name); if (!e2_param.melody_E2_name[0]) return (ATI_FAIL); e2_param.E2_loopback = AUDIO_MELODY_NO_LOOPBACK; e2_param.melody_E2_mode = AUDIO_MELODY_NORMAL_MODE; return_path.addr_id = NULL; return_path.callback_func = audio_callback; if (audio_melody_E2_start(&e2_param, return_path) == AUDIO_OK) return (ATI_CMPL); else return (ATI_FAIL); } /* AT@E2LSI - load melody E2 instrument list file */ GLOBAL T_ATI_RSLT atAtE2LSI ( char *cl, UBYTE srcId ) { T_AUDIO_MELODY_E2_LOAD_FILE_INSTR_PARAMETER e2_lsi_param; e2_lsi_param.melody_E2_file_name[0] = 0; cl = parse(cl, "s", (LONG)(sizeof(e2_lsi_param.melody_E2_file_name)-1), e2_lsi_param.melody_E2_file_name); if (!e2_lsi_param.melody_E2_file_name[0]) return (ATI_FAIL); if (audio_melody_E2_load_file_instruments(&e2_lsi_param) == AUDIO_OK) return (ATI_CMPL); else return (ATI_FAIL); } #endif /* ATI_AUDIO_C */