SVN commit 872275 by mkretz: support Solid::Device::icon for ALSA and OSS devices with the HAL backend M +21 -0 haldevice.cpp --- trunk/KDE/kdelibs/solid/solid/backends/hal/haldevice.cpp #872274:872275 @@ -225,6 +225,27 @@ return "cpu"; // FIXME: Doesn't follow icon spec } else if (category=="video4linux") { return "camera-web"; + } else if (category == "alsa" || category == "oss") { + // Sorry about this const_cast, but it's the best way to not copy the code from + // AudioInterface. + const Hal::AudioInterface audioIface(const_cast(this)); + switch (audioIface.soundcardType()) { + case Solid::AudioInterface::InternalSoundcard: + return QLatin1String("audio-card"); + case Solid::AudioInterface::UsbSoundcard: + return QLatin1String("audio-card-usb"); + case Solid::AudioInterface::FirewireSoundcard: + return QLatin1String("audio-card-firewire"); + case Solid::AudioInterface::Headset: + if (udi().contains("usb", Qt::CaseInsensitive) || + audioIface.name().contains("usb", Qt::CaseInsensitive)) { + return QLatin1String("audio-headset-usb"); + } else { + return QLatin1String("audio-headset"); + } + case Solid::AudioInterface::Modem: + return QLatin1String("modem"); + } } return QString();