setting->vol_type = vol_type;
setting->dev_type = dev_type;
setting->max_len = table[vol_type].devices[dev_type].max_len;
- setting->table = (avsys_audio_volume_t *)(((int)table[vol_type].devices[dev_type].gain) - (int)table);
+ // setting->table = (avsys_audio_volume_t *)(((int)table[vol_type].devices[dev_type].gain) - (int)table);
+ setting->table = (avsys_audio_volume_t *)(((void *)table[vol_type].devices[dev_type].gain) - (void *)table);
avsys_info(AVAUDIO, "vol %d, dev%d table setted.\n", vol_type, dev_type);
return AVSYS_STATE_SUCCESS;
}
setting->dev_type = dev_type;
setting->max_len = table[setting->vol_type].devices[dev_type].max_len;
- setting->table = (avsys_audio_volume_t *)(((int)table[setting->vol_type].devices[dev_type].gain) - (int)table);
+ // setting->table = (avsys_audio_volume_t *)(((int)table[setting->vol_type].devices[dev_type].gain) - (int)table);
+ setting->table = (avsys_audio_volume_t *)(((void *)table[setting->vol_type].devices[dev_type].gain) - (void *)table);
return AVSYS_STATE_SUCCESS;
}
return AVSYS_STATE_ERR_INVALID_VALUE;
}
- converted->level[AVSYS_AUDIO_CHANNEL_LEFT] = ((avsys_audio_volume_t *)((int)table + (int)setting->table))[level->level[AVSYS_AUDIO_CHANNEL_LEFT]].level[AVSYS_AUDIO_CHANNEL_LEFT];
- converted->level[AVSYS_AUDIO_CHANNEL_RIGHT] = ((avsys_audio_volume_t *)((int)table + (int)setting->table))[level->level[AVSYS_AUDIO_CHANNEL_RIGHT]].level[AVSYS_AUDIO_CHANNEL_RIGHT];
+ // converted->level[AVSYS_AUDIO_CHANNEL_LEFT] = ((avsys_audio_volume_t *)((int)table + (int)setting->table))[level->level[AVSYS_AUDIO_CHANNEL_LEFT]].level[AVSYS_AUDIO_CHANNEL_LEFT];
+ converted->level[AVSYS_AUDIO_CHANNEL_LEFT] = ((avsys_audio_volume_t *)((void *)table + (int)((void *)setting->table - NULL)))[level->level[AVSYS_AUDIO_CHANNEL_LEFT]].level[AVSYS_AUDIO_CHANNEL_LEFT];
+ // converted->level[AVSYS_AUDIO_CHANNEL_RIGHT] = ((avsys_audio_volume_t *)((int)table + (int)setting->table))[level->level[AVSYS_AUDIO_CHANNEL_RIGHT]].level[AVSYS_AUDIO_CHANNEL_RIGHT];
+ converted->level[AVSYS_AUDIO_CHANNEL_RIGHT] = ((avsys_audio_volume_t *)((void *)table + (int)((void *)setting->table - NULL)))[level->level[AVSYS_AUDIO_CHANNEL_RIGHT]].level[AVSYS_AUDIO_CHANNEL_RIGHT];
avsys_warning(AVAUDIO, "Volume converted vol_type %d dev_type %d\n", setting->vol_type, setting->dev_type);
avsys_warning(AVAUDIO, "\tL: %d to %d\n", level->level[AVSYS_AUDIO_CHANNEL_LEFT], converted->level[AVSYS_AUDIO_CHANNEL_LEFT]);
avsys_audio_alsa_aif_handle_t *g_hAIF[AIF_DEVICE_MAX] = { NULL, NULL, NULL, NULL, NULL };
char *strAIF[AIF_DEVICE_MAX] = { "AIF2 Capture", "AIF2 Playback", "AIF3 Capture", "AIF3 Playback", "AIF4 Playback" };
+
#define SET_AIF(index) \
do { \
if(g_hAIF[index]) { \
}
}
+
static int __avsys_audio_release_path (gain_info_t local_gain, avsys_audio_path_ex_info_t *control)
{
int err = AVSYS_STATE_SUCCESS;
/* Open AIFs */
if (control->control_aif_before_path_set) {
- err = __avsys_open_aif(AIF_control);
+ err = __avsys_open_aif(AIF_control);
}
/* Do ALSA scenario control based on gain */
void __init_module(void);
void __fini_module(void);
+#if 0
#define AVSYS_GET_HANDLE_PTR(MODE) do { \
err = avsys_audio_handle_get_ptr((int)handle, &p, MODE); \
if (AVSYS_FAIL(err)) { \
return err; \
} \
} while (0)
+#else
+#define AVSYS_GET_HANDLE_PTR(MODE) do { \
+ err = avsys_audio_handle_get_ptr((void *)handle - NULL, &p, MODE); \
+ if (AVSYS_FAIL(err)) { \
+ return err; \
+ } \
+} while (0)
+#endif
+#if 0
#define AVSYS_RELEASE_HANDLE_PTR(MODE) do { \
if (AVSYS_FAIL(avsys_audio_handle_release_ptr((int)handle, MODE))) { \
avsys_error(AVAUDIO, "audio handle release failed\n"); \
return AVSYS_STATE_ERR_INTERNAL; \
} \
} while (0)
+#else
+#define AVSYS_RELEASE_HANDLE_PTR(MODE) do { \
+ if (AVSYS_FAIL(avsys_audio_handle_release_ptr((void *)handle - NULL, MODE))) { \
+ avsys_error(AVAUDIO, "audio handle release failed\n"); \
+ return AVSYS_STATE_ERR_INTERNAL; \
+ } \
+} while (0)
+#endif
#define AVSYS_STREAM_LOCK() do { \
pthread_mutex_lock(&gmutex);\
break;
}
- *phandle = (avsys_handle_t) handle;
+ // *phandle = (avsys_handle_t) handle;
+ *phandle = (avsys_handle_t)((void *)0 + handle);
/* set recommended buffer size */
if (size != NULL)
*size = p->period;
bool bt_path = false;
AVSYS_STREAM_LOCK();
- avsys_info(AVAUDIO, "%s, handle=[%d]\n", __func__, (int)handle);
+ avsys_info(AVAUDIO, "%s, handle=[%p]\n", __func__, handle);
err = avsys_audio_handle_get_ptr((int)handle, &p, HANDLE_PTR_MODE_NORMAL);
if (AVSYS_FAIL(err)) {
return err;
}
- if (AVSYS_FAIL(avsys_audio_handle_update_priority((int)handle, p->priority, AVSYS_AUDIO_HANDLE_ROUTE_FOLLOWING_POLICY, AVSYS_AUDIO_UNSET_PRIORITY))) {
+ if (AVSYS_FAIL(avsys_audio_handle_update_priority((void *)handle - NULL, p->priority, AVSYS_AUDIO_HANDLE_ROUTE_FOLLOWING_POLICY, AVSYS_AUDIO_UNSET_PRIORITY))) {
avsys_error(AVAUDIO, "unset priority of handle %d error: %x\n", handle, err);
}
return AVSYS_STATE_ERR_INTERNAL;
}
- avsys_audio_handle_free((int)handle);
+ // avsys_audio_handle_free((int)handle);
+ avsys_audio_handle_free((void *)handle - NULL);
AVSYS_STREAM_UNLOCK();
if (p->mode != AVSYS_AUDIO_MODE_OUTPUT && p->mode != AVSYS_AUDIO_MODE_OUTPUT_CLOCK &&
p->mode != AVSYS_AUDIO_MODE_OUTPUT_LOW_LATENCY && p->mode != AVSYS_AUDIO_MODE_OUTPUT_AP_CALL && p->mode != AVSYS_AUDIO_MODE_OUTPUT_VIDEO) {
avsys_error(AVAUDIO, "opened input mode\n");
- avsys_audio_handle_release_ptr((int)handle, HANDLE_PTR_MODE_FAST);
+ // avsys_audio_handle_release_ptr((int)handle, HANDLE_PTR_MODE_FAST);
+ avsys_audio_handle_release_ptr((void *)handle - NULL, HANDLE_PTR_MODE_FAST);
return AVSYS_STATE_ERR_INVALID_MODE;
}
return AVSYS_STATE_ERR_INVALID_PARAMETER;
}
- if (AVSYS_FAIL(avsys_audio_handle_set_mute((int)handle, mute))) {
+ if (AVSYS_FAIL(avsys_audio_handle_set_mute((void *)handle - NULL, mute))) {
avsys_error(AVAUDIO, "failed to set handle mute\n");
}