Bug 123560 - No IEC958 Playback switch for Intel HDA
Summary: No IEC958 Playback switch for Intel HDA
Status: RESOLVED FIXED
Alias: None
Product: kmix
Classification: Applications
Component: Soundcard specific (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR wishlist
Target Milestone: ---
Assignee: Christian Esken
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-03-13 19:02 UTC by Francois Cartegnie
Modified: 2007-06-17 16:00 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Francois Cartegnie 2006-03-13 19:02:53 UTC
Version:           2.6.1 (using KDE 3.4.2, Mandrake Linux Cooker i586 - Cooker)
Compiler:          Target: i586-mandriva-linux-gnu
OS:                Linux (i686) release 2.6.12-12mdk

The IEC958 switches are only for Input/Capture.
No Digital Out toggle available (IEC958 Playback) on the output panel, so can't switch to digital/spdif out  from kmix.

amixer output for this control:

Simple mixer control 'IEC958',0
  Capabilities: pswitch pswitch-joined cswitch cswitch-joined
  Playback channels: Mono
  Capture channels: Mono
  Mono: Playback [off] Capture [off]
Comment 1 Christian Esken 2006-03-14 22:39:27 UTC
Dear bug reporter,
I am quite sure this issue has been fixed while fixing bug 110807 (it is about playback/capture controls here), and also relates to bug 121827.
So I do advise to upgrade to KDE3.5.1 and try it - if it doesn't, please just reopen this bug report.
Comment 2 Francois Cartegnie 2006-03-15 17:14:14 UTC
I upgraded those packages:

kdemultimedia-kmix-3.5.1-1mdk
libkdemultimedia1-kmix-3.5.1-1mdk

no changes.
Comment 3 Christian Esken 2006-03-16 00:00:56 UTC
Francois,
thanks for the quick feedback. I took a closer look, and now understand what is going wrong here.

Accepting bug. Reproducable with nForce2 card, Simple mixer control 'IEC958' .
Comment 4 Christian Esken 2007-06-17 12:38:56 UTC
Work on this has started. Target milestone: KDE4.0

For the files. this is the "pswitch cswitch" issue
Comment 5 Christian Esken 2007-06-17 16:00:41 UTC
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
       {