Lines Matching refs:mixer

72 } mixer;  variable
87 chan->next=mixer.channels; in MIXER_AddChannel()
90 mixer.channels=chan; in MIXER_AddChannel()
96 MixerChannel * chan=mixer.channels; in MIXER_FindChannel()
108 MixerChannel * chan=mixer.channels; in MIXER_DelChannel()
109 MixerChannel * * where=&mixer.channels; in MIXER_DelChannel()
125 volmul[0]=(Bits)((1 << MIXER_VOLSHIFT)*scale*volmain[0]*mixer.mastervol[0]); in UpdateVolume()
126 volmul[1]=(Bits)((1 << MIXER_VOLSHIFT)*scale*volmain[1]*mixer.mastervol[1]); in UpdateVolume()
149 if (done<mixer.done) in Enable()
150 done=mixer.done; in Enable()
156 freq_add=(_freq<<MIXER_SHIFT)/mixer.freq; in SetFreq()
185 Bitu mixpos=mixer.pos+done; in AddSamples()
302 mixer.work[mixpos][0]+=sample*volmul[0]; in AddSamples()
305 mixer.work[mixpos][1]+=sample*volmul[1]; in AddSamples()
320 Bitu mixpos=mixer.pos+done;done=needed; in AddStretched()
336 mixer.work[mixpos][0]+=sample*volmul[0]; in AddStretched()
337 mixer.work[mixpos][1]+=sample*volmul[1]; in AddStretched()
393 if (!enabled || done<mixer.done) in FillUp()
396 Mix((Bitu)(index*mixer.needed)); in FillUp()
412 MixerChannel * chan=mixer.channels; in MIXER_MixData()
420 mixer.tick_add = ((mixer.freq) << MIXER_SHIFT)/1000; in MIXER_MixData()
421 mixer.done = needed; in MIXER_MixData()
426 MIXER_MixData(mixer.needed); in MIXER_Mix()
427 mixer.tick_remain+=mixer.tick_add; in MIXER_Mix()
428 mixer.needed+=(mixer.tick_remain>>MIXER_SHIFT); in MIXER_Mix()
429 mixer.tick_remain&=MIXER_REMAIN; in MIXER_Mix()
434 MIXER_MixData(mixer.needed); in MIXER_Mix_NoSound()
436 for (Bitu i=0;i<mixer.needed;i++) in MIXER_Mix_NoSound()
438 mixer.work[mixer.pos][0]=0; in MIXER_Mix_NoSound()
439 mixer.work[mixer.pos][1]=0; in MIXER_Mix_NoSound()
440 mixer.pos=(mixer.pos+1)&MIXER_BUFMASK; in MIXER_Mix_NoSound()
443 for (MixerChannel * chan=mixer.channels;chan;chan=chan->next) in MIXER_Mix_NoSound()
445 if (chan->done>mixer.needed) in MIXER_Mix_NoSound()
446 chan->done-=mixer.needed; in MIXER_Mix_NoSound()
451 mixer.tick_remain+=mixer.tick_add; in MIXER_Mix_NoSound()
452 mixer.needed=mixer.tick_remain>>MIXER_SHIFT; in MIXER_Mix_NoSound()
453 mixer.tick_remain&=MIXER_REMAIN; in MIXER_Mix_NoSound()
454 mixer.done=0; in MIXER_Mix_NoSound()
466 if (mixer.done < need) in MIXER_CallBack()
469 if((need - mixer.done) > (need >>7) ) //Max 1 procent stretch. in MIXER_CallBack()
471 reduce = mixer.done; in MIXER_CallBack()
473 mixer.tick_add = ((mixer.freq+mixer.min_needed) << MIXER_SHIFT)/1000; in MIXER_CallBack()
475 else if (mixer.done < mixer.max_needed) in MIXER_CallBack()
477 Bitu left = mixer.done - need; in MIXER_CallBack()
478 if (left < mixer.min_needed) in MIXER_CallBack()
482 Bitu needed = mixer.needed - need; in MIXER_CallBack()
483 Bitu diff = (mixer.min_needed>needed?mixer.min_needed:needed) - left; in MIXER_CallBack()
484 mixer.tick_add = ((mixer.freq+(diff*3)) << MIXER_SHIFT)/1000; in MIXER_CallBack()
489 left = (mixer.min_needed - left); in MIXER_CallBack()
490 left = 1 + (2*left) / mixer.min_needed; //left=1,2,3 in MIXER_CallBack()
508 Bitu diff = left - mixer.min_needed; in MIXER_CallBack()
509 if(diff > (mixer.min_needed<<1)) diff = mixer.min_needed<<1; in MIXER_CallBack()
510 if(diff > (mixer.min_needed>>1)) in MIXER_CallBack()
511 mixer.tick_add = ((mixer.freq-(diff/5)) << MIXER_SHIFT)/1000; in MIXER_CallBack()
512 else if (diff > (mixer.min_needed>>4)) in MIXER_CallBack()
513 mixer.tick_add = ((mixer.freq-(diff>>3)) << MIXER_SHIFT)/1000; in MIXER_CallBack()
515 mixer.tick_add = (mixer.freq<< MIXER_SHIFT)/1000; in MIXER_CallBack()
522 if (mixer.done > MIXER_BUFSIZE) in MIXER_CallBack()
523 index_add = MIXER_BUFSIZE - 2*mixer.min_needed; in MIXER_CallBack()
525 index_add = mixer.done - 2*mixer.min_needed; in MIXER_CallBack()
527 reduce = mixer.done - 2* mixer.min_needed; in MIXER_CallBack()
528 mixer.tick_add = ((mixer.freq-(mixer.min_needed/5)) << MIXER_SHIFT)/1000; in MIXER_CallBack()
532 for (MixerChannel * chan=mixer.channels;chan;chan=chan->next) in MIXER_CallBack()
541 mixer.tick_add=(mixer.freq<< MIXER_SHIFT)/1000; in MIXER_CallBack()
543 mixer.done -= reduce; in MIXER_CallBack()
544 mixer.needed -= reduce; in MIXER_CallBack()
545 pos = mixer.pos; in MIXER_CallBack()
546 mixer.pos = (mixer.pos + reduce) & MIXER_BUFMASK; in MIXER_CallBack()
554 sample=mixer.work[i][0]>>MIXER_VOLSHIFT; in MIXER_CallBack()
556 sample=mixer.work[i][1]>>MIXER_VOLSHIFT; in MIXER_CallBack()
564 mixer.work[pos][0]=0; in MIXER_CallBack()
565 mixer.work[pos][1]=0; in MIXER_CallBack()
574 sample=mixer.work[pos][0]>>MIXER_VOLSHIFT; in MIXER_CallBack()
576 sample=mixer.work[pos][1]>>MIXER_VOLSHIFT; in MIXER_CallBack()
578 mixer.work[pos][0]=0; in MIXER_CallBack()
579 mixer.work[pos][1]=0; in MIXER_CallBack()
629 MakeVolume((char *)temp_line.c_str(),mixer.mastervol[0],mixer.mastervol[1]); in Run()
630 MixerChannel * chan=mixer.channels; in Run()
640 chan=mixer.channels; in Run()
642 ShowVolume("MASTER",mixer.mastervol[0],mixer.mastervol[1]); in Run()
643 for (chan=mixer.channels;chan;chan=chan->next) in Run()
704 mixer.freq=section->Get_int("rate"); in MIXER_Init()
705 mixer.nosound=section->Get_bool("nosound"); in MIXER_Init()
706 mixer.blocksize=section->Get_int("blocksize"); in MIXER_Init()
709 mixer.channels=0; in MIXER_Init()
710 mixer.pos=0; in MIXER_Init()
711 mixer.done=0; in MIXER_Init()
712 memset(mixer.work,0,sizeof(mixer.work)); in MIXER_Init()
713 mixer.mastervol[0]=1.0f; in MIXER_Init()
714 mixer.mastervol[1]=1.0f; in MIXER_Init()
716 mixer.tick_remain=0; in MIXER_Init()
717 if (mixer.nosound || mixer.freq > 49716) in MIXER_Init()
720 mixer.tick_add=((mixer.freq) << MIXER_SHIFT)/1000; in MIXER_Init()
725 mixer.tick_add=(mixer.freq << MIXER_SHIFT)/1000; in MIXER_Init()
728 mixer.min_needed=section->Get_int("prebuffer"); in MIXER_Init()
729 if (mixer.min_needed>100) mixer.min_needed=100; in MIXER_Init()
730 mixer.min_needed=(mixer.freq*mixer.min_needed)/1000; in MIXER_Init()
731 mixer.max_needed=mixer.blocksize * 2 + 2*mixer.min_needed; in MIXER_Init()
732 mixer.needed=mixer.min_needed+1; in MIXER_Init()
739 return mixer.freq; in MIXER_RETRO_GetFrequency()