Loading qahw_api/test/qahw_effect_test.c +119 −19 Original line number Diff line number Diff line Loading @@ -120,6 +120,9 @@ void *bassboost_thread_func(void* data) { int32_t rc; int reply_data; uint32_t reply_size = sizeof(int); uint32_t array_size = sizeof(qahw_effect_param_t) + 2 * sizeof(int32_t); uint32_t buf32[array_size]; qahw_effect_param_t *values; pthread_mutex_lock(&thr_ctxt->mutex); while(!thr_ctxt->exit) { Loading Loading @@ -154,6 +157,24 @@ void *bassboost_thread_func(void* data) { if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); } if (thr_ctxt->default_flag && (thr_ctxt->cmd_code == QAHW_EFFECT_CMD_ENABLE)) { if (thr_ctxt->default_value == -1) thr_ctxt->default_value = 600; values = (qahw_effect_param_t *)buf32; values->psize = sizeof(int32_t); values->vsize = sizeof(int32_t); *(int32_t *)values->data = BASSBOOST_PARAM_STRENGTH; memcpy((values->data + values->psize), &thr_ctxt->default_value, values->vsize); rc = qahw_effect_command(effect_handle, QAHW_EFFECT_CMD_SET_PARAM, array_size, (void *)values, thr_ctxt->reply_size, thr_ctxt->reply_data); if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); }else { thr_ctxt->default_flag = false; } } break; case(EFFECT_PROC): //qahw_effect_process(); Loading Loading @@ -188,6 +209,9 @@ void *virtualizer_thread_func(void* data) { int32_t rc; int reply_data; uint32_t reply_size = sizeof(int); uint32_t array_size = sizeof(qahw_effect_param_t) + 2 * sizeof(int32_t); uint32_t buf32[array_size]; qahw_effect_param_t *values; pthread_mutex_lock(&thr_ctxt->mutex); while(!thr_ctxt->exit) { Loading Loading @@ -222,6 +246,24 @@ void *virtualizer_thread_func(void* data) { if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); } if (thr_ctxt->default_flag && (thr_ctxt->cmd_code == QAHW_EFFECT_CMD_ENABLE)) { if (thr_ctxt->default_value == -1) thr_ctxt->default_value = 600; values = (qahw_effect_param_t *)buf32; values->psize = sizeof(int32_t); values->vsize = sizeof(int32_t); *(int32_t *)values->data = VIRTUALIZER_PARAM_STRENGTH; memcpy((values->data + values->psize), &thr_ctxt->default_value, values->vsize); rc = qahw_effect_command(effect_handle, QAHW_EFFECT_CMD_SET_PARAM, array_size, (void *)values, thr_ctxt->reply_size, thr_ctxt->reply_data); if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); }else { thr_ctxt->default_flag = false; } } break; case(EFFECT_PROC): //qahw_effect_process(); Loading Loading @@ -256,6 +298,9 @@ void *equalizer_thread_func(void* data) { int32_t rc; int reply_data; uint32_t reply_size = sizeof(int); uint32_t array_size = sizeof(qahw_effect_param_t) + 2 * sizeof(int32_t); uint32_t buf32[array_size]; qahw_effect_param_t *values; pthread_mutex_lock(&thr_ctxt->mutex); while(!thr_ctxt->exit) { Loading Loading @@ -290,6 +335,24 @@ void *equalizer_thread_func(void* data) { if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); } if (thr_ctxt->default_flag && (thr_ctxt->cmd_code == QAHW_EFFECT_CMD_ENABLE)) { if (thr_ctxt->default_value == -1) thr_ctxt->default_value = 2; values = (qahw_effect_param_t *)buf32; values->psize = sizeof(int32_t); values->vsize = sizeof(int32_t); *(int32_t *)values->data = EQ_PARAM_CUR_PRESET; memcpy((values->data + values->psize), &thr_ctxt->default_value, values->vsize); rc = qahw_effect_command(effect_handle, QAHW_EFFECT_CMD_SET_PARAM, array_size, (void *)values, thr_ctxt->reply_size, thr_ctxt->reply_data); if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); }else { thr_ctxt->default_flag = false; } } break; case(EFFECT_PROC): //qahw_effect_process(); Loading Loading @@ -330,6 +393,9 @@ void *reverb_thread_func(void* data) { int32_t rc; int reply_data; uint32_t reply_size = sizeof(int); uint32_t array_size = sizeof(qahw_effect_param_t) + 2 * sizeof(int32_t); uint32_t buf32[array_size]; qahw_effect_param_t *values; pthread_mutex_lock(&thr_ctxt->mutex); while(!thr_ctxt->exit) { Loading Loading @@ -364,6 +430,24 @@ void *reverb_thread_func(void* data) { if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); } if (thr_ctxt->default_flag && (thr_ctxt->cmd_code == QAHW_EFFECT_CMD_ENABLE)) { if (thr_ctxt->default_value == -1) thr_ctxt->default_value = 2; values = (qahw_effect_param_t *)buf32; values->psize = sizeof(int32_t); values->vsize = sizeof(int32_t); *(int32_t *)values->data = REVERB_PARAM_PRESET; memcpy((values->data + values->psize), &thr_ctxt->default_value, values->vsize); rc = qahw_effect_command(effect_handle, QAHW_EFFECT_CMD_SET_PARAM, array_size, (void *)values, thr_ctxt->reply_size, thr_ctxt->reply_data); if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); }else { thr_ctxt->default_flag = false; } } break; case(EFFECT_PROC): //qahw_effect_process(); Loading Loading @@ -402,7 +486,6 @@ void *command_thread_func(void* data) { uint32_t preset; int level; uint16_t band_idx; int enable; qahw_effect_param_t *param = (qahw_effect_param_t *)buf32; qahw_effect_param_t *param_2 = (qahw_effect_param_t *)buf32_2; Loading @@ -421,28 +504,10 @@ void *command_thread_func(void* data) { cmd_key = get_key_from_name(fx_ctxt->who_am_i, cmd_str); switch (cmd_key) { case TTY_ENABLE: enable = 1; notify_effect_command(fx_ctxt, EFFECT_CMD, QAHW_EFFECT_CMD_ENABLE, 0, NULL); if (fx_ctxt->who_am_i == EFFECT_AUDIOSPHERE) { param->psize = 2 * sizeof(int32_t); *(int32_t *)param->data = ASPHERE_PARAM_ENABLE; param->vsize = sizeof(int32_t); memcpy((param->data + param->psize), &enable, param->vsize); notify_effect_command(fx_ctxt, EFFECT_CMD, QAHW_EFFECT_CMD_SET_PARAM, size, param); } break; case TTY_DISABLE: enable = 0; notify_effect_command(fx_ctxt, EFFECT_CMD, QAHW_EFFECT_CMD_DISABLE, 0, NULL); if (fx_ctxt->who_am_i == EFFECT_AUDIOSPHERE) { param->psize = 2 * sizeof(int32_t); *(int32_t *)param->data = ASPHERE_PARAM_ENABLE; param->vsize = sizeof(int32_t); memcpy((param->data + param->psize), &enable, param->vsize); notify_effect_command(fx_ctxt, EFFECT_CMD, QAHW_EFFECT_CMD_SET_PARAM, size, param); } break; case TTY_BB_SET_STRENGTH: case TTY_VT_SET_STRENGTH: Loading Loading @@ -689,6 +754,10 @@ void *asphere_thread_func(void* data) { int32_t rc; int reply_data; uint32_t reply_size = sizeof(int); uint32_t array_size = sizeof(qahw_effect_param_t) + 2 * sizeof(int32_t); uint32_t buf32[array_size]; qahw_effect_param_t *values; int enable; pthread_mutex_lock(&thr_ctxt->mutex); while(!thr_ctxt->exit) { Loading Loading @@ -723,6 +792,37 @@ void *asphere_thread_func(void* data) { if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); } if (thr_ctxt->cmd_code == QAHW_EFFECT_CMD_ENABLE || thr_ctxt->cmd_code == QAHW_EFFECT_CMD_DISABLE) { enable = ((thr_ctxt->cmd_code == QAHW_EFFECT_CMD_ENABLE) ? 1 : 0); values->psize = 2 * sizeof(int32_t); values->vsize = sizeof(int32_t); *(int32_t *)values->data = ASPHERE_PARAM_ENABLE; memcpy((values->data + values->psize), &enable, values->vsize); rc = qahw_effect_command(effect_handle, QAHW_EFFECT_CMD_SET_PARAM, array_size, (void *)values, thr_ctxt->reply_size, thr_ctxt->reply_data); if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); } } if (thr_ctxt->default_flag && (thr_ctxt->cmd_code == QAHW_EFFECT_CMD_ENABLE)) { if (thr_ctxt->default_value == -1) thr_ctxt->default_value = 600; values = (qahw_effect_param_t *)buf32; values->psize = sizeof(int32_t); values->vsize = sizeof(int32_t); *(int32_t *)values->data = ASPHERE_PARAM_STRENGTH; memcpy((values->data + values->psize), &thr_ctxt->default_value, values->vsize); rc = qahw_effect_command(effect_handle, QAHW_EFFECT_CMD_SET_PARAM, array_size, (void *)values, thr_ctxt->reply_size, thr_ctxt->reply_data); if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); }else { thr_ctxt->default_flag = false; } } break; case(EFFECT_PROC): //qahw_effect_process(); Loading qahw_api/test/qahw_effect_test.h +2 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,8 @@ typedef struct thread_data { void *cmd_data; uint32_t *reply_size; void *reply_data; int default_value; bool default_flag; } thread_data_t; typedef struct cmd_data { Loading qahw_api/test/qahw_playback_test.c +19 −2 Original line number Diff line number Diff line Loading @@ -62,6 +62,8 @@ #define SUBCHUNK1_SIZE(x) ((8) + (x)) #define SUBCHUNK2_SIZE 8 #define DEFAULT_PRESET_STRENGTH -1 static int get_wav_header_length (FILE* file_stream); static void init_streams(void); int pthread_cancel(pthread_t thread); Loading Loading @@ -174,6 +176,7 @@ typedef struct { bool flags_set; usb_mode_type_t usb_mode; int effect_index; int effect_preset_strength; bool drift_query; bool drift_correction; bool play_later; Loading Loading @@ -330,6 +333,7 @@ static void init_streams(void) stream_param[i].kvpair_values = nullptr; stream_param[i].flags_set = false; stream_param[i].usb_mode = USB_MODE_DEVICE; stream_param[i].effect_preset_strength = DEFAULT_PRESET_STRENGTH; stream_param[i].effect_index = -1; stream_param[i].ethread_func = nullptr; stream_param[i].ethread_data = nullptr; Loading Loading @@ -715,6 +719,7 @@ void *start_stream_playback (void* stream_data) bool exit = false; int32_t latency; if (is_offload) { fprintf(log_file, "stream %d: set callback for offload stream for playback usecase\n", params->stream_index); qahw_out_set_callback(params->out_handle, async_callback, params); Loading Loading @@ -755,7 +760,9 @@ void *start_stream_playback (void* stream_data) // broadcast device info notify_effect_command(params->ethread_data, EFFECT_CMD, QAHW_EFFECT_CMD_SET_DEVICE, sizeof(audio_devices_t), &(params->output_device)); // enable effect // Enable and Set default values params->ethread_data->default_value = params->effect_preset_strength; params->ethread_data->default_flag = true; notify_effect_command(params->ethread_data, EFFECT_CMD, QAHW_EFFECT_CMD_ENABLE, 0, NULL); } } Loading Loading @@ -1540,6 +1547,8 @@ void usage() { printf(" -E --event-trigger - Trigger DTMF event during playback\n"); printf(" -e --effect-type <effect type> - Effect used for test\n"); printf(" 0:bassboost 1:virtualizer 2:equalizer 3:visualizer(NA) 4:reverb 5:audiosphere others:null\n\n"); printf(" -p --effect-preset <effect preset type> - Effect preset type for respective effect-type\n"); printf(" -S --effect-strength <effect strength> - Effect strength for respective effect-type\n"); printf(" -A --bt-addr <bt device addr> - Required to set bt device adress for aptx decoder\n\n"); printf(" -q --drift query - Required for querying avtime vs hdmi drift\n"); printf(" -Q --drift query and correction - Enable Drift query and correction\n"); Loading Loading @@ -1757,6 +1766,8 @@ int main(int argc, char* argv[]) { {"drift correction", no_argument, 0, 'Q'}, {"device-nodeurl",required_argument, 0, 'u'}, {"mode", required_argument, 0, 'm'}, {"effect-preset", required_argument, 0, 'p'}, {"effect-strength", required_argument, 0, 'S'}, {"help", no_argument, 0, 'h'}, {0, 0, 0, 0} }; Loading @@ -1780,7 +1791,7 @@ int main(int argc, char* argv[]) { while ((opt = getopt_long(argc, argv, "-f:r:c:b:d:s:v:l:t:a:w:k:PD:KF:Ee:A:u:m:qQh", "-f:r:c:b:d:s:v:l:t:a:w:k:PD:KF:Ee:A:u:m:S:p:qQh", long_options, &option_index)) != -1) { Loading Loading @@ -1861,6 +1872,12 @@ int main(int argc, char* argv[]) { stream_param[i].ethread_func = effect_thread_funcs[stream_param[i].effect_index]; } break; case 'p': stream_param[i].effect_preset_strength = atoi(optarg); break; case 'S': stream_param[i].effect_preset_strength = atoi(optarg); break; case 'A': ba = optarg; break; Loading Loading
qahw_api/test/qahw_effect_test.c +119 −19 Original line number Diff line number Diff line Loading @@ -120,6 +120,9 @@ void *bassboost_thread_func(void* data) { int32_t rc; int reply_data; uint32_t reply_size = sizeof(int); uint32_t array_size = sizeof(qahw_effect_param_t) + 2 * sizeof(int32_t); uint32_t buf32[array_size]; qahw_effect_param_t *values; pthread_mutex_lock(&thr_ctxt->mutex); while(!thr_ctxt->exit) { Loading Loading @@ -154,6 +157,24 @@ void *bassboost_thread_func(void* data) { if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); } if (thr_ctxt->default_flag && (thr_ctxt->cmd_code == QAHW_EFFECT_CMD_ENABLE)) { if (thr_ctxt->default_value == -1) thr_ctxt->default_value = 600; values = (qahw_effect_param_t *)buf32; values->psize = sizeof(int32_t); values->vsize = sizeof(int32_t); *(int32_t *)values->data = BASSBOOST_PARAM_STRENGTH; memcpy((values->data + values->psize), &thr_ctxt->default_value, values->vsize); rc = qahw_effect_command(effect_handle, QAHW_EFFECT_CMD_SET_PARAM, array_size, (void *)values, thr_ctxt->reply_size, thr_ctxt->reply_data); if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); }else { thr_ctxt->default_flag = false; } } break; case(EFFECT_PROC): //qahw_effect_process(); Loading Loading @@ -188,6 +209,9 @@ void *virtualizer_thread_func(void* data) { int32_t rc; int reply_data; uint32_t reply_size = sizeof(int); uint32_t array_size = sizeof(qahw_effect_param_t) + 2 * sizeof(int32_t); uint32_t buf32[array_size]; qahw_effect_param_t *values; pthread_mutex_lock(&thr_ctxt->mutex); while(!thr_ctxt->exit) { Loading Loading @@ -222,6 +246,24 @@ void *virtualizer_thread_func(void* data) { if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); } if (thr_ctxt->default_flag && (thr_ctxt->cmd_code == QAHW_EFFECT_CMD_ENABLE)) { if (thr_ctxt->default_value == -1) thr_ctxt->default_value = 600; values = (qahw_effect_param_t *)buf32; values->psize = sizeof(int32_t); values->vsize = sizeof(int32_t); *(int32_t *)values->data = VIRTUALIZER_PARAM_STRENGTH; memcpy((values->data + values->psize), &thr_ctxt->default_value, values->vsize); rc = qahw_effect_command(effect_handle, QAHW_EFFECT_CMD_SET_PARAM, array_size, (void *)values, thr_ctxt->reply_size, thr_ctxt->reply_data); if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); }else { thr_ctxt->default_flag = false; } } break; case(EFFECT_PROC): //qahw_effect_process(); Loading Loading @@ -256,6 +298,9 @@ void *equalizer_thread_func(void* data) { int32_t rc; int reply_data; uint32_t reply_size = sizeof(int); uint32_t array_size = sizeof(qahw_effect_param_t) + 2 * sizeof(int32_t); uint32_t buf32[array_size]; qahw_effect_param_t *values; pthread_mutex_lock(&thr_ctxt->mutex); while(!thr_ctxt->exit) { Loading Loading @@ -290,6 +335,24 @@ void *equalizer_thread_func(void* data) { if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); } if (thr_ctxt->default_flag && (thr_ctxt->cmd_code == QAHW_EFFECT_CMD_ENABLE)) { if (thr_ctxt->default_value == -1) thr_ctxt->default_value = 2; values = (qahw_effect_param_t *)buf32; values->psize = sizeof(int32_t); values->vsize = sizeof(int32_t); *(int32_t *)values->data = EQ_PARAM_CUR_PRESET; memcpy((values->data + values->psize), &thr_ctxt->default_value, values->vsize); rc = qahw_effect_command(effect_handle, QAHW_EFFECT_CMD_SET_PARAM, array_size, (void *)values, thr_ctxt->reply_size, thr_ctxt->reply_data); if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); }else { thr_ctxt->default_flag = false; } } break; case(EFFECT_PROC): //qahw_effect_process(); Loading Loading @@ -330,6 +393,9 @@ void *reverb_thread_func(void* data) { int32_t rc; int reply_data; uint32_t reply_size = sizeof(int); uint32_t array_size = sizeof(qahw_effect_param_t) + 2 * sizeof(int32_t); uint32_t buf32[array_size]; qahw_effect_param_t *values; pthread_mutex_lock(&thr_ctxt->mutex); while(!thr_ctxt->exit) { Loading Loading @@ -364,6 +430,24 @@ void *reverb_thread_func(void* data) { if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); } if (thr_ctxt->default_flag && (thr_ctxt->cmd_code == QAHW_EFFECT_CMD_ENABLE)) { if (thr_ctxt->default_value == -1) thr_ctxt->default_value = 2; values = (qahw_effect_param_t *)buf32; values->psize = sizeof(int32_t); values->vsize = sizeof(int32_t); *(int32_t *)values->data = REVERB_PARAM_PRESET; memcpy((values->data + values->psize), &thr_ctxt->default_value, values->vsize); rc = qahw_effect_command(effect_handle, QAHW_EFFECT_CMD_SET_PARAM, array_size, (void *)values, thr_ctxt->reply_size, thr_ctxt->reply_data); if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); }else { thr_ctxt->default_flag = false; } } break; case(EFFECT_PROC): //qahw_effect_process(); Loading Loading @@ -402,7 +486,6 @@ void *command_thread_func(void* data) { uint32_t preset; int level; uint16_t band_idx; int enable; qahw_effect_param_t *param = (qahw_effect_param_t *)buf32; qahw_effect_param_t *param_2 = (qahw_effect_param_t *)buf32_2; Loading @@ -421,28 +504,10 @@ void *command_thread_func(void* data) { cmd_key = get_key_from_name(fx_ctxt->who_am_i, cmd_str); switch (cmd_key) { case TTY_ENABLE: enable = 1; notify_effect_command(fx_ctxt, EFFECT_CMD, QAHW_EFFECT_CMD_ENABLE, 0, NULL); if (fx_ctxt->who_am_i == EFFECT_AUDIOSPHERE) { param->psize = 2 * sizeof(int32_t); *(int32_t *)param->data = ASPHERE_PARAM_ENABLE; param->vsize = sizeof(int32_t); memcpy((param->data + param->psize), &enable, param->vsize); notify_effect_command(fx_ctxt, EFFECT_CMD, QAHW_EFFECT_CMD_SET_PARAM, size, param); } break; case TTY_DISABLE: enable = 0; notify_effect_command(fx_ctxt, EFFECT_CMD, QAHW_EFFECT_CMD_DISABLE, 0, NULL); if (fx_ctxt->who_am_i == EFFECT_AUDIOSPHERE) { param->psize = 2 * sizeof(int32_t); *(int32_t *)param->data = ASPHERE_PARAM_ENABLE; param->vsize = sizeof(int32_t); memcpy((param->data + param->psize), &enable, param->vsize); notify_effect_command(fx_ctxt, EFFECT_CMD, QAHW_EFFECT_CMD_SET_PARAM, size, param); } break; case TTY_BB_SET_STRENGTH: case TTY_VT_SET_STRENGTH: Loading Loading @@ -689,6 +754,10 @@ void *asphere_thread_func(void* data) { int32_t rc; int reply_data; uint32_t reply_size = sizeof(int); uint32_t array_size = sizeof(qahw_effect_param_t) + 2 * sizeof(int32_t); uint32_t buf32[array_size]; qahw_effect_param_t *values; int enable; pthread_mutex_lock(&thr_ctxt->mutex); while(!thr_ctxt->exit) { Loading Loading @@ -723,6 +792,37 @@ void *asphere_thread_func(void* data) { if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); } if (thr_ctxt->cmd_code == QAHW_EFFECT_CMD_ENABLE || thr_ctxt->cmd_code == QAHW_EFFECT_CMD_DISABLE) { enable = ((thr_ctxt->cmd_code == QAHW_EFFECT_CMD_ENABLE) ? 1 : 0); values->psize = 2 * sizeof(int32_t); values->vsize = sizeof(int32_t); *(int32_t *)values->data = ASPHERE_PARAM_ENABLE; memcpy((values->data + values->psize), &enable, values->vsize); rc = qahw_effect_command(effect_handle, QAHW_EFFECT_CMD_SET_PARAM, array_size, (void *)values, thr_ctxt->reply_size, thr_ctxt->reply_data); if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); } } if (thr_ctxt->default_flag && (thr_ctxt->cmd_code == QAHW_EFFECT_CMD_ENABLE)) { if (thr_ctxt->default_value == -1) thr_ctxt->default_value = 600; values = (qahw_effect_param_t *)buf32; values->psize = sizeof(int32_t); values->vsize = sizeof(int32_t); *(int32_t *)values->data = ASPHERE_PARAM_STRENGTH; memcpy((values->data + values->psize), &thr_ctxt->default_value, values->vsize); rc = qahw_effect_command(effect_handle, QAHW_EFFECT_CMD_SET_PARAM, array_size, (void *)values, thr_ctxt->reply_size, thr_ctxt->reply_data); if (rc != 0) { fprintf(stderr, "effect_command() returns %d\n", rc); }else { thr_ctxt->default_flag = false; } } break; case(EFFECT_PROC): //qahw_effect_process(); Loading
qahw_api/test/qahw_effect_test.h +2 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,8 @@ typedef struct thread_data { void *cmd_data; uint32_t *reply_size; void *reply_data; int default_value; bool default_flag; } thread_data_t; typedef struct cmd_data { Loading
qahw_api/test/qahw_playback_test.c +19 −2 Original line number Diff line number Diff line Loading @@ -62,6 +62,8 @@ #define SUBCHUNK1_SIZE(x) ((8) + (x)) #define SUBCHUNK2_SIZE 8 #define DEFAULT_PRESET_STRENGTH -1 static int get_wav_header_length (FILE* file_stream); static void init_streams(void); int pthread_cancel(pthread_t thread); Loading Loading @@ -174,6 +176,7 @@ typedef struct { bool flags_set; usb_mode_type_t usb_mode; int effect_index; int effect_preset_strength; bool drift_query; bool drift_correction; bool play_later; Loading Loading @@ -330,6 +333,7 @@ static void init_streams(void) stream_param[i].kvpair_values = nullptr; stream_param[i].flags_set = false; stream_param[i].usb_mode = USB_MODE_DEVICE; stream_param[i].effect_preset_strength = DEFAULT_PRESET_STRENGTH; stream_param[i].effect_index = -1; stream_param[i].ethread_func = nullptr; stream_param[i].ethread_data = nullptr; Loading Loading @@ -715,6 +719,7 @@ void *start_stream_playback (void* stream_data) bool exit = false; int32_t latency; if (is_offload) { fprintf(log_file, "stream %d: set callback for offload stream for playback usecase\n", params->stream_index); qahw_out_set_callback(params->out_handle, async_callback, params); Loading Loading @@ -755,7 +760,9 @@ void *start_stream_playback (void* stream_data) // broadcast device info notify_effect_command(params->ethread_data, EFFECT_CMD, QAHW_EFFECT_CMD_SET_DEVICE, sizeof(audio_devices_t), &(params->output_device)); // enable effect // Enable and Set default values params->ethread_data->default_value = params->effect_preset_strength; params->ethread_data->default_flag = true; notify_effect_command(params->ethread_data, EFFECT_CMD, QAHW_EFFECT_CMD_ENABLE, 0, NULL); } } Loading Loading @@ -1540,6 +1547,8 @@ void usage() { printf(" -E --event-trigger - Trigger DTMF event during playback\n"); printf(" -e --effect-type <effect type> - Effect used for test\n"); printf(" 0:bassboost 1:virtualizer 2:equalizer 3:visualizer(NA) 4:reverb 5:audiosphere others:null\n\n"); printf(" -p --effect-preset <effect preset type> - Effect preset type for respective effect-type\n"); printf(" -S --effect-strength <effect strength> - Effect strength for respective effect-type\n"); printf(" -A --bt-addr <bt device addr> - Required to set bt device adress for aptx decoder\n\n"); printf(" -q --drift query - Required for querying avtime vs hdmi drift\n"); printf(" -Q --drift query and correction - Enable Drift query and correction\n"); Loading Loading @@ -1757,6 +1766,8 @@ int main(int argc, char* argv[]) { {"drift correction", no_argument, 0, 'Q'}, {"device-nodeurl",required_argument, 0, 'u'}, {"mode", required_argument, 0, 'm'}, {"effect-preset", required_argument, 0, 'p'}, {"effect-strength", required_argument, 0, 'S'}, {"help", no_argument, 0, 'h'}, {0, 0, 0, 0} }; Loading @@ -1780,7 +1791,7 @@ int main(int argc, char* argv[]) { while ((opt = getopt_long(argc, argv, "-f:r:c:b:d:s:v:l:t:a:w:k:PD:KF:Ee:A:u:m:qQh", "-f:r:c:b:d:s:v:l:t:a:w:k:PD:KF:Ee:A:u:m:S:p:qQh", long_options, &option_index)) != -1) { Loading Loading @@ -1861,6 +1872,12 @@ int main(int argc, char* argv[]) { stream_param[i].ethread_func = effect_thread_funcs[stream_param[i].effect_index]; } break; case 'p': stream_param[i].effect_preset_strength = atoi(optarg); break; case 'S': stream_param[i].effect_preset_strength = atoi(optarg); break; case 'A': ba = optarg; break; Loading