#ifndef _RIVE_ADVANCING_COMPONENT_HPP_
#define _RIVE_ADVANCING_COMPONENT_HPP_

#include "rive/advance_flags.hpp"

namespace rive
{
class Component;
class Core;
class AdvancingComponent
{
public:
  virtual bool advanceComponent(
      float elapsedSeconds,
      AdvanceFlags flags = AdvanceFlags::Animate | AdvanceFlags::NewFrame) = 0;

  // Whether advanceComponent would currently do nothing: `quiet` when it
  // would return false having changed nothing, `busy` when it would do work.
  // `never` is for components that can't say, which keeps the artboard
  // hosting them from ever being skipped (see ArtboardComponentList's quiet
  // rows).
  enum class QuietState
  {
    never,
    busy,
    quiet,
  };
  virtual QuietState quietState() { return QuietState::never; }
  static AdvancingComponent* from(Core* component);
};
} // namespace rive

#endif
