Version: kmix 2.6 (using KDE KDE 3.5.2) Installed from: SuSE RPMs OS: Linux not sure whether it is the same problem like this bug: http://bugs.kde.org/show_bug.cgi?id=105745 I have a gembird AP 5.1 usb headset with virtual 5.1 sound. a statement from the alsa mailing list: The inputs of a soundcard usually have two controls: one to control the mixing in the master sound output, and one to control the mixing while capturing. the input slider for mixing while capturing is missing. the others, output mixer, input mixer, and auto gain control switch is available and working. in alsamixer it is there. cat /proc/asound/card1/oss_mixer VOLUME "" 0 BASS "" 0 TREBLE "" 0 SYNTH "" 0 PCM "" 0 SPEAKER "" 0 LINE "" 0 MIC "Mic" 0 CD "" 0 IMIX "" 0 ALTPCM "" 0 RECLEV "" 0 IGAIN "" 0 OGAIN "" 0 LINE1 "" 0 LINE2 "" 0 LINE3 "" 0 DIGITAL1 "" 0 DIGITAL2 "" 0 DIGITAL3 "" 0 PHONEIN "" 0 PHONEOUT "" 0 VIDEO "" 0 RADIO "" 0 MONITOR "" 0
I'm using fedora core 6 with a cmipci driven sound card and am also missing stuff in kmix: Some of the switches/sliders shown in alsamixer are missing from kmix. For instance, amixer reports this for microphone related stuff: Simple mixer control 'Mic',0 Capabilities: pvolume pvolume-joined cvolume pswitch pswitch-joined cswitch cswitch-joined Playback channels: Mono Capture channels: Mono Limits: Playback 0 - 31 Capture 0 - 7 Mono: Playback 31 [100%] [off] Capture 0 [0%] [on] Simple mixer control 'Mic Boost',0 Capabilities: pswitch pswitch-joined cswitch cswitch-joined Playback channels: Mono Capture channels: Mono Mono: Playback [off] Capture [on] Which corresponds to what I have in alsamixer. On the other hand kmix is missing the "Mic:cvolume" and "Mic Boost:cswitch" capabilities. Tobias
I see interesting combinations in Tobias Oed's configuration: 1) "pvolume cvolume" is definitely not working in KDE3's KMix. It is (hopefully) fixed for KDE4, SVN Revision 673714. Feedback about this is very appreciated. 2) "pswitch cswitch" without volume is possibly not supported in KDE3's KMix. It is not fixed yet in KDE4. Target milestone: KDE4
*** Bug 132172 has been marked as a duplicate of this bug. ***
SVN commit 676707 by esken: Finalized optimal ALSA support. The last open issue (pswitch cswitch) is now resolved. BUGS: 123560 BUGS: 135729 BUGS: 126012 BUGS: 125772 M +30 -15 mdwslider.cpp --- trunk/KDE/kdemultimedia/kmix/mdwslider.cpp #676706:676707 @@ -234,22 +234,36 @@ - // --- SLIDERS --------------------------- - QBoxLayout *volLayout; - if ( _orientation == Qt::Vertical ) { - volLayout = new QHBoxLayout( ); - volLayout->setAlignment(Qt::AlignVCenter); - } - else { - volLayout = new QVBoxLayout( ); - volLayout->setAlignment(Qt::AlignHCenter); - } - sliLayout->addItem( volLayout ); + // --- SLIDERS --------------------------- + QBoxLayout *volLayout; + if ( _orientation == Qt::Vertical ) { + volLayout = new QHBoxLayout( ); + volLayout->setAlignment(Qt::AlignVCenter); + } + else { + volLayout = new QVBoxLayout( ); + volLayout->setAlignment(Qt::AlignHCenter); + } + sliLayout->addItem( volLayout ); - if ( m_mixdevice->playbackVolume().count() > 0 ) - addSliders( volLayout, 'p' ); - if ( m_mixdevice->captureVolume().count() > 0 ) + if ( m_mixdevice->playbackVolume().count() > 0 ) + addSliders( volLayout, 'p' ); + if ( m_mixdevice->captureVolume().count() > 0 ) addSliders( volLayout, 'c' ); + if ( m_mixdevice->playbackVolume().count() == 0 && m_mixdevice->captureVolume().count() == 0 ) + { // no siders => put a label with the name. + // But I won't add " (capture)" as on the sliders, because there is only one "column" + if ( _orientation == Qt::Vertical ) { + m_label = new VerticalText( this, m_mixdevice->readableName() ); + } + else { + m_label = new QLabel(this); + static_cast<QLabel*>(m_label)->setText(m_mixdevice->readableName()); + } + volLayout->addWidget( m_label ); + m_label->installEventFilter( this ); + m_label->setToolTip( m_mixdevice->readableName() ); // @todo: Whatsthis, explaining the device + } // --- RECORD SOURCE LED -------------------------- if ( showRecordLED ) @@ -277,7 +291,8 @@ reclayout->addWidget( m_recordLED ); connect(m_recordLED, SIGNAL(stateChanged(bool)), this, SLOT(setRecsrc(bool))); m_recordLED->installEventFilter( this ); - m_recordLED->setToolTip( i18n( "Record" ) ); + QString muteTip( i18n( "Capture/Uncapture %1", m_mixdevice->readableName() ) ); + m_recordLED->setToolTip( muteTip ); // @todo: Whatsthis, explaining the device } // has Record LED else {