/** * Copyright 2014 (c) Anna Schumaker. */ extern "C" { #include } #include static database artist_db; artist :: artist() {} artist :: artist(const std::string &name) { gchar *lower = string_lowercase(name.c_str()); ar_name = name; ar_lower = lower; g_free(lower); } const std::string artist :: primary_key() const { return ar_name; } void artist :: read(file &file) { gchar *name = file_readl(&file); gchar *g_lc = string_lowercase(name); ar_name = name; ar_lower = g_lc; g_free(name); g_free(g_lc); } void artist :: write(file &file) { file_writef(&file, "%s", ar_name.c_str()); } void artist_db_init() { db_init(&artist_db, "artist.db", true); db_load(&artist_db); } void artist_db_deinit() { db_deinit(&artist_db); } struct artist *artist_find(const std::string &name) { return db_find(&artist_db, name.c_str()); } struct artist *artist_get(const unsigned int index) { return db_at(&artist_db, index); } int artist_compare(struct artist *lhs, struct artist *rhs) { return string_compare(lhs->ar_lower.c_str(), rhs->ar_lower.c_str()); }