From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/Plugins/Library/ml_local/db.h | 64 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 Src/Plugins/Library/ml_local/db.h (limited to 'Src/Plugins/Library/ml_local/db.h') diff --git a/Src/Plugins/Library/ml_local/db.h b/Src/Plugins/Library/ml_local/db.h new file mode 100644 index 00000000..76b2eca0 --- /dev/null +++ b/Src/Plugins/Library/ml_local/db.h @@ -0,0 +1,64 @@ +#ifndef NULLSOT_LOCALMEDIA_DB_H +#define NULLSOT_LOCALMEDIA_DB_H + +#define MAINTABLE_ID_FILENAME 0 +#define MAINTABLE_ID_TITLE 1 +#define MAINTABLE_ID_ARTIST 2 +#define MAINTABLE_ID_ALBUM 3 +#define MAINTABLE_ID_YEAR 4 +#define MAINTABLE_ID_GENRE 5 +#define MAINTABLE_ID_COMMENT 6 +#define MAINTABLE_ID_TRACKNB 7 +#define MAINTABLE_ID_LENGTH 8 //in seconds +#define MAINTABLE_ID_TYPE 9 //0=audio, 1=video +#define MAINTABLE_ID_LASTUPDTIME 10 // last time (seconds since 1970) of db update of this item +#define MAINTABLE_ID_LASTPLAY 11 // last time (seconds since 1970) of last play +#define MAINTABLE_ID_RATING 12 +#define MAINTABLE_ID_GRACENOTE_ID 14 +#define MAINTABLE_ID_PLAYCOUNT 15 // play count +#define MAINTABLE_ID_FILETIME 16 // file time +#define MAINTABLE_ID_FILESIZE 17 // file size, kilobytes +#define MAINTABLE_ID_BITRATE 18 // file bitratea, kbps + +#include "../nde/nde.h" +#include +#include + +// DataBase manipulations +class DB +{ +// construcotrs +public: + DB(); + ~DB(); + +// methods +public: + int Open(); + int Close(); + int Nuke(); + int AddColumn(char* metaKey, int type); // returns index of the new column or -1 on error +private: + BOOL Discover(void); + void ClearMap(void); + + +// properties +public: + void SetTableDir(const char* tableDir); + const char* GetTableDir(); + int GetColumnsCount(); + int GetColumnId(char *metaKey); // returns index of the column or -1 if can't find + +// fields +private: + char * tableDir; + Database db; + Table *table; + Scanner *sc; + + std::map< std::string, int> columnsMap; + +}; + +#endif //NULLSOT_LOCALMEDIA_DB_H \ No newline at end of file -- cgit