this commit involves some major and perhaps braking changes
audio sorting is now done by a common function in fifo.c
all other input plugins send a s16le interleaved audio buffer here,
reformating might be done here in the future.
Audio is put in to three buffers of different lenght, shorter
buffers for higher frequencies. FFT is aplied separetly and
the ouput is combined toghether in the separate_freq_bans function.
This creates better responsivnes for higher frequencies while still
beeing able to pick up the lower ones.
used snd_pcm_get_params to get the period size from alsa
in case this has been set by asoundrc
the period size is then used to create the audio buffer and
with the sound format calcualte the number of frames
pulseauio thread now uses pthread_exit to exit if something unexpected happens
it also sets audio.terminate to 1 and writes the error message to a audio.error_message
so it can be printed by main thread after cleanup. this also enables main thread to
cleanup terminal upon unexpected error on audio thread
nested functions in pulse.c where removed,
but pa_mainloop had to be declared globaly
in order to close loop after finding default sink name
this might cause more problems in the future.
setting source to 'auto' (also the default pulse source now)
automatically finds the monitor interface of the defualt sink
this will in most cases be most usefull
people who has manualy specified the old default value: 'defualt'
will now get an error message.