예제 #1
0
 /// <summary>
 ///     Sets the loop points within the channel.
 /// </summary>
 /// <param name="points">A <see cref="LoopPoints" /> instance describing the points.</param>
 /// <remarks>
 ///     <para>
 ///         If a sound was 44100 samples long and you wanted to loop the whole sound, the loop start would be <c>0</c>,
 ///         and the loop end would be 44099, <i>not</i> 44100. You wouldn't use milliseconds in this case because they are
 ///         not sample accurate.
 ///     </para>
 ///     <para>
 ///         <i>Issues with streamed audio:</i>
 ///     </para>
 ///     <para>
 ///         When changing the loop count, sounds created with <see cref="O:FMOD.NET.Core.FmodSystem.CreateStream" /> or
 ///         <see cref="FMOD.NET.Enumerations.Mode.CreateStream" /> may have already been pre-buffered and executed their
 ///         loop
 ///         logic ahead of time before this call was even made. This is dependant on the size of the sound versus the size
 ///         of the stream decode buffer (see <see cref="CreateSoundExInfo" />). If this happens, you may need to reflush
 ///         the stream buffer by calling <see cref="SetPosition" />. Note this will usually only happen if you have sounds
 ///         or loop points that are smaller than the stream decode buffer size.
 ///     </para>
 /// </remarks>
 /// <seealso cref="O:FMOD.NET.Core.Channel.GetLoopPoints" />
 /// <seealso cref="LoopPoints" />
 /// <seealso cref="TimeUnit" />
 /// <seealso cref="O:FMOD.NET.Core.FmodSystem.CreateStream" />
 /// <seealso cref="Enumerations.Mode" />
 public void SetLoopPoints(LoopPoints points)
 {
     SetLoopPoints(points.LoopStart, points.LoopEnd, points.StartTimeUnit, points.EndTimeUnit);
 }
예제 #2
0
 private static extern void buffer_setLoopPoints(IntPtr dm, LoopPoints points, ref IntPtr exceptionPointer);