pulseaudio changed latency type to string submit/tizen/20150731.061851
authorKimJeongYeon <jeongyeon.kim@samsung.com>
Thu, 30 Jul 2015 08:23:07 +0000 (17:23 +0900)
committerKimJeongYeon <jeongyeon.kim@samsung.com>
Fri, 31 Jul 2015 03:23:35 +0000 (12:23 +0900)
[Version] 5.0
[Profile] Common
[Issue Type] Features
[Dependency module] NA
[Dependency commit] NA
[Comment]

Signed-off-by: KimJeongYeon <jeongyeon.kim@samsung.com>
Change-Id: Ied51259b24c0be5eb82da65efaf2f727c4e10a28

packaging/pulseaudio.spec
src/modules/tizen-audio.h
src/modules/tizen/hal-manager.c
src/modules/tizen/hal-manager.h
src/modules/tizen/stream-manager.c

index 8756e67..e4f4c22 100644 (file)
@@ -11,7 +11,7 @@
 Name:             pulseaudio
 Summary:          Improved Linux sound server
 Version:          5.0
-Release:          27
+Release:          28
 Group:            Multimedia/Audio
 License:          GPL-2.0+ and LGPL-2.1+
 URL:              http://pulseaudio.org
index a8c39c6..054d13e 100644 (file)
@@ -275,17 +275,10 @@ typedef enum audio_sample_format {
 }   audio_sample_format_t;
 
 /* stream latency */
-typedef enum audio_latency {
-    AUDIO_IN_LATENCY_LOW,
-    AUDIO_IN_LATENCY_MID,
-    AUDIO_IN_LATENCY_HIGH,
-    AUDIO_IN_LATENCY_VOIP,
-    AUDIO_OUT_LATENCY_LOW,
-    AUDIO_OUT_LATENCY_MID,
-    AUDIO_OUT_LATENCY_HIGH,
-    AUDIO_OUT_LATENCY_VOIP,
-    AUDIO_LATENCY_MAX
-}   audio_latency_t;
+static const char* AUDIO_LATENCY_LOW  = "low";
+static const char* AUDIO_LATENCY_MID  = "mid";
+static const char* AUDIO_LATENCY_HIGH = "high";
+static const char* AUDIO_LATENCY_VOIP = "voip";
 
 /* Overall */
 
