2022-05-22 21:15:53 +08:00
|
|
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
|
|
|
// See the LICENCE file in the repository root for full licence text.
|
|
|
|
|
|
|
|
using osu.Framework.Allocation;
|
2022-08-02 16:54:42 +08:00
|
|
|
using osu.Framework.Audio;
|
2022-05-22 21:15:53 +08:00
|
|
|
using osu.Framework.Timing;
|
|
|
|
using osu.Game.Beatmaps.ControlPoints;
|
2022-05-22 21:49:24 +08:00
|
|
|
using osu.Game.Graphics.Containers;
|
2022-05-22 21:15:53 +08:00
|
|
|
|
2022-05-22 21:49:24 +08:00
|
|
|
namespace osu.Game.Beatmaps
|
2022-05-22 21:15:53 +08:00
|
|
|
{
|
|
|
|
/// <summary>
|
|
|
|
/// Provides various data sources which allow for synchronising visuals to a known beat.
|
|
|
|
/// Primarily intended for use with <see cref="BeatSyncedContainer"/>.
|
|
|
|
/// </summary>
|
2022-05-23 01:00:04 +08:00
|
|
|
[Cached]
|
2022-08-02 16:54:42 +08:00
|
|
|
public interface IBeatSyncProvider : IHasAmplitudes
|
2022-05-22 21:15:53 +08:00
|
|
|
{
|
2022-08-02 16:54:42 +08:00
|
|
|
/// <summary>
|
|
|
|
/// Access any available control points from a beatmap providing beat sync. If <c>null</c>, no current provider is available.
|
|
|
|
/// </summary>
|
2022-05-22 21:15:53 +08:00
|
|
|
ControlPointInfo? ControlPoints { get; }
|
|
|
|
|
2022-08-02 16:54:42 +08:00
|
|
|
/// <summary>
|
2023-07-18 12:08:23 +08:00
|
|
|
/// Access a clock currently responsible for providing beat sync.
|
2022-08-02 16:54:42 +08:00
|
|
|
/// </summary>
|
2023-07-13 21:12:55 +08:00
|
|
|
IClock Clock { get; }
|
2022-05-22 21:15:53 +08:00
|
|
|
}
|
|
|
|
}
|