audio_return_e (*pcm_recover)(void *audio_handle, void *pcm_handle, int revents);
audio_return_e (*pcm_get_params)(void *audio_handle, void *pcm_handle, uint32_t direction, void *sample_spec, uint32_t *period_size, uint32_t *periods);
audio_return_e (*pcm_set_params)(void *audio_handle, void *pcm_handle, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods);
+
+ audio_return_e (*pcm_avail_delay)(void *audio_handle, void *pcm_handle, int32_t *avail, int32_t *delay);
+ audio_return_e (*pcm_mmap_begin)(void *audio_handle, void *pcm_handle, void **areas, uint32_t *offset, uint32_t *frames, void **ptr);
+ audio_return_e (*pcm_mmap_commit)(void *audio_handle, void *pcm_handle, uint32_t offset, uint32_t frames);
+
/* Message callback */
audio_return_e (*add_message_cb)(void *audio_handle, message_cb callback, void *user_data);
audio_return_e (*remove_message_cb)(void *audio_handle, message_cb callback);
*/
audio_return_e hal_audio_pcm_set_params(void *audio_handle, void *pcm_handle, uint32_t direction, void *sample_spec, uint32_t period_size, uint32_t periods);
+/**
+ * @brief Gets available and delay frames of a PCM device.
+ * @since_tizen 9.0
+ * @param[in] audio_handle The audio hal handle
+ * @param[in] pcm_handle The PCM handle
+ * @param[out] avail avail frames
+ * @param[out] delay delay frames
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #AUDIO_RET_OK Success
+ */
+audio_return_e hal_audio_pcm_avail_delay(void *audio_handle, void *pcm_handle, int32_t *avail, int32_t *delay);
+
+/**
+ * @brief Gets mmap address of a PCM device.
+ * @since_tizen 9.0
+ * @param[in] audio_handle The audio hal handle
+ * @param[in] pcm_handle The PCM handle
+ * @param[in] areas mmap address information
+ * @param[in] offset The offset of memory mapped address
+ * @param[in] frames The size of memory mapped address
+ * @param[out] ptr writable/readable address
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #AUDIO_RET_OK Success
+ * @see audio_pcm_mmap_commit()
+ */
+audio_return_e hal_audio_pcm_mmap_begin(void *audio_handle, void *pcm_handle, void **areas, uint32_t *offset, uint32_t *frames, void **ptr);
+
+/**
+ * @brief Commits mmap address of a PCM device.
+ * @since_tizen 9.0
+ * @param[in] audio_handle The audio hal handle
+ * @param[in] pcm_handle The PCM handle
+ * @param[in] offset The offset of memory mapped address
+ * @param[in] frames The size of memory mapped address
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #AUDIO_RET_OK Success
+ * @see audio_pcm_mmap_begin()
+ */
+audio_return_e hal_audio_pcm_mmap_commit(void *audio_handle, void *pcm_handle, uint32_t offset, uint32_t frames);
+
/**
* @brief Adds the message callback function.
* @since_tizen 6.5
Name: hal-api-audio
Summary: TIZEN Audio HAL
-Version: 0.0.17
+Version: 0.0.18
Release: 0
Group: System/Libraries
License: Apache-2.0
return g_hal_audio_funcs->pcm_set_params(audio_handle, pcm_handle, direction, sample_spec, period_size, periods);
}
+audio_return_e hal_pcm_avail_delay(void *audio_handle, void *pcm_handle, int32_t *avail, int32_t *delay)
+{
+ AUDIO_RETURN_VAL_IF_FAIL(g_hal_audio_funcs, AUDIO_ERR_INTERNAL);
+ AUDIO_RETURN_VAL_IF_FAIL(g_hal_audio_funcs->pcm_avail_delay, AUDIO_ERR_NOT_IMPLEMENTED);
+
+ return g_hal_audio_funcs->pcm_avail_delay(audio_handle, pcm_handle, avail, delay);
+}
+
+audio_return_e hal_audio_pcm_mmap_begin(void *audio_handle, void *pcm_handle, void **areas, uint32_t *offset, uint32_t *frames, void **ptr)
+{
+ AUDIO_RETURN_VAL_IF_FAIL(g_hal_audio_funcs, AUDIO_ERR_INTERNAL);
+ AUDIO_RETURN_VAL_IF_FAIL(g_hal_audio_funcs->pcm_mmap_begin, AUDIO_ERR_NOT_IMPLEMENTED);
+
+ return g_hal_audio_funcs->pcm_mmap_begin(audio_handle, pcm_handle, areas, offset, frames, ptr);
+}
+
+audio_return_e hal_audio_pcm_mmap_commit(void *audio_handle, void *pcm_handle, uint32_t offset, uint32_t frames)
+{
+ AUDIO_RETURN_VAL_IF_FAIL(g_hal_audio_funcs, AUDIO_ERR_INTERNAL);
+ AUDIO_RETURN_VAL_IF_FAIL(g_hal_audio_funcs->pcm_mmap_commit, AUDIO_ERR_NOT_IMPLEMENTED);
+
+ return g_hal_audio_funcs->pcm_mmap_commit(audio_handle, pcm_handle, offset, frames);
+}
+
audio_return_e hal_audio_add_message_cb(void *audio_handle, message_cb callback, void *user_data)
{
AUDIO_RETURN_VAL_IF_FAIL(g_hal_audio_funcs, AUDIO_ERR_INTERNAL);