@@ -316,7 +309,7 @@ typedef struct audio_interface {
     audio_return_t (*pcm_close)(void *userdata, void *pcm_handle);
     audio_return_t (*pcm_avail)(void *pcm_handle);
     audio_return_t (*pcm_write)(void *pcm_handle, const void *buffer, uint32_t frames);
-    audio_return_t (*get_buffer_attr)(void *userdata, audio_latency_t latency, uint32_t samplerate, audio_sample_format_t format, uint32_t channels, uint32_t *maxlength, uint32_t *tlength, uint32_t *prebuf, uint32_t* minreq, uint32_t *fragsize);
+    audio_return_t (*get_buffer_attr)(void *userdata, uint32_t direction, const char *latency, uint32_t samplerate, audio_sample_format_t format, uint32_t channels, uint32_t *maxlength, uint32_t *tlength, uint32_t *prebuf, uint32_t* minreq, uint32_t *fragsize);
     audio_return_t (*set_session)(void *userdata, uint32_t session, uint32_t subsession, uint32_t cmd);
     audio_return_t (*set_route)(void *userdata, uint32_t session, uint32_t subsession, uint32_t device_in, uint32_t device_out, uint32_t route_flag);
     audio_return_t (*set_callback)(void *userdata, audio_cb_interface_t *cb_interface);
@@ -341,7 +334,7 @@ audio_return_t audio_pcm_open(void *userdata, void **pcm_handle, void *sample_sp
 audio_return_t audio_pcm_close (void *userdata, void *pcm_handle);
 audio_return_t audio_pcm_avail(void *pcm_handle);
 audio_return_t audio_pcm_write(void *pcm_handle, const void *buffer, uint32_t frames);
-audio_return_t audio_get_buffer_attr(void *userdata, audio_latency_t latency, uint32_t samplerate, audio_sample_format_t format, uint32_t channels, uint32_t *maxlength, uint32_t *tlength, uint32_t *prebuf, uint32_t* minreq, uint32_t *fragsize);
+audio_return_t audio_get_buffer_attr(void *userdata, uint32_t direction, const char *latency, uint32_t samplerate, audio_sample_format_t format, uint32_t channels, uint32_t *maxlength, uint32_t *tlength, uint32_t *prebuf, uint32_t* minreq, uint32_t *fragsize);
 audio_return_t audio_set_session (void *userdata, uint32_t session, uint32_t subsession, uint32_t cmd);
 audio_return_t audio_set_route (void *userdata, uint32_t session, uint32_t subsession, uint32_t device_in, uint32_t device_out, uint32_t route_flag);
 audio_return_t audio_set_callback (void *userdata, audio_cb_interface_t *cb_interface);
index 7e3486a..25ec6c4 100644 (file)
@@ -116,7 +116,7 @@ void pa_hal_manager_unref(pa_hal_manager *h) {
     pa_xfree(h);
 }
 
-int32_t pa_hal_manager_get_buffer_attribute(pa_hal_manager *h, io_direction_t direction, uint32_t latency, void *new_data, uint32_t *maxlength, uint32_t *tlength, uint32_t *prebuf, uint32_t* minreq, uint32_t *fragsize) {
+int32_t pa_hal_manager_get_buffer_attribute(pa_hal_manager *h, io_direction_t direction, const char *latency, void *new_data, uint32_t *maxlength, uint32_t *tlength, uint32_t *prebuf, uint32_t* minreq, uint32_t *fragsize) {
     int32_t ret = 0;
     audio_return_t hal_ret = AUDIO_RET_OK;
     pa_sample_spec *sample_spec = NULL;
@@ -125,9 +125,9 @@ int32_t pa_hal_manager_get_buffer_attribute(pa_hal_manager *h, io_direction_t di
     pa_assert(new_data);
 
     sample_spec = (direction==DIRECTION_OUT)?(&((pa_sink_input_new_data*)new_data)->sample_spec):(&((pa_source_output_new_data*)new_data)->sample_spec);
-    pa_log_info("latency:%d, rate:%u, format:%d, channels:%u", latency, sample_spec->rate, sample_spec->format, sample_spec->channels);
+    pa_log_info("latency:%s, rate:%u, format:%d, channels:%u", latency, sample_spec->rate, sample_spec->format, sample_spec->channels);
 
-    if (AUDIO_IS_ERROR(hal_ret = h->intf.get_buffer_attr(h->data, latency, sample_spec->rate, sample_spec->format, sample_spec->channels, maxlength, tlength, prebuf, minreq, fragsize))) {
+    if (AUDIO_IS_ERROR(hal_ret = h->intf.get_buffer_attr(h->data, direction, latency, sample_spec->rate, sample_spec->format, sample_spec->channels, maxlength, tlength, prebuf, minreq, fragsize))) {
         pa_log_error("get_buffer_attr returns error:0x%x", hal_ret);
         ret = -1;
     } else
index 179437a..d92c267 100644 (file)
@@ -49,7 +49,7 @@ typedef struct _hal_stream_connection_info {
 pa_hal_manager* pa_hal_manager_get(pa_core *core, void *user_data);
 pa_hal_manager* pa_hal_manager_ref(pa_hal_manager *h);
 void pa_hal_manager_unref(pa_hal_manager *h);
-int32_t pa_hal_manager_get_buffer_attribute(pa_hal_manager *h, io_direction_t direction, uint32_t latency, void *new_data, uint32_t *maxlength, uint32_t *tlength, uint32_t *prebuf, uint32_t* minreq, uint32_t *fragsize);
+int32_t pa_hal_manager_get_buffer_attribute(pa_hal_manager *h, io_direction_t direction, const char *latency, void *new_data, uint32_t *maxlength, uint32_t *tlength, uint32_t *prebuf, uint32_t* minreq, uint32_t *fragsize);
 int32_t pa_hal_manager_reset_volume (pa_hal_manager *h);
 int32_t pa_hal_manager_get_volume_level_max (pa_hal_manager *h, const char *volume_type, io_direction_t direction, uint32_t *level);
 int32_t pa_hal_manager_get_volume_level (pa_hal_manager *h, const char *volume_type, io_direction_t direction, uint32_t *level);
index 9a9c531..25591c9 100644 (file)
@@ -1957,7 +1957,6 @@ FAILURE:
 }
 
 static void update_buffer_attribute(stream_type_t stream_type, void *new_data, pa_stream_manager *m) {
-    int32_t latency = 0;
     int32_t maxlength = -1;
     int32_t tlength = -1;
     int32_t prebuf = -1;
@@ -1976,10 +1975,7 @@ static void update_buffer_attribute(stream_type_t stream_type, void *new_data, p
     if (audio_latency == NULL)
         return;
 
-    if(pa_atoi(audio_latency, &latency))
-        return;
-
-    if (!pa_hal_manager_get_buffer_attribute(m->hal, (io_direction_t)!stream_type, (uint32_t)latency, new_data, (uint32_t*)&maxlength, (uint32_t*)&tlength, (uint32_t*)&prebuf, (uint32_t*)&minreq, (uint32_t*)&fragsize)) {
+    if (!pa_hal_manager_get_buffer_attribute(m->hal, (io_direction_t)!stream_type, audio_latency, new_data, (uint32_t*)&maxlength, (uint32_t*)&tlength, (uint32_t*)&prebuf, (uint32_t*)&minreq, (uint32_t*)&fragsize)) {
         pa_log_info(" - maxlength:%d, tlength:%d, prebuf:%d, minreq:%d, fragsize:%d", maxlength, tlength, prebuf, minreq, fragsize);
         pa_proplist_setf(GET_STREAM_NEW_PROPLIST(new_data, stream_type), "maxlength", "%d", maxlength);
         pa_proplist_setf(GET_STREAM_NEW_PROPLIST(new_data, stream_type), "tlength",   "%d", tlength);