On Thu, Jun 16, 2011 at 1:51 PM, Lars-Peter Clausen lars@metafoo.de wrote:
On 06/16/2011 01:47 PM, Daniel Mack wrote:
On Thu, Jun 16, 2011 at 1:38 PM, Lars-Peter Clausen lars@metafoo.de wrote:
On 06/16/2011 01:26 PM, Daniel Mack wrote:
[...] Looks different now, but I'd say that's still not what you expected:
# amixer cget numid=39 numid=39,iface=MIXER,name='Limiter1 Attack Threshold (DRC Mode)' ; type=INTEGER,access=rw---R--,values=1,min=0,max=16,step=0 : values=9 | dBrange- rangemin=3,,rangemax=72 | rangemin=3,,rangemax=72 | rangemin=3,,rangemax=72 |
Ok, looks like the current implementation is completely broken...
Nope, that's not yet it ...
- while (idx < size) {
- while (size >= 0) {
Should have been while(size > 0) {
print_spaces(spaces + 2);
- printf("rangemin=%i,", tlv[0]);
- printf(",rangemax=%i\n", tlv[1]);
- decode_tlv(spaces + 4, tlv + 2, 6 * sizeof(unsigned int));
- idx += 6 * sizeof(unsigned int);
- printf("rangemin=%i,", tlv[idx++]);
- printf(",rangemax=%i\n", tlv[idx++]);
- decode_tlv(spaces + 4, tlv + idx, 4 * sizeof(unsigned int));
- idx += 4 * sizeof(unsigned int);
Should have been idx += 4;
- size -= 6 * sizeof(unsigned int);
} break; #endif
# amixer cget numid=39 numid=39,iface=MIXER,name='Limiter1 Attack Threshold (DRC Mode)' ; type=INTEGER,access=rw---R--,values=1,min=0,max=16,step=0 : values=9 | dBrange- rangemin=0,,rangemax=7 | dBscale-min=-31.00dB,step=2.00dB,mute=0 rangemin=8,,rangemax=13 | dBscale-min=-16.00dB,step=1.00dB,mute=0 rangemin=14,,rangemax=16 | dBscale-min=-10.00dB,step=3.00dB,mute=0
Great. Thanks a lot!
Daniel