audio routing: implement buffers; refactor scan

scan no longer depends on private file context