I understand your issue since most folks would like to switch between sources and not adjust the volume level, but the truth is that not all sources are created equal.
I have a number of sources feeding my AVR, and none of them match from the git-go. The only solution is to pick the lowest level source and then place attenuators in the other lines to get those sources to match. That, of course, assumes none of the sources will change on their own (one CD louder than another, or Directv decides to readjust their levels), and that the source feeds are analog (can't pad a digital feed from a source).
So, it usually boils down to adjusting the volume for each source. Luckily, some AVRs can memorize source level sets which make this less of an issue.