diff --git a/platform/embedded/hal_audio_dma.h b/platform/embedded/hal_audio_dma.h deleted file mode 100644 index 2e86b9c78..000000000 --- a/platform/embedded/hal_audio_dma.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2017 BlueKitchen GmbH - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the copyright holders nor the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * 4. Any redistribution, use, or modification is done solely for - * personal benefit and not for any commercial purpose or for - * monetary gain. - * - * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS - * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF - * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * Please inquire about commercial licensing options at - * contact@bluekitchen-gmbh.com - * - */ - -#ifndef __HAL_AUDIO_DMA_H -#define __HAL_AUDIO_DMA_H - -#include - -/* - * hal_audio_dma.h - * - * Hardware abstraction layer that provides block-wise audio playback - * - */ - -/** - * @brief Setup audio codec for specified samplerate - * @param Sample rate - */ -void hal_audio_dma_init(uint32_t sample_rate); - -/** - * @brief Set callback to call when audio was sent - * @param handler - */ - -void hal_audio_dma_set_audio_played(void (*handler)(void)); - -/** - * @brief Play audio - * @param audio_data - * @param audio_len in bytes - */ - -void hal_audio_dma_play(const uint8_t * audio_data, uint16_t audio_len); - -/** - * @brief Close audio codec - */ -void hal_audio_dma_close(void); - -#endif diff --git a/port/stm32-f4discovery-cc256x/src/hal_audio_dma.c b/port/stm32-f4discovery-cc256x/src/hal_audio_dma.c deleted file mode 100644 index afca2e154..000000000 --- a/port/stm32-f4discovery-cc256x/src/hal_audio_dma.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2017 BlueKitchen GmbH - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the copyright holders nor the names of - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * 4. Any redistribution, use, or modification is done solely for - * personal benefit and not for any commercial purpose or for - * monetary gain. - * - * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS - * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF - * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * Please inquire about commercial licensing options at - * contact@bluekitchen-gmbh.com - * - */ - -#include "hal_audio_dma.h" -#include "stm32f4_discovery_audio.h" - -static void (*audio_played_handler)(void); -static int started; - -void BSP_AUDIO_OUT_TransferComplete_CallBack(void){ - if (audio_played_handler){ - audio_played_handler(); - } -} - -void hal_audio_dma_init(uint32_t sample_rate){ - BSP_AUDIO_OUT_Init(OUTPUT_DEVICE_BOTH, 100, sample_rate); -} - -void hal_audio_dma_set_audio_played(void (*handler)(void)){ - audio_played_handler = handler; -} - -void hal_audio_dma_play(const uint8_t * audio_data, uint16_t audio_len){ - if (!started){ - started = 1; - BSP_AUDIO_OUT_Play(audio_data, audio_len); - } else { - BSP_AUDIO_OUT_ChangeBuffer(audio_data, audio_len >> 1); - } -} - -void hal_audio_dma_close(void){ - started = 0; - BSP_AUDIO_OUT_Stop(CODEC_PDWN_HW); -} - diff --git a/port/stm32-f4discovery-cc256x/src/mod_player.c b/port/stm32-f4discovery-cc256x/src/mod_player.c deleted file mode 100644 index 8f7016f0c..000000000 --- a/port/stm32-f4discovery-cc256x/src/mod_player.c +++ /dev/null @@ -1,53 +0,0 @@ -#include "hal_audio_dma.h" -#include "string.h" -#include "hxcmod.h" -#include "mods/mod.h" -#include "btstack_config.h" - -#ifndef HAVE_AUDIO_DMA -#error "MOD-Player requires HAVE_AUDIO_DMA implementation, please enable in btstack_config.h" -#endif - -#define NUM_SAMPLES 100 -static uint16_t audio_samples1[NUM_SAMPLES*2]; -static uint16_t audio_samples2[NUM_SAMPLES*2]; -static volatile int active_buffer; -static int hxcmod_initialized = 0; -static modcontext mod_context; - -void audio_transfer_complete(void){ - if (active_buffer){ - hal_audio_dma_play((uint8_t*) &audio_samples1[0], sizeof(audio_samples1)); - active_buffer = 0; - } else { - hal_audio_dma_play((uint8_t*)&audio_samples2[0], sizeof(audio_samples2)); - active_buffer = 1; - } -} - -void mod_player(void){ - - hal_audio_dma_init(44100); - hal_audio_dma_set_audio_played(&audio_transfer_complete); - - hxcmod_initialized = hxcmod_init(&mod_context); - if (hxcmod_initialized){ - hxcmod_setcfg(&mod_context, 44100, 16, 1, 1, 1); - hxcmod_load(&mod_context, (void *) &mod_data, mod_len); - } - - active_buffer = 0; - hxcmod_fillbuffer(&mod_context, (unsigned short *) &audio_samples1[0], NUM_SAMPLES, NULL); - hal_audio_dma_play((uint8_t*) &audio_samples1[0], sizeof(audio_samples1)); - - while (1){ - hxcmod_fillbuffer(&mod_context, (unsigned short *) &audio_samples2[0], NUM_SAMPLES, NULL); - while (active_buffer == 0){ - __asm__("wfe"); - } - hxcmod_fillbuffer(&mod_context, (unsigned short *) &audio_samples1[0], NUM_SAMPLES, NULL); - while (active_buffer == 1){ - __asm__("wfe"); - } - } -}