aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/include
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2012-03-17 14:21:45 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2012-03-17 14:21:45 +0000
commit3534921f053bb9ea25413e8b10424ad06ff9b677 (patch)
tree6616689e8f988b070dae036a82f82edaa4e3c9ac /os/hal/include
parent093b17ed718bef6d6c1b941218edd67327884c87 (diff)
downloadChibiOS-3534921f053bb9ea25413e8b10424ad06ff9b677.tar.gz
ChibiOS-3534921f053bb9ea25413e8b10424ad06ff9b677.tar.bz2
ChibiOS-3534921f053bb9ea25413e8b10424ad06ff9b677.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4047 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/include')
-rw-r--r--os/hal/include/i2s.h51
1 files changed, 15 insertions, 36 deletions
diff --git a/os/hal/include/i2s.h b/os/hal/include/i2s.h
index 4adfce121..ee2fabf6e 100644
--- a/os/hal/include/i2s.h
+++ b/os/hal/include/i2s.h
@@ -74,47 +74,31 @@ typedef struct I2SDriver I2SDriver;
* @{
*/
/**
- * @brief Starts a I2S transmission.
- * @details The transmission is started and it is executes until the specified
- * buffer has entirely transmitted.
- * @post A callback is invoked when the buffer has been fully transmitted.
+ * @brief Starts a I2S data exchange.
*
* @param[in] i2sp pointer to the @p I2SDriver object
- * @param[in] n number of samples to send
- * @param[in] txbuf the pointer to the transmit buffer
*
* @iclass
*/
-#define i2sStartSendOnceI(i2sp, n, txbuf) \
- i2s_lld_start_send_once(i2sp, n, txbuf)
-
-/**
- * @brief Starts a continuous I2S transmission.
- * @details The transmission is started and it is executes continuously
- * until @p i2sStopSend() has been explicitly invoked .
- * @post A callback is invoked when the buffer has been half transmitted
- * and fully transmitted.
- *
- * @param[in] i2sp pointer to the @p I2SDriver object
- * @param[in] n number of samples to send
- * @param[in] txbuf the pointer to the transmit buffer
- *
- * @api
- */
-#define i2sStartSendContinuousI(i2sp, n, txbuf) \
- i2s_lld_start_send_continuous(i2sp, n, txbuf)
+#define i2sStartExchangeI(i2sp) { \
+ i2s_lld_start_exchange(i2sp); \
+ (i2sp)->state = I2S_ACTIVE; \
+}
/**
- * @brief Stops the ongoing transmission.
- * @details The ongoing transmission, if any, is stopped, if the driver
- * was not transmitting the function does nothing.
+ * @brief Stops the ongoing data exchange.
+ * @details The ongoing data exchange, if any, is stopped, if the driver
+ * was not active the function does nothing.
*
* @param[in] i2sp pointer to the @p I2SDriver object
*
* @iclass
*/
-#define i2sStopSendI(i2sp) \
- i2s_lld_stop_send(i2sp)
+#define i2sStopExchangeI(i2sp) { \
+ i2s_lld_stop_exchange(i2sp); \
+ (i2sp)->state = I2S_READY; \
+}
+
/** @} */
/*===========================================================================*/
@@ -128,13 +112,8 @@ extern "C" {
void i2sObjectInit(I2SDriver *i2sp);
void i2sStart(I2SDriver *i2sp, const I2SConfig *config);
void i2sStop(I2SDriver *i2sp);
- void i2sStartSendOnce(I2SDriver *i2sp,
- size_t n,
- const i2ssample_t *txbuf);
- void i2sStartSendContinuous(I2SDriver *i2sp,
- size_t n,
- const i2ssample_t *txbuf);
- void i2sStopSend(I2SDriver *i2sp);
+ void i2sStartExchange(I2SDriver *i2sp);
+ void i2sStopExchange(I2SDriver *i2sp);
#ifdef __cplusplus
}
#endif