#pragma once

#include <vector>
#include <SFML/System/Clock.hpp>

using microsec = sf::Int64;

class Note
{
public:
    explicit Note(microsec perfect_offset) :
        _perfect_offset(perfect_offset) {}
    virtual ~Note() = 0;

    virtual bool isActive(microsec music_offset) const = 0;

    virtual microsec offset() const
    {
        return _perfect_offset;
    }

protected:
    microsec _perfect_offset;
};