#include "audience.h"
#endif
-/**
- * container_of - cast a member of a structure out to the containing structure
- * @ptr: the pointer to the member.
- * @type: the type of the container struct this is embedded in.
- * @member: the name of the member within the struct.
- *
- */
-#define container_of(ptr, type, member) ({ \
- void *__mptr = (void *)(ptr); \
- ((type *)((uintptr_t)__mptr - offsetof(type, member))); })
-
static struct pcm_config pcm_config_voicecall = {
.channels = 2,
.rate = 8000,
void start_voice_session_bt_sco(struct voice_session *session)
{
struct pcm_config *voice_sco_config;
- struct voice_data *vdata = container_of(session, struct voice_data, session);
if (session->pcm_sco_rx != NULL || session->pcm_sco_tx != NULL) {
ALOGW("%s: SCO PCMs already open!\n", __func__);
ALOGV("%s: Opening SCO PCMs", __func__);
- if (vdata->bluetooth_wb) {
+ if (session->vdata->bluetooth_wb) {
ALOGV("%s: pcm_config wideband", __func__);
voice_sco_config = &pcm_config_voice_sco_wb;
} else {
bool voice_session_uses_wideband(struct voice_session *session)
{
- struct voice_data *vdata = container_of(session, struct voice_data, session);
-
if (session->out_device & AUDIO_DEVICE_OUT_ALL_SCO) {
- return vdata->bluetooth_wb;
+ return session->vdata->bluetooth_wb;
}
return session->wb_amr_type >= 1;
}
}
+ session->vdata = &adev->voice;
+
return session;
}