sd + skpeaker

Dependencies:   ST_I2S X_NUCLEO_COMMON

Fork of X_NUCLEO_CCA01M1 by ST

Committer:
davide.aliprandi@st.com
Date:
Fri Apr 21 10:07:28 2017 +0200
Revision:
3:c688a4acb4bf
Parent:
0:542c79e7e0ef
Aligned to ARM mbed coding style.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
davide.aliprandi@st.com 0:542c79e7e0ef 1 /**
davide.aliprandi@st.com 0:542c79e7e0ef 2 ******************************************************************************
davide.aliprandi@st.com 0:542c79e7e0ef 3 * @file SoundTerminal.h
davide.aliprandi@st.com 0:542c79e7e0ef 4 * @author AST
davide.aliprandi@st.com 0:542c79e7e0ef 5 * @version V1.0.0
davide.aliprandi@st.com 0:542c79e7e0ef 6 * @date April 13th, 2015
davide.aliprandi@st.com 0:542c79e7e0ef 7 * @brief This file contains the abstract class describing the interface of a
davide.aliprandi@st.com 0:542c79e7e0ef 8 * sound_terminal component.
davide.aliprandi@st.com 0:542c79e7e0ef 9 ******************************************************************************
davide.aliprandi@st.com 0:542c79e7e0ef 10 * @attention
davide.aliprandi@st.com 0:542c79e7e0ef 11 *
davide.aliprandi@st.com 0:542c79e7e0ef 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
davide.aliprandi@st.com 0:542c79e7e0ef 13 *
davide.aliprandi@st.com 0:542c79e7e0ef 14 * Redistribution and use in source and binary forms, with or without modification,
davide.aliprandi@st.com 0:542c79e7e0ef 15 * are permitted provided that the following conditions are met:
davide.aliprandi@st.com 0:542c79e7e0ef 16 * 1. Redistributions of source code must retain the above copyright notice,
davide.aliprandi@st.com 0:542c79e7e0ef 17 * this list of conditions and the following disclaimer.
davide.aliprandi@st.com 0:542c79e7e0ef 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
davide.aliprandi@st.com 0:542c79e7e0ef 19 * this list of conditions and the following disclaimer in the documentation
davide.aliprandi@st.com 0:542c79e7e0ef 20 * and/or other materials provided with the distribution.
davide.aliprandi@st.com 0:542c79e7e0ef 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
davide.aliprandi@st.com 0:542c79e7e0ef 22 * may be used to endorse or promote products derived from this software
davide.aliprandi@st.com 0:542c79e7e0ef 23 * without specific prior written permission.
davide.aliprandi@st.com 0:542c79e7e0ef 24 *
davide.aliprandi@st.com 0:542c79e7e0ef 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
davide.aliprandi@st.com 0:542c79e7e0ef 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
davide.aliprandi@st.com 0:542c79e7e0ef 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
davide.aliprandi@st.com 0:542c79e7e0ef 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
davide.aliprandi@st.com 0:542c79e7e0ef 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
davide.aliprandi@st.com 0:542c79e7e0ef 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
davide.aliprandi@st.com 0:542c79e7e0ef 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
davide.aliprandi@st.com 0:542c79e7e0ef 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
davide.aliprandi@st.com 0:542c79e7e0ef 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
davide.aliprandi@st.com 0:542c79e7e0ef 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
davide.aliprandi@st.com 0:542c79e7e0ef 35 *
davide.aliprandi@st.com 0:542c79e7e0ef 36 ******************************************************************************
davide.aliprandi@st.com 0:542c79e7e0ef 37 */
davide.aliprandi@st.com 0:542c79e7e0ef 38
davide.aliprandi@st.com 0:542c79e7e0ef 39
davide.aliprandi@st.com 0:542c79e7e0ef 40 /* Generated with STM32CubeTOO -----------------------------------------------*/
davide.aliprandi@st.com 0:542c79e7e0ef 41
davide.aliprandi@st.com 0:542c79e7e0ef 42
davide.aliprandi@st.com 0:542c79e7e0ef 43 /* Revision ------------------------------------------------------------------*/
davide.aliprandi@st.com 0:542c79e7e0ef 44 /*
davide.aliprandi@st.com 0:542c79e7e0ef 45 Repository: http://svn.x-nucleodev.codex.cro.st.com/svnroot/X-NucleoDev
davide.aliprandi@st.com 0:542c79e7e0ef 46 Branch/Trunk/Tag: trunk
davide.aliprandi@st.com 0:542c79e7e0ef 47 Based on: X-CUBE-SOUNDTER1/trunk/Drivers/BSP/Components/Common/sound_terminal.h
davide.aliprandi@st.com 0:542c79e7e0ef 48 Revision: 0
davide.aliprandi@st.com 0:542c79e7e0ef 49 */
davide.aliprandi@st.com 0:542c79e7e0ef 50
davide.aliprandi@st.com 0:542c79e7e0ef 51
davide.aliprandi@st.com 0:542c79e7e0ef 52 /* Define to prevent recursive inclusion -------------------------------------*/
davide.aliprandi@st.com 0:542c79e7e0ef 53
davide.aliprandi@st.com 0:542c79e7e0ef 54 #ifndef __SOUND_TERMINAL_CLASS_H
davide.aliprandi@st.com 0:542c79e7e0ef 55 #define __SOUND_TERMINAL_CLASS_H
davide.aliprandi@st.com 0:542c79e7e0ef 56
davide.aliprandi@st.com 0:542c79e7e0ef 57
davide.aliprandi@st.com 0:542c79e7e0ef 58 /* Includes ------------------------------------------------------------------*/
davide.aliprandi@st.com 0:542c79e7e0ef 59
davide.aliprandi@st.com 3:c688a4acb4bf 60 #include "Component.h"
davide.aliprandi@st.com 0:542c79e7e0ef 61
davide.aliprandi@st.com 0:542c79e7e0ef 62
davide.aliprandi@st.com 0:542c79e7e0ef 63 /* Classes ------------------------------------------------------------------*/
davide.aliprandi@st.com 0:542c79e7e0ef 64
davide.aliprandi@st.com 0:542c79e7e0ef 65 /** An abstract class for SoundTerminal components.
davide.aliprandi@st.com 0:542c79e7e0ef 66 */
davide.aliprandi@st.com 3:c688a4acb4bf 67 class SoundTerminal : public Component
davide.aliprandi@st.com 0:542c79e7e0ef 68 {
davide.aliprandi@st.com 0:542c79e7e0ef 69 public:
davide.aliprandi@st.com 0:542c79e7e0ef 70 /* ACTION 1 --------------------------------------------------------------*
davide.aliprandi@st.com 0:542c79e7e0ef 71 * Declare here the interface's methods. *
davide.aliprandi@st.com 0:542c79e7e0ef 72 * They should be: *
davide.aliprandi@st.com 0:542c79e7e0ef 73 * + Methods with the same name of the C component's virtual table *
davide.aliprandi@st.com 0:542c79e7e0ef 74 * (and extended virtual table, if any)'s functions, provided that *
davide.aliprandi@st.com 0:542c79e7e0ef 75 * the component's driver implements them (i.e.: the corresponding *
davide.aliprandi@st.com 0:542c79e7e0ef 76 * pointer to function is not "0"). *
davide.aliprandi@st.com 0:542c79e7e0ef 77 * *
davide.aliprandi@st.com 0:542c79e7e0ef 78 * Example: *
davide.aliprandi@st.com 0:542c79e7e0ef 79 * virtual int GetValue(float *f) = 0; *
davide.aliprandi@st.com 0:542c79e7e0ef 80 *------------------------------------------------------------------------*/
davide.aliprandi@st.com 3:c688a4acb4bf 81 /**
davide.aliprandi@st.com 3:c688a4acb4bf 82 * @brief Playing a buffer of data.
davide.aliprandi@st.com 3:c688a4acb4bf 83 */
davide.aliprandi@st.com 3:c688a4acb4bf 84 virtual int32_t play(int16_t *pData, uint16_t Size, bool loop) = 0;
davide.aliprandi@st.com 3:c688a4acb4bf 85
davide.aliprandi@st.com 3:c688a4acb4bf 86 /**
davide.aliprandi@st.com 3:c688a4acb4bf 87 * @brief Stop playing.
davide.aliprandi@st.com 3:c688a4acb4bf 88 */
davide.aliprandi@st.com 3:c688a4acb4bf 89 virtual int32_t stop(void) = 0;
davide.aliprandi@st.com 3:c688a4acb4bf 90
davide.aliprandi@st.com 3:c688a4acb4bf 91 /**
davide.aliprandi@st.com 3:c688a4acb4bf 92 * @brief Setting volume.
davide.aliprandi@st.com 3:c688a4acb4bf 93 */
davide.aliprandi@st.com 3:c688a4acb4bf 94 virtual int32_t set_volume(uint8_t channel, uint8_t value) = 0;
davide.aliprandi@st.com 3:c688a4acb4bf 95
davide.aliprandi@st.com 3:c688a4acb4bf 96 /**
davide.aliprandi@st.com 3:c688a4acb4bf 97 * @brief Setting frequency.
davide.aliprandi@st.com 3:c688a4acb4bf 98 */
davide.aliprandi@st.com 3:c688a4acb4bf 99 virtual int32_t set_frequency(uint32_t audio_freq) = 0;
davide.aliprandi@st.com 3:c688a4acb4bf 100
davide.aliprandi@st.com 3:c688a4acb4bf 101 /**
davide.aliprandi@st.com 3:c688a4acb4bf 102 * @brief Destructor.
davide.aliprandi@st.com 3:c688a4acb4bf 103 */
davide.aliprandi@st.com 3:c688a4acb4bf 104 virtual ~SoundTerminal() {};
davide.aliprandi@st.com 0:542c79e7e0ef 105 };
davide.aliprandi@st.com 0:542c79e7e0ef 106
davide.aliprandi@st.com 0:542c79e7e0ef 107 #endif /* __SOUND_TERMINAL_CLASS_H */
davide.aliprandi@st.com 0:542c79e7e0ef 108
davide.aliprandi@st.com 0:542c79e7e0ef 109 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/