rem: (sint32)cur_time - total_length;
add: (sint32)cur_time - total_length - 1;
context: FastForward_Smooth (){	if (sound_sample)	{		sint32 offset;		uint32 cur_time;		sint32 total_length = (sint32)((last_chain->start_time + 				last_chain->decoder->length) * (float)ONE_SECOND);		LockMutex (soundSource[SPEECH_SOURCE].stream_mutex);		PauseStream (SPEECH_SOURCE);		cur_time = GetTimeCounter();		soundSource[SPEECH_SOURCE].start_time -= ACCEL_SCROLL_SPEED;		if ((sint32)cur_time - soundSource[SPEECH_SOURCE].start_time > total_length)			soundSource[SPEECH_SOURCE].start_time = 				(sint32)cur_time - total_length;		offset = cur_time - soundSource[SPEECH_SOURCE].start_time;		track_pos_changed = 1;		recompute_track_pos(sound_sample, first_chain, offset);		UnlockMutex (soundSource[SPEECH_SOURCE].stream_mutex);		PlayingTrack();	}}