Logo Search packages:      
Sourcecode: alsa-driver version File versions

tas-basstreble.h

/*
 * This file is only included exactly once!
 *
 * The tables here are derived from the tas3004 datasheet,
 * modulo typo corrections and some smoothing...
 */

#define TAS3004_TREBLE_MIN    0
#define TAS3004_TREBLE_MAX    72
#define TAS3004_BASS_MIN      0
#define TAS3004_BASS_MAX      72
#define TAS3004_TREBLE_ZERO   36
#define TAS3004_BASS_ZERO     36

static u8 tas3004_treble_table[] = {
      150, /* -18 dB */
      149,
      148,
      147,
      146,
      145,
      144,
      143,
      142,
      141,
      140,
      139,
      138,
      137,
      136,
      135,
      134,
      133,
      132,
      131,
      130,
      129,
      128,
      127,
      126,
      125,
      124,
      123,
      122,
      121,
      120,
      119,
      118,
      117,
      116,
      115,
      114, /* 0 dB */
      113,
      112,
      111,
      109,
      108,
      107,
      105,
      104,
      103,
      101,
      99,
      98,
      96,
      93,
      91,
      89,
      86,
      83,
      81,
      77,
      74,
      71,
      67,
      63,
      59,
      54,
      49,
      44,
      38,
      32,
      26,
      19,
      10,
      4,
      2,
      1, /* +18 dB */
};

static inline u8 tas3004_treble(int idx)
{
      return tas3004_treble_table[idx];
}

/* I only save the difference here to the treble table
 * so that the binary is smaller...
 * I have also ignored completely differences of
 * +/- 1
 */
static s8 tas3004_bass_diff_to_treble[] = {
      2, /* 7 dB, offset 50 */
      2,
      2,
      2,
      2,
      1,
      2,
      2,
      2,
      3,
      4,
      4,
      5,
      6,
      7,
      8,
      9,
      10,
      11,
      14,
      13,
      8,
      1, /* 18 dB */
};

static inline u8 tas3004_bass(int idx)
{
      u8 result = tas3004_treble_table[idx];

      if (idx >= 50)
            result += tas3004_bass_diff_to_treble[idx-50];
      return result;
}

Generated by  Doxygen 1.6.0   Back to index