static char* g_current_audio_type = NULL;
+static char* g_pcm_path = NULL;
+static FILE* g_pcm_fp = NULL;
+
static int g_buffer_count;
static int g_device_id = -1;
g_is_valid_bt_in = false;
g_current_audio_type = NULL;
+ g_pcm_fp = NULL;
+ g_pcm_path = NULL;
+
g_audio_type = VCE_AUDIO_TYPE_PCM_S16_LE;
g_audio_rate = 16000;
g_audio_channel = 1;
g_current_audio_type = NULL;
}
+ if (g_pcm_path)
+ free(g_pcm_path);
+ g_pcm_path = NULL;
+
+ if (g_pcm_fp)
+ fclose(g_pcm_fp);
+ g_pcm_fp = NULL;
+
return 0;
}
return db;
}
+Eina_Bool __read_test_func(void *data)
+{
+ if (VCD_RECORDER_STATE_RECORDING != g_recorder_state) {
+ SLOG(LOG_DEBUG, TAG_VCD, "[Recorder test] Exit audio reading normal func");
+ return EINA_FALSE;
+ }
+
+ if (NULL == g_pcm_fp) {
+ g_pcm_fp = fopen(g_pcm_path, "r");
+ if (NULL == g_pcm_fp) {
+ SLOG(LOG_ERROR, TAG_VCD, "[Recorder test ERROR] Cannot open a file : %s", g_pcm_path);
+ return EINA_FALSE;
+ }
+ }
+
+ char buffer[BUFFER_LENGTH + 10];
+ memset(buffer, '\0', BUFFER_LENGTH + 10);
+ size_t buffer_size = 0;
+ if (!feof(g_pcm_fp))
+ buffer_size = fread(buffer, 1, BUFFER_LENGTH, g_pcm_fp);
+ if (buffer_size != BUFFER_LENGTH)
+ SLOG(LOG_DEBUG, TAG_VCD, "[Recorder test] Get data size(%d)", buffer_size);
+
+ if (NULL != g_audio_cb)
+ g_audio_cb(buffer, buffer_size);
+
+ float vol_db = get_volume_decibel(buffer, BUFFER_LENGTH);
+ if (0 != vcdc_send_set_volume(vcd_client_manager_get_pid(), vol_db))
+ SLOG(LOG_ERROR, TAG_VCD, "[Recorder test] Fail to send recording volume(%f)", vol_db);
+
+ if (feof(g_pcm_fp) != 0) {
+ fclose(g_pcm_fp);
+ g_pcm_fp = NULL;
+ return EINA_FALSE;
+ }
+ return EINA_TRUE;
+}
+
Eina_Bool __read_normal_func(void *data)
{
int ret = -1;
static void __timer_read_normal_func(void *data)
{
SLOG(LOG_DEBUG, TAG_VCD, "[Recorder] before __read_normal_func");
- ecore_timer_add(0, __read_normal_func, NULL);
+ if (g_pcm_path)
+ ecore_timer_add(0, __read_test_func, NULL);
+ else
+ ecore_timer_add(0, __read_normal_func, NULL);
return;
}
fclose(g_normal_file);
#endif
+ if (g_pcm_path)
+ free(g_pcm_path);
+ g_pcm_path = NULL;
+
+ if (g_pcm_fp)
+ fclose(g_pcm_fp);
+ g_pcm_fp = NULL;
+
bool stoped = false;
if (NULL != g_current_audio_type) {
{
return g_recorder_state;
}
+
+int vcd_recorder_set_pcm_path(const char *path)
+{
+ SLOG(LOG_DEBUG, TAG_VCD, "[Recorder] set pcm path : %s", path);
+
+ if (path == NULL)
+ return 0;
+
+ if (g_pcm_path)
+ free(g_pcm_path);
+ g_pcm_path = NULL;
+
+ g_pcm_path = strdup(path);
+ return 0;
+}