added pulseaudio c implementation