configure.ac: Move OggVorbis Encoder to Encoder Plugins.
[mpd-mk.git] / src / database.h
blob67149b20b195a4661a4eb64992501bf0b7bba192
1 /*
2 * Copyright (C) 2003-2010 The Music Player Daemon Project
3 * http://www.musicpd.org
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 #ifndef MPD_DATABASE_H
21 #define MPD_DATABASE_H
23 #include <glib.h>
25 #include <sys/time.h>
26 #include <stdbool.h>
28 struct directory;
30 /**
31 * Initialize the database library.
33 * @param path the absolute path of the database file
35 void
36 db_init(const char *path);
38 void
39 db_finish(void);
41 /**
42 * Clear the database.
44 void
45 db_clear(void);
47 /**
48 * Returns the root directory object. Returns NULL if there is no
49 * configured music directory.
51 struct directory *
52 db_get_root(void);
54 struct directory *
55 db_get_directory(const char *name);
57 struct song *
58 db_get_song(const char *file);
60 int db_walk(const char *name,
61 int (*forEachSong)(struct song *, void *),
62 int (*forEachDir)(struct directory *, void *), void *data);
64 bool
65 db_check(void);
67 bool
68 db_save(void);
70 bool
71 db_load(GError **error);
73 time_t
74 db_get_mtime(void);
76 /**
77 * Returns true if there is a valid database file on the disk.
79 static inline bool
80 db_exists(void)
82 /* mtime is set only if the database file was loaded or saved
83 successfully */
84 return db_get_mtime() > 0;
87 #endif