rem: struct AHIRequest *ioreq; UWORD              c;
add: struct AHIRequest* ioreq1; struct AHIRequest* ioreq2; struct Library*    AHIsubBase;  AHIsubBase = ((struct AHIPrivAudioCtrl *) iounit->AudioCtrl)->ahiac_SubLib;
context: static void UpdateMasterVolume( struct AHIDevUnit *iounit,				struct AHIBase    *AHIBase ){  struct AHIRequest *ioreq;  UWORD              c;    AHIObtainSemaphore(&iounit->Lock);  c = 0;    for(ioreq = (struct AHIRequest *)iounit->PlayingList.mlh_Head;      ioreq->ahir_Std.io_Message.mn_Node.ln_Succ;      ioreq = (struct AHIRequest *)ioreq->ahir_Std.io_Message.mn_Node.ln_Succ)  {    ++c;  }  // Always "reserve" one channel for each opener to avoid too much  // volume fluctuation  if( c < iounit->Unit.unit_OpenCnt )  {    c = iounit->Unit.unit_OpenCnt;  }  // Now check if we need to update the master volume  if( c != iounit->ChannelsInUse )  {    struct AHIEffMasterVolume vol;        iounit->ChannelsInUse = c;    if( c == 0 )    {      vol.ahie_Effect   = AHIET_MASTERVOLUME | AHIET_CANCEL;      vol.ahiemv_Volume = 0x10000;    }    else    {      vol.ahie_Effect   = AHIET_MASTERVOLUME;      vol.ahiemv_Volume = iounit->Channels * 0x10000 / c;      if( iounit->PseudoStereo )      {	vol.ahiemv_Volume = vol.ahiemv_Volume / 2;      }    }    AHI_SetEffect( &vol, iounit->AudioCtrl );  }    AHIReleaseSemaphore(&iounit->Lock);}