#pragma once

#include "core/inputtype.h"
#include <vector>
#include <memory>

class ClassicArrowNote;
class ClassicGraphicsManager;

class HoldManager
{
public:
    explicit HoldManager(const std::shared_ptr<ClassicGraphicsManager>& graphics_manager);
    void emplace(ClassicArrowNote* note);
    void checkRelease(sf::Keyboard::Key released_key);

    void drawHoldBar();

private:
    std::vector<ClassicArrowNote*> _notes_on_hold;
    std::shared_ptr<ClassicGraphicsManager> _graphics_manager;
};