library: Create a function for enabling and disabling paths
I also update the deck tests, since this is where changes will show up. Signed-off-by: Anna Schumaker <schumaker.anna@gmail.com>
This commit is contained in:
parent
ae91d33baa
commit
f51ba3e3ec
|
@ -179,6 +179,10 @@ Library: (lib/library.cpp)
|
|||
Update all library paths.
|
||||
Trigger the on_library_update() callback for each path.
|
||||
|
||||
void library :: set_enabled(unsigned int id, bool enabled);
|
||||
Either enable or disable a library path. Trigger
|
||||
on_library_track_del() for each track disabled this way.
|
||||
|
||||
struct Song library :: lookup(track_id);
|
||||
Fill out a Song structure for the provided track_id.
|
||||
Throw -EEXIST if there is no track mapping to track_id.
|
||||
|
|
|
@ -121,6 +121,7 @@ namespace library
|
|||
void del_path(unsigned int);
|
||||
void update_path(unsigned int);
|
||||
void update_all();
|
||||
void set_enabled(unsigned int, bool);
|
||||
void lookup(unsigned int, library :: Song *);
|
||||
Library *lookup_path(unsigned int);
|
||||
void import();
|
||||
|
|
|
@ -510,6 +510,23 @@ void library :: update_all()
|
|||
update_path(i);
|
||||
}
|
||||
|
||||
void library :: set_enabled(unsigned int id, bool enabled)
|
||||
{
|
||||
unsigned int t;
|
||||
|
||||
library_db[id].enabled = enabled;
|
||||
library_db.save();
|
||||
|
||||
for (t = track_db.first(); t < track_db.num_rows(); t = track_db.next(t)) {
|
||||
if (track_db[t].library_id == id) {
|
||||
if (enabled)
|
||||
get_callbacks()->on_library_track_add(t);
|
||||
else
|
||||
get_callbacks()->on_library_track_del(t);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void library :: lookup(unsigned int id, library :: Song *song)
|
||||
{
|
||||
if (id >= track_db.num_rows())
|
||||
|
|
|
@ -133,6 +133,15 @@ int main(int argc, char **argv)
|
|||
test_4();
|
||||
test_5();
|
||||
|
||||
print("Disabling library path\n");
|
||||
library :: set_enabled(0, false);
|
||||
print("Library size: %u\n", deck :: get_library_pq()->size());
|
||||
|
||||
print("Enabling library path\n");
|
||||
library :: set_enabled(0, true);
|
||||
print("Library size: %u\n", deck :: get_library_pq()->size());
|
||||
|
||||
print("Deleting library path\n");
|
||||
library :: del_path(0);
|
||||
while (idle :: run_task());
|
||||
print("Library size: %u\n", deck :: get_library_pq()->size());
|
||||
|
|
|
@ -125,4 +125,9 @@ Reading back playqueue deck
|
|||
deck[0] = Playqueue { size = 16, flags = 0 }
|
||||
deck[1] = Playqueue { size = 19, flags = 1 }
|
||||
deck[2] = Playqueue { size = 15, flags = 3 }
|
||||
Disabling library path
|
||||
Library size: 0
|
||||
Enabling library path
|
||||
Library size: 150
|
||||
Deleting library path
|
||||
Library size: 0
|
||||
|
|
|
@ -262,6 +262,24 @@ void test_7()
|
|||
library :: import();
|
||||
run_idle_tasks();
|
||||
library :: print_db(library :: DB_LIBRARY);
|
||||
print("\n");
|
||||
}
|
||||
|
||||
/* Test disabling libraries */
|
||||
void test_8()
|
||||
{
|
||||
library :: reset();
|
||||
|
||||
test_add_dir("8a", "/tmp/library/0", true);
|
||||
print("\n");
|
||||
library :: set_enabled(0, false);
|
||||
library :: print_db(library :: DB_LIBRARY);
|
||||
library :: set_enabled(0, true);
|
||||
library :: print_db(library :: DB_LIBRARY);
|
||||
library :: set_enabled(0, false);
|
||||
library :: print_db(library :: DB_LIBRARY);
|
||||
library :: set_enabled(0, true);
|
||||
library :: print_db(library :: DB_LIBRARY);
|
||||
}
|
||||
|
||||
|
||||
|
@ -282,5 +300,6 @@ int main(int argc, char **argv)
|
|||
test_5();
|
||||
test_6();
|
||||
test_7();
|
||||
test_8();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -2668,3 +2668,37 @@ Valid rows: 3
|
|||
db[0] = /tmp/library/2 (enabled), size = 150
|
||||
db[1] = /tmp/library/3 (enabled), size = 150
|
||||
db[2] = /tmp/library/4 (enabled), size = 150
|
||||
|
||||
Test 8a: Added library 0: /tmp/library/0
|
||||
PASSED
|
||||
Updated library 0: /tmp/library/0 (size: 10)
|
||||
Updated library 0: /tmp/library/0 (size: 20)
|
||||
Updated library 0: /tmp/library/0 (size: 30)
|
||||
Updated library 0: /tmp/library/0 (size: 40)
|
||||
Updated library 0: /tmp/library/0 (size: 50)
|
||||
Updated library 0: /tmp/library/0 (size: 60)
|
||||
Updated library 0: /tmp/library/0 (size: 70)
|
||||
Updated library 0: /tmp/library/0 (size: 80)
|
||||
Updated library 0: /tmp/library/0 (size: 90)
|
||||
Updated library 0: /tmp/library/0 (size: 100)
|
||||
Updated library 0: /tmp/library/0 (size: 110)
|
||||
Updated library 0: /tmp/library/0 (size: 120)
|
||||
Updated library 0: /tmp/library/0 (size: 130)
|
||||
Updated library 0: /tmp/library/0 (size: 140)
|
||||
Updated library 0: /tmp/library/0 (size: 150)
|
||||
Allocated rows: 1
|
||||
Valid rows: 1
|
||||
db[0] = /tmp/library/0 (enabled), size = 150
|
||||
|
||||
Allocated rows: 1
|
||||
Valid rows: 1
|
||||
db[0] = /tmp/library/0 (disabled), size = 150
|
||||
Allocated rows: 1
|
||||
Valid rows: 1
|
||||
db[0] = /tmp/library/0 (enabled), size = 150
|
||||
Allocated rows: 1
|
||||
Valid rows: 1
|
||||
db[0] = /tmp/library/0 (disabled), size = 150
|
||||
Allocated rows: 1
|
||||
Valid rows: 1
|
||||
db[0] = /tmp/library/0 (enabled), size = 150
|
||||
|
|
Loading…
Reference in New Issue