/** * Copyright 2014 (c) Anna Schumaker. */ #include static database library_db; library :: library() : li_size(0), li_enabled(false) { } library :: library(const std::string &path) : li_size(0), li_enabled(true), li_path(path) { } const std::string library :: primary_key() const { return li_path; } void library :: read(file &file) { int enabled; gchar *path; file_readf(&file, "%d\n", &enabled); li_enabled = enabled; path = file_readl(&file); li_path = path; g_free(path); } void library :: write(file &file) { file_writef(&file, "%d %s", li_enabled, li_path.c_str()); } const bool library :: enabled() { return li_enabled; } void library :: set_enabled(bool enabled) { li_enabled = enabled; db_save(&library_db); } const unsigned int library :: size() { return li_size; } void library :: inc_size() { li_size++; } void library :: dec_size() { li_size--; } void tags :: init_library_db() { db_init(&library_db, "library.db", true); db_load(&library_db); } struct library *library_find(const std::string &path) { return db_find(&library_db, path.c_str()); } struct library *library_get(const unsigned int index) { return db_at(&library_db, index); } void tags :: remove_library(struct library *library) { if (library) db_remove(&library_db, library); } unsigned int tags :: library_size() { return db_actual_size(&library_db); }