int
-mm_player_get_foreach_present_supported_effect_type(MMHandleType hplayer, MMAudioEffectType effect_type, mmplayer_supported_audio_effect_cb foreach_cb, void *user_data)
+mm_player_get_foreach_present_supported_effect_type(MMHandleType hplayer, mm_audio_effect_type_e effect_type, mmplayer_supported_audio_effect_cb foreach_cb, void *user_data)
{
- mm_player_t *player = NULL;
+ mmplayer_t *player = NULL;
int result = MM_ERROR_NONE;
mm_sound_device_flags_e flags = MM_SOUND_DEVICE_IO_DIRECTION_OUT_FLAG | MM_SOUND_DEVICE_STATE_ACTIVATED_FLAG;
MMSoundDeviceList_t device_list = NULL;
/* (1) get current device list */
result = mm_sound_get_device_list(flags, &device_list);
if (result != MM_ERROR_NONE) {
- LOGE("mm_sound_get_device_list() failed [%x]!!", result);
+ LOGE("mm_sound_get_device_list() failed [0x%x]!!", result);
MMPLAYER_FLEAVE();
return result;
}
/* (2) get device handle of device list */
result = mm_sound_get_next_device(device_list, &device_h);
if (result != MM_ERROR_NONE) {
- LOGE("mm_sound_get_next_device() failed [%x]!!", result);
+ LOGE("mm_sound_get_next_device() failed [0x%x]!!", result);
goto EXIT;
}
/* (3) get device type */
result = mm_sound_get_device_type(device_h, &device_type);
if (result != MM_ERROR_NONE) {
- LOGE("mm_sound_get_device_type() failed [%x]!!", result);
+ LOGE("mm_sound_get_device_type() failed [0x%x]!!", result);
goto EXIT;
}
}
-int
-__mmplayer_set_harmony_effect(mm_player_t *player, GstElement *audio_effect_element)
+static int
+__mmplayer_set_harmony_effect(mmplayer_t *player, GstElement *audio_effect_element)
{
gint *ext_effect_level_list = NULL;
int count = 1; /* start from 1, because of excepting eq index */
}
-gboolean
-__mmplayer_is_earphone_only_effect_type(mm_player_t *player, MMAudioEffectType effect_type, int effect)
+static gboolean
+__mmplayer_is_earphone_only_effect_type(mmplayer_t *player, mm_audio_effect_type_e effect_type, int effect)
{
gboolean result = FALSE;
int i = 0;
return result;
}
-int
-__mmplayer_audio_set_output_type(mm_player_t *player, MMAudioEffectType effect_type, int effect)
+static int
+__mmplayer_audio_set_output_type(mmplayer_t *player, mm_audio_effect_type_e effect_type, int effect)
{
GstElement *audio_effect_element = NULL;
mm_sound_device_flags_e flags = MM_SOUND_DEVICE_ALL_FLAG;
/* (1) get current device list */
result = mm_sound_get_device_list(flags, &device_list);
if (result != MM_ERROR_NONE) {
- LOGE("mm_sound_get_device_list() failed [%x]!!", result);
+ LOGE("mm_sound_get_device_list() failed [0x%x]!!", result);
MMPLAYER_FLEAVE();
return result;
}
/* (2) get device handle of device list */
result = mm_sound_get_next_device(device_list, &device_h);
if (result != MM_ERROR_NONE) {
- LOGE("mm_sound_get_next_device() failed [%x]!!", result);
+ LOGE("mm_sound_get_next_device() failed [0x%x]!!", result);
goto EXIT;
}
/* (3) get device type */
result = mm_sound_get_device_type(device_h, &device_type);
if (result != MM_ERROR_NONE) {
- LOGE("mm_sound_get_device_type() failed [%x]!!", result);
+ LOGE("mm_sound_get_device_type() failed [0x%x]!!", result);
goto EXIT;
}
return result;
}
-gboolean
-_mmplayer_is_supported_effect_type(mm_player_t *player, MMAudioEffectType effect_type, int effect)
+static gboolean
+__mmplayer_is_supported_effect_type(mmplayer_t *player, mm_audio_effect_type_e effect_type, int effect)
{
gboolean result = TRUE;
mm_sound_device_flags_e flags = MM_SOUND_DEVICE_ALL_FLAG;
ret = mm_sound_get_device_list(flags, &device_list);
if (ret != MM_ERROR_NONE) {
MMPLAYER_FLEAVE();
- LOGE("mm_sound_get_device_list() failed [%x]!!", ret);
+ LOGE("mm_sound_get_device_list() failed [0x%x]!!", ret);
return FALSE;
}
/* (2) get device handle of device list */
ret = mm_sound_get_next_device(device_list, &device_h);
if (ret != MM_ERROR_NONE) {
- LOGE("mm_sound_get_next_device() failed [%x]!!", ret);
+ LOGE("mm_sound_get_next_device() failed [0x%x]!!", ret);
goto EXIT;
}
/* (3) get device type */
ret = mm_sound_get_device_type(device_h, &device_type);
if (ret != MM_ERROR_NONE) {
- LOGE("mm_sound_get_device_type() failed [%x]!!", ret);
+ LOGE("mm_sound_get_device_type() failed [0x%x]!!", ret);
goto EXIT;
}
return result;
}
+static int
+__mmplayer_audio_effect_check_condition(mmplayer_t *player, mm_audio_effect_type_e effect_type, int effect)
+{
+ int ret = MM_ERROR_NONE;
+ int enabled = 0;
+ bool available = false;
+
+ MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
+
+ mm_attrs_get_int_by_name(player->attrs, MM_PLAYER_AUDIO_OFFLOAD, &enabled);
+ if (enabled) {
+ LOGW("audio offload is enabled.");
+ return MM_ERROR_PLAYER_SOUND_EFFECT_INVALID_STATUS;
+ }
+
+ ret = _mmplayer_is_audio_control_available((MMHandleType)player, MM_PLAYER_AUDIO_CONTROL_OPT_EFFECT, &available);
+ if (ret != MM_ERROR_NONE || !available)
+ return MM_ERROR_PLAYER_SOUND_EFFECT_INVALID_STATUS;
+
+ if (!__mmplayer_is_supported_effect_type(player, effect_type, effect)) {
+ LOGW("not supported effect filter %d %d", effect_type, effect);
+ return MM_ERROR_PLAYER_SOUND_EFFECT_NOT_SUPPORTED_FILTER;
+ }
+
+ return MM_ERROR_NONE;
+}
+
int
-_mmplayer_audio_effect_custom_apply(mm_player_t *player)
+_mmplayer_audio_effect_custom_apply(mmplayer_t *player)
{
GstElement *audio_effect_element = NULL;
int result = MM_ERROR_NONE;
result = __mmplayer_set_harmony_effect(player, audio_effect_element);
if (result) {
- LOGE("_set_harmony_effect() failed(%x)", result);
+ LOGE("_set_harmony_effect() failed(0x%x)", result);
MMPLAYER_FLEAVE();
return result;
}
}
int
-_mmplayer_audio_effect_custom_update_level(mm_player_t *player)
+_mmplayer_audio_effect_custom_update_level(mmplayer_t *player)
{
GstElement *audio_effect_element = NULL;
int result = MM_ERROR_NONE;
mm_player_audio_effect_custom_clear_eq_all(MMHandleType hplayer)
{
int result = MM_ERROR_NONE;
- mm_player_t *player = (mm_player_t *)hplayer;
+ mmplayer_t *player = (mmplayer_t *)hplayer;
MMPLAYER_FENTER();
{
int i;
int result = MM_ERROR_NONE;
- mm_player_t *player = (mm_player_t *)hplayer;
+ mmplayer_t *player = (mmplayer_t *)hplayer;
MMPLAYER_FENTER();
return result;
}
-
int
-mm_player_is_supported_preset_effect_type(MMHandleType hplayer, MMAudioEffectPresetType effect)
+mm_player_is_available_preset_effect(MMHandleType hplayer, mm_audio_effect_preset_type_e effect, bool *available)
{
- mm_player_t *player = (mm_player_t *)hplayer;
- int result = MM_ERROR_NONE;
+ mmplayer_t *player = (mmplayer_t *)hplayer;
MMPLAYER_FENTER();
MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
+ MMPLAYER_RETURN_VAL_IF_FAIL(available, MM_ERROR_INVALID_ARGUMENT);
- if (!_mmplayer_is_supported_effect_type(player, MM_AUDIO_EFFECT_TYPE_PRESET, effect))
- result = MM_ERROR_PLAYER_SOUND_EFFECT_NOT_SUPPORTED_FILTER;
+ if (__mmplayer_audio_effect_check_condition(player, MM_AUDIO_EFFECT_TYPE_PRESET, effect) == MM_ERROR_NONE)
+ *available = true;
+ else
+ *available = false;
MMPLAYER_FLEAVE();
- return result;
+ return MM_ERROR_NONE;
}
-
int
-mm_player_is_supported_custom_effect_type(MMHandleType hplayer, MMAudioEffectCustomType effect)
+mm_player_is_available_custom_effect(MMHandleType hplayer, mm_audio_effect_custom_type_e effect, bool *available)
{
- mm_player_t *player = (mm_player_t *)hplayer;
- int result = MM_ERROR_NONE;
+ mmplayer_t *player = (mmplayer_t *)hplayer;
MMPLAYER_FENTER();
-
MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
+ MMPLAYER_RETURN_VAL_IF_FAIL(available, MM_ERROR_INVALID_ARGUMENT);
- if (!_mmplayer_is_supported_effect_type(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, effect))
- result = MM_ERROR_PLAYER_SOUND_EFFECT_NOT_SUPPORTED_FILTER;
+ if (__mmplayer_audio_effect_check_condition(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, effect) == MM_ERROR_NONE)
+ *available = true;
+ else
+ *available = false;
MMPLAYER_FLEAVE();
- return result;
+ return MM_ERROR_NONE;
}
int
mm_player_audio_effect_custom_apply(MMHandleType hplayer)
{
- mm_player_t *player = (mm_player_t *)hplayer;
+ mmplayer_t *player = (mmplayer_t *)hplayer;
int result = MM_ERROR_NONE;
MMPLAYER_FENTER();
int
mm_player_audio_effect_bypass(MMHandleType hplayer)
{
- mm_player_t *player = (mm_player_t *)hplayer;
+ mmplayer_t *player = (mmplayer_t *)hplayer;
int result = MM_ERROR_NONE;
GstElement *audio_effect_element = NULL;
}
-int
-_mmplayer_audio_effect_custom_set_level_ext(mm_player_t *player, MMAudioEffectCustomType custom_effect_type, int level)
+static int
+__mmplayer_audio_effect_custom_set_level_ext(mmplayer_t *player, mm_audio_effect_custom_type_e custom_effect_type, int level)
{
int effect_level_max = 0;
int effect_level_min = 0;
MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
/* check if EQ is supported */
- if (!_mmplayer_is_supported_effect_type(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, custom_effect_type)) {
+ result = __mmplayer_audio_effect_check_condition(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, custom_effect_type);
+ if (result != MM_ERROR_NONE) {
MMPLAYER_FLEAVE();
- return MM_ERROR_PLAYER_SOUND_EFFECT_NOT_SUPPORTED_FILTER;
+ return result;
}
while (count < MM_AUDIO_EFFECT_CUSTOM_NUM) {
return result;
}
-
-int
-_mmplayer_audio_effect_custom_set_level_eq(mm_player_t *player, int index, int level)
+static int
+__mmplayer_audio_effect_custom_set_level_eq(mmplayer_t *player, int index, int level)
{
gint eq_level_max = 0;
gint eq_level_min = 0;
MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
/* check if EQ is supported */
- if (!_mmplayer_is_supported_effect_type(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, MM_AUDIO_EFFECT_CUSTOM_EQ)) {
+ result = __mmplayer_audio_effect_check_condition(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, MM_AUDIO_EFFECT_CUSTOM_EQ);
+ if (result != MM_ERROR_NONE) {
MMPLAYER_FLEAVE();
- return MM_ERROR_PLAYER_SOUND_EFFECT_NOT_SUPPORTED_FILTER;
+ return result;
}
if (index < 0 || index > player->ini.audio_effect_custom_eq_band_num - 1) {
/* NOTE : parameter eq_index is only used for _set_eq_level() */
int
-mm_player_audio_effect_custom_set_level(MMHandleType hplayer, MMAudioEffectCustomType effect_custom_type, int eq_index, int level)
+mm_player_audio_effect_custom_set_level(MMHandleType hplayer, mm_audio_effect_custom_type_e effect_custom_type, int eq_index, int level)
{
- mm_player_t *player = (mm_player_t *)hplayer;
+ mmplayer_t *player = (mmplayer_t *)hplayer;
int result = MM_ERROR_NONE;
MMPLAYER_FENTER();
MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
/* check if this effect type is supported */
- if (!_mmplayer_is_supported_effect_type(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, effect_custom_type)) {
- result = MM_ERROR_PLAYER_SOUND_EFFECT_NOT_SUPPORTED_FILTER;
+ result = __mmplayer_audio_effect_check_condition(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, effect_custom_type);
+ if (result != MM_ERROR_NONE) {
+ MMPLAYER_FLEAVE();
+ return result;
+ }
+
+ if (effect_custom_type == MM_AUDIO_EFFECT_CUSTOM_EQ) {
+ result = __mmplayer_audio_effect_custom_set_level_eq(player, eq_index, level);
+ } else if (effect_custom_type > MM_AUDIO_EFFECT_CUSTOM_EQ && effect_custom_type < MM_AUDIO_EFFECT_CUSTOM_NUM) {
+ result = __mmplayer_audio_effect_custom_set_level_ext(player, effect_custom_type, level);
} else {
- if (effect_custom_type == MM_AUDIO_EFFECT_CUSTOM_EQ) {
- result = _mmplayer_audio_effect_custom_set_level_eq(player, eq_index, level);
- } else if (effect_custom_type > MM_AUDIO_EFFECT_CUSTOM_EQ && effect_custom_type < MM_AUDIO_EFFECT_CUSTOM_NUM) {
- result = _mmplayer_audio_effect_custom_set_level_ext(player, effect_custom_type, level);
- } else {
- LOGE("out of range, effect type(%d)", effect_custom_type);
- result = MM_ERROR_INVALID_ARGUMENT;
- }
+ LOGE("out of range, effect type(%d)", effect_custom_type);
+ result = MM_ERROR_INVALID_ARGUMENT;
}
MMPLAYER_FLEAVE();
int
mm_player_audio_effect_custom_get_eq_bands_number(MMHandleType hplayer, int *bands)
{
- mm_player_t *player = (mm_player_t *)hplayer;
+ mmplayer_t *player = (mmplayer_t *)hplayer;
int result = MM_ERROR_NONE;
MMPLAYER_FENTER();
MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
/* check if EQ is supported */
- if (!_mmplayer_is_supported_effect_type(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, MM_AUDIO_EFFECT_CUSTOM_EQ)) {
+ result = __mmplayer_audio_effect_check_condition(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, MM_AUDIO_EFFECT_CUSTOM_EQ);
+ if (result != MM_ERROR_NONE) {
MMPLAYER_FLEAVE();
- return MM_ERROR_PLAYER_SOUND_EFFECT_NOT_SUPPORTED_FILTER;
+ return result;
}
*bands = player->ini.audio_effect_custom_eq_band_num;
int
mm_player_audio_effect_custom_get_eq_bands_width(MMHandleType hplayer, int band_idx, int *width)
{
- mm_player_t *player = (mm_player_t *)hplayer;
+ mmplayer_t *player = (mmplayer_t *)hplayer;
int result = MM_ERROR_NONE;
unsigned int eq_num = 0;
MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
/* check if EQ is supported */
- if (!_mmplayer_is_supported_effect_type(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, MM_AUDIO_EFFECT_CUSTOM_EQ)) {
+ result = __mmplayer_audio_effect_check_condition(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, MM_AUDIO_EFFECT_CUSTOM_EQ);
+ if (result != MM_ERROR_NONE) {
MMPLAYER_FLEAVE();
- return MM_ERROR_PLAYER_SOUND_EFFECT_NOT_SUPPORTED_FILTER;
+ return result;
}
eq_num = player->ini.audio_effect_custom_eq_band_num;
int
mm_player_audio_effect_custom_get_eq_bands_freq(MMHandleType hplayer, int band_idx, int *freq)
{
- mm_player_t *player = (mm_player_t *)hplayer;
+ mmplayer_t *player = (mmplayer_t *)hplayer;
int result = MM_ERROR_NONE;
unsigned int eq_num = 0;
MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
/* check if EQ is supported */
- if (!_mmplayer_is_supported_effect_type(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, MM_AUDIO_EFFECT_CUSTOM_EQ)) {
+ result = __mmplayer_audio_effect_check_condition(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, MM_AUDIO_EFFECT_CUSTOM_EQ);
+ if (result != MM_ERROR_NONE) {
MMPLAYER_FLEAVE();
- return MM_ERROR_PLAYER_SOUND_EFFECT_NOT_SUPPORTED_FILTER;
+ return result;
}
eq_num = player->ini.audio_effect_custom_eq_band_num;
int
-mm_player_audio_effect_custom_get_level(MMHandleType hplayer, MMAudioEffectCustomType type, int eq_index, int *level)
+mm_player_audio_effect_custom_get_level(MMHandleType hplayer, mm_audio_effect_custom_type_e type, int eq_index, int *level)
{
- mm_player_t *player = (mm_player_t *)hplayer;
+ mmplayer_t *player = (mmplayer_t *)hplayer;
int result = MM_ERROR_NONE;
MMPLAYER_FENTER();
MMPLAYER_RETURN_VAL_IF_FAIL(level, MM_ERROR_PLAYER_NOT_INITIALIZED);
/* check if this effect type is supported */
- if (!_mmplayer_is_supported_effect_type(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, type)) {
+ result = __mmplayer_audio_effect_check_condition(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, type);
+ if (result != MM_ERROR_NONE) {
MMPLAYER_FLEAVE();
- return MM_ERROR_PLAYER_SOUND_EFFECT_NOT_SUPPORTED_FILTER;
+ return result;
}
if (type == MM_AUDIO_EFFECT_CUSTOM_EQ) {
int
-mm_player_audio_effect_custom_get_level_range(MMHandleType hplayer, MMAudioEffectCustomType type, int *min, int *max)
+mm_player_audio_effect_custom_get_level_range(MMHandleType hplayer, mm_audio_effect_custom_type_e type, int *min, int *max)
{
- mm_player_t *player = (mm_player_t *)hplayer;
+ mmplayer_t *player = (mmplayer_t *)hplayer;
int result = MM_ERROR_NONE;
int count = 1; /* start from 1, because of excepting eq index */
int ext_level_index = 1; /* start from 1, because of excepting eq index */
MMPLAYER_RETURN_VAL_IF_FAIL(max, MM_ERROR_PLAYER_NOT_INITIALIZED);
/* check if this effect type is supported */
- if (!_mmplayer_is_supported_effect_type(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, type)) {
+ result = __mmplayer_audio_effect_check_condition(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, type);
+ if (result != MM_ERROR_NONE) {
MMPLAYER_FLEAVE();
- return MM_ERROR_PLAYER_SOUND_EFFECT_NOT_SUPPORTED_FILTER;
+ return result;
}
if (type == MM_AUDIO_EFFECT_CUSTOM_EQ) {
int
mm_player_audio_effect_custom_set_level_eq_from_list(MMHandleType hplayer, int *level_list, int size)
{
- mm_player_t *player = (mm_player_t *)hplayer;
+ mmplayer_t *player = (mmplayer_t *)hplayer;
gint i = 0;
gint eq_level_min = 0;
gint eq_level_max = 0;
MMPLAYER_RETURN_VAL_IF_FAIL(player, MM_ERROR_PLAYER_NOT_INITIALIZED);
/* check if EQ is supported */
- if (!_mmplayer_is_supported_effect_type(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, MM_AUDIO_EFFECT_CUSTOM_EQ)) {
+ result = __mmplayer_audio_effect_check_condition(player, MM_AUDIO_EFFECT_TYPE_CUSTOM, MM_AUDIO_EFFECT_CUSTOM_EQ);
+ if (result != MM_ERROR_NONE) {
MMPLAYER_FLEAVE();
- return MM_ERROR_PLAYER_SOUND_EFFECT_NOT_SUPPORTED_FILTER;
+ return result;
}
if (size != player->ini.audio_effect_custom_eq_band_num) {