Program Listing for File musicDB.hpp

Return to documentation for file (include/db/musicDB.hpp)

#pragma once
#include <sqlite3.h>
#include <string>
#include <vector>

#include "PDJE_EXPORT_SETTER.hpp"
#include "dbState.hpp"
#include "fileNameSanitizer.hpp"

struct PDJE_API musdata {
  public:
    SANITIZED       title;
    SANITIZED       composer;
    SANITIZED_ORNOT musicPath;
    BIN             bpmBinary;
    double          bpm = -1.0;
    DONT_SANITIZE firstBeat;
    musdata(stmt *dbstate);

    musdata(const UNSANITIZED     &title__     = "",
            const UNSANITIZED     &composer__  = "",
            const SANITIZED_ORNOT &musicPath__ = "",
            const double           bpm__       = -1.0);
    bool
    GenSearchSTMT(stmt &dbstate, sqlite3 *db);

    bool
    GenInsertSTMT(stmt &dbstate, sqlite3 *db);

    bool
    GenEditSTMT(stmt &dbstate, sqlite3 *db, musdata &toEdit);

    bool
    GenDeleteSTMT(stmt &dbstate, sqlite3 *db);
};