/// <summary> /// /// </summary> /// <returns></returns> protected override void _Next(TState state) { if (!Left.IsReady(state.left) || !Right.IsReady(state.right)) { if (!Left.IsReady(state.left)) { Left.Next(state.left); } if (!Right.IsReady(state.right)) { Right.Next(state.right); } } else { if (Left.GetOtherTime(state.left) < Right.GetOtherTime(state.right)) { Left.Next(state.left); } else if (Left.GetOtherTime(state.left) >= Right.GetOtherTime(state.right)) { Right.Next(state.right); } } ProcessNextItem(state); }
/// <summary> /// /// </summary> /// <returns></returns> protected override long _GetOtherTime(TState state) => Stream.GetOtherTime(state.i);