src/mixer.cpp
changeset 9643 685360d6f6a9
parent 9632 d5d9088b10d8
equal deleted inserted replaced
9642:0a700db0611c 9643:685360d6f6a9
    58 
    58 
    59 	if (frac_speed == 0x10000) {
    59 	if (frac_speed == 0x10000) {
    60 		/* Special case when frac_speed is 0x10000 */
    60 		/* Special case when frac_speed is 0x10000 */
    61 		do {
    61 		do {
    62 			buffer[0] = Clamp(buffer[0] + (*b * volume_left  >> 8), -MAX_VOLUME, MAX_VOLUME);
    62 			buffer[0] = Clamp(buffer[0] + (*b * volume_left  >> 8), -MAX_VOLUME, MAX_VOLUME);
    63 			buffer[0] = Clamp(buffer[1] + (*b * volume_right >> 8), -MAX_VOLUME, MAX_VOLUME);
    63 			buffer[1] = Clamp(buffer[1] + (*b * volume_right >> 8), -MAX_VOLUME, MAX_VOLUME);
    64 			b++;
    64 			b++;
    65 			buffer += 2;
    65 			buffer += 2;
    66 		} while (--samples > 0);
    66 		} while (--samples > 0);
    67 	} else {
    67 	} else {
    68 		do {
    68 		do {
    69 			buffer[0] = Clamp(buffer[0] + (*b * volume_left  >> 8), -MAX_VOLUME, MAX_VOLUME);
    69 			buffer[0] = Clamp(buffer[0] + (*b * volume_left  >> 8), -MAX_VOLUME, MAX_VOLUME);
    70 			buffer[0] = Clamp(buffer[1] + (*b * volume_right >> 8), -MAX_VOLUME, MAX_VOLUME);
    70 			buffer[1] = Clamp(buffer[1] + (*b * volume_right >> 8), -MAX_VOLUME, MAX_VOLUME);
    71 			buffer += 2;
    71 			buffer += 2;
    72 			frac_pos += frac_speed;
    72 			frac_pos += frac_speed;
    73 			b += frac_pos >> 16;
    73 			b += frac_pos >> 16;
    74 			frac_pos &= 0xffff;
    74 			frac_pos &= 0xffff;
    75 		} while (--samples > 0);
    75 		} while (--samples > 0);