Add delay_avail, mmap_begin, mmap_commit interfaces 66/304266/4 accepted/tizen/unified/20240119.154728 accepted/tizen/unified/dev/20240620.010440 accepted/tizen/unified/toolchain/20240311.065823 accepted/tizen/unified/x/20240205.064129
authorJaechul Lee <jcsing.lee@samsung.com>
Mon, 15 Jan 2024 05:26:35 +0000 (14:26 +0900)
committerJaechul Lee <jcsing.lee@samsung.com>
Thu, 18 Jan 2024 00:49:37 +0000 (09:49 +0900)
[Version] 0.0.18
[Issue Type] Update

Change-Id: Ie15e585ffc548059f9995f64a6dd726c4fe6671f
Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
include/hal-audio-interface.h
include/hal-audio.h
packaging/hal-api-audio.spec
src/hal-api-audio.c

index fab8438ff5c2925868876a251b686e9118558445..6c64f52a9cb369bee19a0285798f3b9d407dfdd3 100644 (file)
@@ -162,6 +162,11 @@ typedef struct _hal_backend_media_audio_funcs {
     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);
index d7359503bd8b5768f1a28423226229e6143c1809..d23556707ff27d083ff22f0aced9d146d9352de4 100644 (file)
@@ -390,6 +390,52 @@ audio_return_e hal_audio_pcm_get_params(void *audio_handle, void *pcm_handle, ui
  */
 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
index 78465f9ee84603f29c08abe9455092155acee7a9..c456d2bf24cec27fa5254abd35dc441d803c9586 100644 (file)
@@ -1,6 +1,6 @@
 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
index 14cb37c03cbbc51a068da3dece11b25ab634e804..f596d207ad6ca28b3fcd20ef69e9f5eceeb4d99b 100644 (file)
@@ -236,6 +236,30 @@ audio_return_e hal_audio_pcm_set_params(void *audio_handle, void *pcm_handle, ui
        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);