rem: MIXER_FUNCTION function; INT32 size; function.Channel = channel; function.iFunction = type == B_MIX_GAIN ? MXF_GET_LEVEL : MXF_GET_MUTE; dev->pEG->ProcessMixerFunction(&function, size);
add: MIXER_MULTI_FUNCTION multi_function[2]; PMIXER_FUNCTION function = multi_function[0].MixerFunction; INT32 size = ComputeMixerMultiFunctionSize(2); function[0].Channel = channel; function[1].Channel = channel; function[1].Channel.wChannel++; function[0].iFunction = type == B_MIX_GAIN ? MXF_GET_LEVEL : MXF_GET_MUTE; function[1].iFunction = type == B_MIX_GAIN ? MXF_GET_LEVEL : MXF_GET_MUTE;
context: echo_channel_get_mix(void *card, MIXER_AUDIO_CHANNEL channel, int32 type, float *values) {	echo_dev *dev = (echo_dev*) card;	MIXER_FUNCTION function;	INT32 size;	function.Channel = channel;	function.iFunction = type == B_MIX_GAIN ? MXF_GET_LEVEL : MXF_GET_MUTE;	dev->pEG->ProcessMixerFunction(&function, size);	if (function.RtnStatus == ECHOSTATUS_OK) {		values[0] = function.Data.iLevel;		PRINT(("echo_channel_get_mix iLevel: %d\n", function.Data.iLevel));	}}