/*
* This file is part of DisOrder
- * Copyright (C) 2005, 2006, 2007 Richard Kettlewell
+ * Copyright (C) 2005-2008 Richard Kettlewell
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#ifndef TRACKDB_H
#define TRACKDB_H
-struct ev_source;
+#include <pcre.h>
+
+#include "event.h"
+#include "rights.h"
extern const struct cache_type cache_files_type;
extern unsigned long cache_files_hits, cache_files_misses;
/* return a list of tracks containing all of the words given. If you
* ask for only stopwords you get no tracks. */
-void trackdb_rescan(struct ev_source *ev);
+void trackdb_rescan(struct ev_source *ev, int recheck,
+ void (*rescanned)(void *ru),
+ void *ru);
/* Start a rescan, if one is not running already */
int trackdb_rescan_cancel(void);
int trackdb_edituserinfo(const char *user,
const char *key, const char *value);
char **trackdb_listusers(void);
-int trackdb_confirm(const char *user, const char *confirmation);
+int trackdb_confirm(const char *user, const char *confirmation,
+ rights_type *rightsp);
+int trackdb_readable(void);
+
+typedef void random_callback(struct ev_source *ev,
+ const char *track);
+int trackdb_request_random(struct ev_source *ev,
+ random_callback *callback);
+void trackdb_add_rescanned(void (*rescanned)(void *ru),
+ void *ru);
+int trackdb_rescan_underway(void);
#endif /* TRACKDB_H */