rem: rc = TRUE;
add: iounit->ChannelInfoStruct->ahie_Effect = AHIET_CHANNELINFO; iounit->ChannelInfoStruct->ahieci_Func = &iounit->ChannelInfoHook; iounit->ChannelInfoStruct->ahieci_Channels = iounit->Channels; if(!AHI_SetEffect(iounit->ChannelInfoStruct, iounit->AudioCtrl)) { rc = TRUE; }
context: static BOOL AllocHardware(struct AHIDevUnit *iounit,struct AHIBase *AHIBase){  BOOL rc = FALSE;  struct AHISampleInfo snd8info   = {AHIST_M8S,0,0xffffffff};  struct AHISampleInfo snd16info  = {AHIST_M16S,0,0xffffffff};  ULONG fullduplex=FALSE;  /* Allocate the hardware */  iounit->AudioCtrl = AHI_AllocAudio(      AHIA_AudioID,       iounit->AudioMode,      AHIA_MixFreq,       iounit->Frequency,      AHIA_Channels,      iounit->Channels,      AHIA_Sounds,        2,//    AHIA_PlayerFunc,    &iounit->PlayerHook,      AHIA_RecordFunc,    &iounit->RecordHook,      AHIA_SoundFunc,     &iounit->SoundHook,      TAG_DONE);  if(iounit->AudioCtrl != NULL)  {    /* Full duplex? */    AHI_GetAudioAttrs(AHI_INVALID_ID,iounit->AudioCtrl,      AHIDB_FullDuplex, &fullduplex,      TAG_DONE);    iounit->FullDuplex=fullduplex;    /* Load sounds */    if((!AHI_LoadSound(SND8,AHIST_DYNAMICSAMPLE,&snd8info,iounit->AudioCtrl))    && (!AHI_LoadSound(SND16,AHIST_DYNAMICSAMPLE,&snd16info,iounit->AudioCtrl)))    {      /* Set hardware properties */      AHI_ControlAudio(iounit->AudioCtrl,          (iounit->MonitorVolume == -1 ? TAG_IGNORE : AHIC_MonitorVolume),          iounit->MonitorVolume,          (iounit->InputGain == -1 ? TAG_IGNORE : AHIC_InputGain),          iounit->InputGain,          (iounit->OutputVolume == -1 ? TAG_IGNORE : AHIC_OutputVolume),          iounit->OutputVolume,          (iounit->Input == -1 ? TAG_IGNORE : AHIC_Input),          iounit->Input,          (iounit->Output == -1 ? TAG_IGNORE : AHIC_Output),          iounit->Output,          TAG_DONE);      rc = TRUE;    }  }  return rc;}