musix 0.3.5

Music player library for esoteric audio formats (music from C64,Amiga etc)
Documentation
#pragma once

#include <string>
#include <unordered_map>
#include <vector>

struct SongInfo
{
    explicit SongInfo(std::string const& path = "",
                      std::string const& game = "",
                      std::string const& title = "",
                      std::string const& composer = "",
                      std::string const& format = "",
                      std::string const& info = "")
        : path(path), game(game), title(title), composer(composer),
          format(format), metadata{info, ""}
    {
        auto pos = path.find_last_of(';');
        if (pos != std::string::npos) {
            auto s = path.substr(pos + 1);
            if (s.size() < 3) {
                starttune = stoi(s);
                this->path = path.substr(0, pos);
            }
        }
    }

    enum
    {
        INFO,
        SCREENSHOT
    };

    bool operator==(const SongInfo& other) const
    {
        return path == other.path && starttune == other.starttune;
    }

    std::string path;
    std::string game;
    std::string title;
    std::string composer;
    std::string format;
    std::vector<std::string> metadata;

    int numtunes = 0;
    int starttune = -1;
};