core/collection: Move file reading code into collection_init()
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
This commit is contained in:
parent
79af4513b0
commit
ffa12a2c38
|
@ -10,39 +10,8 @@ extern "C" {
|
||||||
#include <glib.h>
|
#include <glib.h>
|
||||||
|
|
||||||
|
|
||||||
class LibraryQueue : public queue {
|
static struct queue library_q;
|
||||||
private:
|
static struct file c_file;
|
||||||
file f;
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
LibraryQueue()
|
|
||||||
{
|
|
||||||
file_init(&f, "library.q", 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void load()
|
|
||||||
{
|
|
||||||
unsigned int field;
|
|
||||||
int ascending;
|
|
||||||
unsigned int n;
|
|
||||||
|
|
||||||
if (!file_open(&f, OPEN_READ))
|
|
||||||
return;
|
|
||||||
|
|
||||||
file_readf(&f, "%u %u", &q_flags, &n);
|
|
||||||
for (unsigned int i = 0; i < n; i++) {
|
|
||||||
file_readf(&f, "%u %d", &field, &ascending);
|
|
||||||
queue_sort(this, (compare_t)(field + 1), (i == 0) ? true : false);
|
|
||||||
if (ascending == false)
|
|
||||||
queue_sort(this, (compare_t)(field + 1), false);
|
|
||||||
}
|
|
||||||
file_close(&f);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
static LibraryQueue library_q;
|
|
||||||
static struct file c_file;
|
|
||||||
|
|
||||||
struct scan_info {
|
struct scan_info {
|
||||||
struct library *library;
|
struct library *library;
|
||||||
|
@ -125,10 +94,11 @@ static void validate_library(void *data)
|
||||||
/*
|
/*
|
||||||
* External API begins here
|
* External API begins here
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void collection_init(struct queue_ops *ops)
|
void collection_init(struct queue_ops *ops)
|
||||||
{
|
{
|
||||||
struct db_entry *track, *next;
|
struct db_entry *track, *next;
|
||||||
|
unsigned int i, n = 0;
|
||||||
|
int field, ascending;
|
||||||
|
|
||||||
file_init(&c_file, "library.q", 0);
|
file_init(&c_file, "library.q", 0);
|
||||||
queue_init(&library_q, Q_ENABLED | Q_REPEAT | Q_ADD_FRONT, ops);
|
queue_init(&library_q, Q_ENABLED | Q_REPEAT | Q_ADD_FRONT, ops);
|
||||||
|
@ -139,7 +109,18 @@ void collection_init(struct queue_ops *ops)
|
||||||
}
|
}
|
||||||
queue_unset_flag(&library_q, Q_ADD_FRONT);
|
queue_unset_flag(&library_q, Q_ADD_FRONT);
|
||||||
|
|
||||||
library_q.load();
|
if (file_open(&c_file, OPEN_READ))
|
||||||
|
file_readf(&c_file, "%u %u", &library_q.q_flags, &n);
|
||||||
|
|
||||||
|
for (i = 0; i < n; i++) {
|
||||||
|
file_readf(&c_file, "%u %d", &field, &ascending);
|
||||||
|
queue_sort(&library_q, (compare_t)(field + 1),
|
||||||
|
(i == 0) ? true : false);
|
||||||
|
if (ascending == false)
|
||||||
|
queue_sort(&library_q, (compare_t)(field + 1), false);
|
||||||
|
}
|
||||||
|
file_close(&c_file);
|
||||||
|
|
||||||
if (!library_q.q_sort) {
|
if (!library_q.q_sort) {
|
||||||
queue_sort(&library_q, COMPARE_ARTIST, true);
|
queue_sort(&library_q, COMPARE_ARTIST, true);
|
||||||
queue_sort(&library_q, COMPARE_YEAR, false);
|
queue_sort(&library_q, COMPARE_YEAR, false);
|
||||||
|
|
Loading…
Reference in New Issue