Ló Béla wrote:
I can'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'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;
}
*/