trinity-users@lists.pearsoncomputing.net

Message: previous - next
Month: December 2016

Re: Re: Re: Re: Re: KMix panel shows capture instead of playback

From: deloptes <deloptes@...>
Date: Sun, 25 Dec 2016 22:41:04 +0100
Ló Béla wrote:

> I can&#39;t solve this, since i have no idea what is the problem. The
> drivers, firmwares are installed, the card is working, all the channels
> can be handled from alsamixer... And i have no idea how i can set up my
> device values properly, because i don&#39;t know what are they. There are
> no documents about what should i alias to what.

and this is the main problem here . I also do not know how it should be
setup.

If you think it is a bug in kmix - open a bug ticket. You have to be at
least cooperative to assist the developer to verify and investigate.

For example I see this function in kmix, and it will be interesting to know
what your system reports. Especially the "Master" is of interest as you
complain, you don't see it.
It could be a problem in the kmix code, related to the values reported for
this chipset. Assuming alsamixer does it right  we have a reference, but
someone should look and test. Preferably this is you :)
But I can not do it here in the list. Either debug yourself or get a ticket
opened. You can attach our discussion to the bug.

Mixer_ALSA::identify( snd_mixer_selem_id_t *sid )
{
        TQString name = snd_mixer_selem_id_get_name( sid );

        if ( name == "Master" ) return MixDevice::VOLUME;
        if ( name == "Capture" ) return MixDevice::RECMONITOR;
        if ( name == "Master Mono" ) return MixDevice::VOLUME;
        if ( name == "PC Speaker" ) return MixDevice::VOLUME;
        if ( name == "Music" || name == "Synth" || name == "FM" ) return
MixDevice::MIDI;
        if ( name.find( "Headphone", 0, false ) != -1 ) return
MixDevice::HEADPHONE;
        if ( name == "Bass" ) return MixDevice::BASS;
        if ( name == "Treble" ) return MixDevice::TREBLE;
        if ( name == "CD" ) return MixDevice::CD;
        if ( name == "Video" ) return MixDevice::VIDEO;
        if ( name == "PCM" || name == "Wave" ) return MixDevice::AUDIO;
        if ( name == "Surround" ) return MixDevice::SURROUND_BACK;
        if ( name == "Center" ) return MixDevice::SURROUND_CENTERFRONT;
        if ( name.find( "ac97", 0, false ) != -1 ) return MixDevice::AC97;
        if ( name.find( "coaxial", 0, false ) != -1 ) return
MixDevice::DIGITAL;
        if ( name.find( "optical", 0, false ) != -1 ) return
MixDevice::DIGITAL;
        if ( name.find( "IEC958", 0, false ) != -1 ) return
MixDevice::DIGITAL;
        if ( name.find( "Mic" ) != -1 ) return MixDevice::MICROPHONE;
        if ( name.find( "LFE" ) != -1 ) return MixDevice::SURROUND_LFE;
        if ( name.find( "Monitor" ) != -1 ) return MixDevice::RECMONITOR;
        if ( name.find( "3D", 0, false ) != -1 ) return
MixDevice::SURROUND;  // Should be probably some own icon

        return MixDevice::EXTERNAL;
}


then in the loop when setting up the mixer channels

int
Mixer_ALSA::open()
{
...
...
...
        MixDevice::ChannelType ct = (MixDevice::ChannelType)identify( sid );
/*
        if (!masterChosen && ct==MixDevice::VOLUME) {
           // Determine a nicer MasterVolume
           m_masterDevice = mixerIdx;
           masterChosen = true;
        }
*/