AUDIO_DIRECTION_OUT, /**< Playback */
} audio_direction_e;
+/**
+ * @brief Enumeration for audio state.
+ * @since_tizen 9.0
+ */
+typedef enum audio_state {
+ AUDIO_STATE_OPEN,
+ AUDIO_STATE_SETUP,
+ AUDIO_STATE_PREPARED,
+ AUDIO_STATE_RUNNING,
+ AUDIO_STATE_XRUN, /* playback:underrun, capture:overrun */
+ AUDIO_STATE_DRAINING,
+ AUDIO_STATE_PAUSED,
+ AUDIO_STATE_SUSPENDED,
+ AUDIO_STATE_DISCONNECTED,
+ AUDIO_STATE_UNKNOWN,
+} audio_state_e;
+
/**
* @brief Device information including type, direction and id.
* @since_tizen 6.5
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);
+ audio_return_e (*pcm_get_state)(void *audio_handle, void *pcm_handle, audio_state_e *state);
/* Message callback */
audio_return_e (*add_message_cb)(void *audio_handle, message_cb callback, void *user_data);
*/
audio_return_e hal_audio_pcm_mmap_commit(void *audio_handle, void *pcm_handle, uint32_t offset, uint32_t frames);
+/**
+ * @brief Gets the state 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] state The state from a pcm handle
+ *
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #AUDIO_RET_OK Success
+ */
+audio_return_e hal_audio_pcm_get_state(void *audio_handle, void *pcm_handle, audio_state_e *state);
+
/**
* @brief Adds the message callback function.
* @since_tizen 6.5
Name: hal-api-audio
Summary: TIZEN Audio HAL
-Version: 0.0.18
+Version: 0.0.19
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_e hal_audio_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_mmap_commit(audio_handle, pcm_handle, offset, frames);
}
+audio_return_e hal_audio_pcm_get_state(void *audio_handle, void *pcm_handle, audio_state_e *state)
+{
+ AUDIO_RETURN_VAL_IF_FAIL(g_hal_audio_funcs, AUDIO_ERR_INTERNAL);
+ AUDIO_RETURN_VAL_IF_FAIL(g_hal_audio_funcs->pcm_get_state, AUDIO_ERR_NOT_IMPLEMENTED);
+
+ return g_hal_audio_funcs->pcm_get_state(audio_handle, pcm_handle, state);
+}
+
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);