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.
|
Update all library paths.
|
||||||
Trigger the on_library_update() callback for each path.
|
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);
|
struct Song library :: lookup(track_id);
|
||||||
Fill out a Song structure for the provided track_id.
|
Fill out a Song structure for the provided track_id.
|
||||||
Throw -EEXIST if there is no track mapping to 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 del_path(unsigned int);
|
||||||
void update_path(unsigned int);
|
void update_path(unsigned int);
|
||||||
void update_all();
|
void update_all();
|
||||||
|
void set_enabled(unsigned int, bool);
|
||||||
void lookup(unsigned int, library :: Song *);
|
void lookup(unsigned int, library :: Song *);
|
||||||
Library *lookup_path(unsigned int);
|
Library *lookup_path(unsigned int);
|
||||||
void import();
|
void import();
|
||||||
|
|
|
@ -510,6 +510,23 @@ void library :: update_all()
|
||||||
update_path(i);
|
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)
|
void library :: lookup(unsigned int id, library :: Song *song)
|
||||||
{
|
{
|
||||||
if (id >= track_db.num_rows())
|
if (id >= track_db.num_rows())
|
||||||
|
|
|
@ -133,6 +133,15 @@ int main(int argc, char **argv)
|
||||||
test_4();
|
test_4();
|
||||||
test_5();
|
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);
|
library :: del_path(0);
|
||||||
while (idle :: run_task());
|
while (idle :: run_task());
|
||||||
print("Library size: %u\n", deck :: get_library_pq()->size());
|
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[0] = Playqueue { size = 16, flags = 0 }
|
||||||
deck[1] = Playqueue { size = 19, flags = 1 }
|
deck[1] = Playqueue { size = 19, flags = 1 }
|
||||||
deck[2] = Playqueue { size = 15, flags = 3 }
|
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
|
Library size: 0
|
||||||
|
|
|
@ -262,6 +262,24 @@ void test_7()
|
||||||
library :: import();
|
library :: import();
|
||||||
run_idle_tasks();
|
run_idle_tasks();
|
||||||
library :: print_db(library :: DB_LIBRARY);
|
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_5();
|
||||||
test_6();
|
test_6();
|
||||||
test_7();
|
test_7();
|
||||||
|
test_8();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2668,3 +2668,37 @@ Valid rows: 3
|
||||||
db[0] = /tmp/library/2 (enabled), size = 150
|
db[0] = /tmp/library/2 (enabled), size = 150
|
||||||
db[1] = /tmp/library/3 (enabled), size = 150
|
db[1] = /tmp/library/3 (enabled), size = 150
|
||||||
db[2] = /tmp/library/4 (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