# HG changeset patch # User michaelni # Date 1064780876 0 # Node ID d7bb818768c51b312c38b33dc870cbb7b2485960 # Parent a2930ee10a6bf7f5cf7b7e29c692d01bfa6ff7ce simpler diff -r a2930ee10a6b -r d7bb818768c5 pcm.c --- a/pcm.c Sat Sep 27 00:02:29 2003 +0000 +++ b/pcm.c Sun Sep 28 20:27:56 2003 +0000 @@ -45,19 +45,11 @@ a_val ^= 0x55; - t = (a_val & QUANT_MASK) << 4; + t = a_val & QUANT_MASK; seg = ((unsigned)a_val & SEG_MASK) >> SEG_SHIFT; - switch (seg) { - case 0: - t += 8; - break; - case 1: - t += 0x108; - break; - default: - t += 0x108; - t <<= seg - 1; - } + if(seg) t= (t + t + 1 + 32) << (seg + 2); + else t= (t + t + 1 ) << 3; + return ((a_val & SIGN_BIT) ? t : -t); }