Clean up the sttd_server code
[platform/core/uifw/stt.git] / server / sttd_client_data.c
index 1ae94ca..a47427a 100644 (file)
@@ -12,6 +12,8 @@
 */
 
 
+#include <stdatomic.h>
+
 #include "sttd_main.h"
 #include "stt_defs.h"
 #include "sttd_client_data.h"
@@ -19,7 +21,7 @@
 /* Client list */
 static GSList *g_client_list = NULL;
 
-static unsigned int g_cur_recog_uid = 0;
+static atomic_uint g_cur_recog_uid = 0;
 
 int client_show_list()
 {
@@ -479,3 +481,54 @@ bool stt_client_get_app_agreed(unsigned int uid)
        hnd = tmp->data;
        return hnd->app_agreed;
 }
+
+int sttd_client_get_audio_id(unsigned int uid, char** audio_id)
+{
+       if (NULL == audio_id) {
+               SLOG(LOG_ERROR, TAG_STTD, "[Client Data ERROR] audio_id is NULL");
+               return STTD_ERROR_INVALID_PARAMETER;
+       }
+
+       GSList *tmp = NULL;
+       client_info_s* hnd = NULL;
+
+       tmp = __client_get_item(uid);
+       if (NULL == tmp) {
+               return STTD_ERROR_INVALID_PARAMETER;
+       }
+
+       hnd = tmp->data;
+       if (NULL != hnd->audio_id) {
+               *audio_id = strdup(hnd->audio_id);
+       } else {
+               *audio_id = NULL;
+       }
+
+       return 0;
+}
+
+int sttd_client_set_audio_id(unsigned int uid, const char* audio_id)
+{
+       GSList *tmp = NULL;
+       client_info_s* hnd = NULL;
+
+       tmp = __client_get_item(uid);
+       if (NULL == tmp) {
+               SECURE_SLOG(LOG_ERROR, TAG_STTD, "[Client Data ERROR] uid(%u) is NOT valid", uid);
+               return STTD_ERROR_INVALID_PARAMETER;
+       }
+
+       hnd = tmp->data;
+       if (NULL != hnd->audio_id) {
+               free(hnd->audio_id);
+       }
+
+       if (NULL != audio_id) {
+               hnd->audio_id = strdup(audio_id);
+               SLOG(LOG_DEBUG, TAG_STTD, "[Client Data] Audio ID : %s", hnd->audio_id);
+       } else {
+               hnd->audio_id = NULL;
+       }
+
+       return 0;
+}
\ No newline at end of file