frac_pos
dpcm->period_size_frac = frac_pos(dpcm, dpcm->pcm_period_size);
unsigned int frac_pos; /* fractional sample position (based HZ) */
dpcm->frac_pos += delta;
while (dpcm->frac_pos >= dpcm->frac_buffer_size)
dpcm->frac_pos -= dpcm->frac_buffer_size;
dpcm->frac_pos = 0;
return dpcm->frac_pos / HZ;