#pragma once

#include <vector>
#include <memory>
#include <string>
#include "MidiEvent.h"

class MidiEvent;
using MidiEventPtr = std::unique_ptr<MidiEvent>;

class MidiTrack
{
public:

    MidiTrack();

    ~MidiTrack();

    void AddEvent(MidiEventPtr event);

    MidiEvent* GetEvent(std::size_t idx) const;

    std::size_t GetNumEvents();

    std::string Serialize() const;

private:

    std::vector<MidiEventPtr> mEvents;
};
