In generic PCM functions allowing all sample formats, pass a void pointer instead of a char pointer.
All what's left in pcm_utils.h is the pcm_range() utility function, which is only used internally by pcm_volume and pcm_mix.