Several examples run on only mbed-os5.13.0 (not 5.14.0)

Dependencies:   BD_SD_DISCO_F769NI BSP_DISCO_F769NI LCD_DISCO_F769NI TS_DISCO_F769NI USBHost_F769NI

Revision:
4:0f4affc00183
Parent:
3:35ac9ee7d2d6
--- a/z_example/8_audio.cpp	Wed Aug 07 05:39:01 2019 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,148 +0,0 @@
-// Original
-//      https://os.mbed.com/teams/ST/code/DISCO-F769NI_AUDIO_demo/
-//
-// Modified by K.Arai
-//      July 23rd, 2019
-//
-
-#include "select_program.h"
-//#define EXAMPLE_8_AUDIO
-#ifdef EXAMPLE_8_AUDIO
-
-#include "mbed.h"
-#include "stm32f769i_discovery.h"
-#include "stm32f769i_discovery_audio.h"
-
-Serial pc(USBTX, USBRX, 115200);
-
-static void CopyBuffer(int16_t *pbuffer1, int16_t *pbuffer2, uint16_t BufferSize);
-
-#define SCRATCH_BUFF_SIZE  1024
-#define RECORD_BUFFER_SIZE  4096
-
-typedef enum {
-    BUFFER_OFFSET_NONE = 0,
-    BUFFER_OFFSET_HALF = 1,
-    BUFFER_OFFSET_FULL = 2,
-} BUFFER_StateTypeDef;
-
-volatile uint32_t  audio_rec_buffer_state = BUFFER_OFFSET_NONE;
-int32_t Scratch[SCRATCH_BUFF_SIZE];
-
-/* Buffer containing the PCM samples coming from the microphone */
-int16_t RecordBuffer[RECORD_BUFFER_SIZE];
-
-/* Buffer used to stream the recorded PCM samples towards the audio codec. */
-int16_t PlaybackBuffer[RECORD_BUFFER_SIZE];
-
-int main()
-{
-    uint32_t audio_loop_back_init = RESET ;
-
-    printf("\n\nAUDIO LOOPBACK EXAMPLE FOR DISCO-F769NI START:\n");
-
-    /* Initialize Audio Recorder with 4 channels to be used */
-    if (BSP_AUDIO_IN_Init(BSP_AUDIO_FREQUENCY_44K, DEFAULT_AUDIO_IN_BIT_RESOLUTION, 2*DEFAULT_AUDIO_IN_CHANNEL_NBR) == AUDIO_ERROR) {
-        printf("BSP_AUDIO_IN_Init error\n");
-    }
-
-    /* Allocate scratch buffers */
-    if (BSP_AUDIO_IN_AllocScratch (Scratch, SCRATCH_BUFF_SIZE) == AUDIO_ERROR) {
-        printf("BSP_AUDIO_IN_AllocScratch error\n");
-    }
-
-    /* Start Recording */
-    if (BSP_AUDIO_IN_Record((uint16_t*)&RecordBuffer[0], RECORD_BUFFER_SIZE) == AUDIO_ERROR) {
-        printf("BSP_AUDIO_IN_Record error\n");
-    }
-    uint8_t ChannelNumber = BSP_AUDIO_IN_GetChannelNumber();
-
-    audio_rec_buffer_state = BUFFER_OFFSET_NONE;
-
-    while (1) {
-        /* 1st or 2nd half of the record buffer ready for being copied to the playbakc buffer */
-        if(audio_rec_buffer_state != BUFFER_OFFSET_NONE) {
-            /* Copy half of the record buffer to the playback buffer */
-            if(audio_rec_buffer_state == BUFFER_OFFSET_HALF) {
-                CopyBuffer(&PlaybackBuffer[0], &RecordBuffer[0], RECORD_BUFFER_SIZE/2);
-                if (audio_loop_back_init == RESET) {
-                    /* Initialize the audio device*/
-                    if (BSP_AUDIO_OUT_Init(OUTPUT_DEVICE_HEADPHONE, 70, BSP_AUDIO_FREQUENCY_44K) == AUDIO_ERROR) {
-                        printf("BSP_AUDIO_OUT_Init error\n");
-                    }
-                    if(ChannelNumber > 2) {
-                        BSP_AUDIO_OUT_SetAudioFrameSlot(CODEC_AUDIOFRAME_SLOT_0123);
-                    } else {
-                        BSP_AUDIO_OUT_SetAudioFrameSlot(CODEC_AUDIOFRAME_SLOT_02);
-                    }
-
-                    /* Play the recorded buffer */
-                    if (BSP_AUDIO_OUT_Play((uint16_t *) &PlaybackBuffer[0], 2*RECORD_BUFFER_SIZE) == AUDIO_ERROR) {
-                        printf("BSP_AUDIO_OUT_Play error\n");
-                    }
-                    /* Audio device is initialized only once */
-                    audio_loop_back_init = SET;
-                }
-
-
-            } else { /* if(audio_rec_buffer_state == BUFFER_OFFSET_FULL)*/
-                CopyBuffer(&PlaybackBuffer[RECORD_BUFFER_SIZE/2], &RecordBuffer[RECORD_BUFFER_SIZE/2], RECORD_BUFFER_SIZE/2);
-            }
-
-            /* Wait for next data */
-            audio_rec_buffer_state = BUFFER_OFFSET_NONE;
-        }
-    }
-}
-
-/*-------------------------------------------------------------------------------------
-       Callbacks implementation:
-           the callbacks API are defined __weak in the stm32f769i_discovery_audio.c file
-           and their implementation should be done in the user code if they are needed.
-           Below some examples of callback implementations.
-  -------------------------------------------------------------------------------------*/
-/**
-  * @brief Manages the DMA Transfer complete interrupt.
-  * @param None
-  * @retval None
-  */
-void BSP_AUDIO_IN_TransferComplete_CallBack(void)
-{
-    audio_rec_buffer_state = BUFFER_OFFSET_FULL;
-}
-
-/**
-  * @brief  Manages the DMA Half Transfer complete interrupt.
-  * @param  None
-  * @retval None
-  */
-void BSP_AUDIO_IN_HalfTransfer_CallBack(void)
-{
-    audio_rec_buffer_state = BUFFER_OFFSET_HALF;
-}
-
-/**
-  * @brief  Audio IN Error callback function.
-  * @param  None
-  * @retval None
-  */
-void BSP_AUDIO_IN_Error_CallBack(void)
-{
-    printf("BSP_AUDIO_IN_Error_CallBack\n");
-}
-
-
-/**
-  * @brief  Copy content of pbuffer2 to pbuffer1
-  * @param  None
-  * @retval None
-  */
-static void CopyBuffer(int16_t *pbuffer1, int16_t *pbuffer2, uint16_t BufferSize)
-{
-    uint32_t i = 0;
-    for(i = 0; i < BufferSize; i++) {
-        pbuffer1[i] = pbuffer2[i];
-    }
-}
-
-#endif