rem: calcMasterVolumeTable(audioctrl, AHIBase); calcSignedTable(audioctrl, AHIBase); calcUnsignedTable(audioctrl, AHIBase);
add: calcMasterVolumeTable( audioctrl ); calcSignedTable( audioctrl ); calcUnsignedTable( audioctrl );
context: update_MasterVolume ( struct AHIPrivAudioCtrl *audioctrl,                      struct AHIBase *AHIBase )#endif{  struct Library        *AHIsubBase;  struct AHIChannelData *cd;  Fixed                  volume;  int                    i;  if(audioctrl->ac.ahiac_Flags & AHIACF_CLIPPING)  {    volume = 0x10000;  }  else  {    volume = audioctrl->ahiac_SetMasterVolume;  }  /* Scale to what the echo effect think is best... */  volume = (volume * (audioctrl->ahiac_EchoMasterVolume >> 8)) >> 8;  /* This is the actual master volume in use */  audioctrl->ahiac_MasterVolume = volume;  /* Update the mastervolume table, and the volume tables */  calcMasterVolumeTable(audioctrl, AHIBase);  calcSignedTable(audioctrl, AHIBase);  calcUnsignedTable(audioctrl, AHIBase);  /* Update volume for channels */  AHIsubBase = audioctrl->ahiac_SubLib;  AHIsub_Disable(&audioctrl->ac);  for(i = audioctrl->ac.ahiac_Channels, cd = audioctrl->ahiac_ChannelDatas;      i > 0;      i--, cd++)  {    SelectAddRoutine(cd->cd_VolumeLeft, cd->cd_VolumeRight, cd->cd_Type, audioctrl,                     &cd->cd_ScaleLeft, &cd->cd_ScaleRight, (ADDFUNC**) &cd->cd_AddRoutine);    SelectAddRoutine(cd->cd_NextVolumeLeft, cd->cd_NextVolumeRight, cd->cd_NextType, audioctrl,                     &cd->cd_NextScaleLeft, &cd->cd_NextScaleRight, (ADDFUNC**) &cd->cd_NextAddRoutine);  }  AHIsub_Enable(&audioctrl->ac);  return TRUE;}