Example #1
0
void
snapper_set_volume(struct snapper_softc *sc, int left, int right)
{
	u_char vol[6];
	int nentries = sizeof(snapper_volumetab) / sizeof(snapper_volumetab[0]);
	int l, r;

	sc->sc_vol_l = left;
	sc->sc_vol_r = right;

	l = nentries - (left * nentries / 256);
	r = nentries - (right * nentries / 256);

	DPRINTF(" left %d vol %d %d, right %d vol %d %d\n",
		left, l, nentries,
		right, r, nentries);
	if (l >= nentries)
		l = nentries-1;
	if (r >= nentries)
		r = nentries-1;

	vol[0] = snapper_volumetab[l].high;
	vol[1] = snapper_volumetab[l].mid;
	vol[2] = snapper_volumetab[l].low;
	vol[3] = snapper_volumetab[r].high;
	vol[4] = snapper_volumetab[r].mid;
	vol[5] = snapper_volumetab[r].low;

	tas3004_write(sc, DEQ_VOLUME, vol);
}
Example #2
0
void
snapper_set_treble(struct snapper_softc *sc, int value)
{
	uint8_t reg;

	if ((value >= 0) && (value <= 255) && (value != sc->sc_treble)) {
		reg = snapper_trebletab[(value >> 3) + 2];
		if (tas3004_write(sc, DEQ_TREBLE, &reg) < 0)
			return;
		sc->sc_treble = value;
	}
Example #3
0
void
snapper_set_volume(struct snapper_softc *sc, int left, int right)
{
	u_char vol[6];

	sc->sc_vol_l = left;
	sc->sc_vol_r = right;

	left <<= 8;	/* XXX for now */
	right <<= 8;

	vol[0] = left >> 16;
	vol[1] = left >> 8;
	vol[2] = left;
	vol[3] = right >> 16;
	vol[4] = right >> 8;
	vol[5] = right;

	tas3004_write(sc, DEQ_VOLUME, vol);
}