Implement HasInputDevices in CrasAudioManager
Currently in CrasAudioManager, HasInputDevices always returns True.
We need to let HasInputDevices reflect the truth for device without
internal microphone like ChromeBox.
Let CrasAudioHandler updates the flag in CrasAudioManager whenever
CrasAudioHandler gets the audio node info from Cras.
Add a property is_for_simple_usage to AudioDeviceType to indicate
that a device is for simple usage, not for special usage like
loopback, always on keyword mic, or keyboard mic.
This property can also replace the logic in audio_detailed_view.cc
to filter out the devices that we do not want to display in UI.
BUG=490851
TEST=Check audio devices in UI does not contain loopback devices.
TEST=Check virtual keyboard does not show microphone for chromebox
(Not tested yet).
R=dalecurtis@chromium.org, derat@chromium.org, dgreid@chromium.org, jennyz@chromium.org
Review URL: https://codereview.chromium.org/
1186293003
Cr-Commit-Position: refs/heads/master@{#337791}