Commit Graph

245 Commits

Author SHA1 Message Date
Anna Schumaker
8128e5b5e1 tests: Remove unused testing options
I never really did anything with cppcheck or gcov, so I'm removing these
options.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-11-01 20:25:56 -04:00
Anna Schumaker
159f6098f3 tests: Reenable valgrind support
This lets me remove the unused OTest class which I was keeping around
for reference.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-11-01 20:25:56 -04:00
Anna Schumaker
97733aa40a tests: Create common functions for building tests
This continues to simplify my Sconscript files.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-11-01 20:25:56 -04:00
Anna Schumaker
89498ccc9e tests: Rewrite how lib tests are run
Similar to how core tests were just rewritten, only applied to lib.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-11-01 20:25:56 -04:00
Anna Schumaker
7faa895b22 tests: Rewrite how core tests are run
My old testing system was rather convoluted.  This patch makes the
Sconscript file easier to follow.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-11-01 20:25:56 -04:00
Anna Schumaker
e6e9fb08d0 Time to begin work on Ocarina 6.3!
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-11-01 20:25:55 -04:00
Anna Schumaker
c9cabb78f1 colmgr: Make sure banned tracks are removed when reenabling a library
This issue was solved in Ocarina 6.1.3, but I didn't add a unit test for
it.  This patch adds a test.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-08-19 08:57:36 -04:00
Anna Schumaker
412dc67e1f Merge branch 'master' into Ocarina-next
Conflicts:
	Sconstruct
	gui/collection_mgr.cpp
2014-08-19 08:08:55 -04:00
Anna Schumaker
8fd5d8173e filter: Clear the result set before filtering
Ocarina was preserving the results set even if there were 0 search
results for the entire search string.  So a search for "walllllll" would
still return results for "wall".

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-08-12 10:23:33 -04:00
Anna Schumaker
be72339b2d filter: Check for empty results when filtering
The user could search for a term that isn't stored in the filter index.
This is represented through a NULL pointer returned from the
Index.find() function.  Let's check this pointer before attempting to
dereference it ...

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-08-12 09:59:00 -04:00
Anna Schumaker
32bb1c670b model: Create a basic unit test
This test doesn't catch everything, but I want to move on anyway!

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-29 11:40:15 -04:00
Anna Schumaker
77616aa8d2 Merge branch 'master' into Ocarina-next
Conflicts:
	Sconstruct
	tests/Sconscript
2014-06-26 17:04:58 -04:00
Anna Schumaker
9d8455001f gen_library.sh: Only copy .ogg files
This excludes the invalid_track file I just added.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-22 12:59:28 -04:00
Anna Schumaker
e274d6399b tags: Fix when library->count is modified
Whenever a Track is destructed, library->count is decremented.  This
means that even if tagging fails we need to increment library->count to
keep this value consistent.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-22 12:59:27 -04:00
Anna Schumaker
a74eaaffa6 tags: Check that a Track was tagged correctly
Without this check we could end up creating a Track for a .ini file or
some other non-audio file.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-22 12:35:08 -04:00
Anna Schumaker
d74d1ea634 Prepare for a bugfix release
Looks like I'll need to release a 6.1.1 soon

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-22 12:35:08 -04:00
Anna Schumaker
80bed8b956 collection manager: Rename widgets in the glade file
o_collection_* was easily confused with widgets on the collection tab,
so I renamed everything to be less confusing.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-22 11:19:05 -04:00
Anna Schumaker
3d067878f2 colmgr: Add a function for updating a specific path
On the gui end, call this function when a row in the "collected paths"
list is double-clicked.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-22 10:14:23 -04:00
Anna Schumaker
a5f47e46a8 colmgr: Move some collection manager code into lib/
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-21 12:27:34 -04:00
Anna Schumaker
194a09bed4 lib: Initialize the GtkBuilder from the middle layer
This will provide an interface for accessing widgets, and make it easier
to swap out different builder files.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-15 11:31:04 -04:00
Anna Schumaker
4ed36c79df lib: Add support for looking up files from share/ocarina/
I replace the /proc/self/exe method with a simple hard-coded string.
This means that binaries run from the source directory need to be run
from the root of the source directory.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-15 10:12:55 -04:00
Anna Schumaker
f2575d9799 tests: Add a test for lib :: init()
This just checks that the deck was initialized.  To really be complete,
it should really check that ALL core libraries are initialized.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-14 20:43:54 -04:00
Anna Schumaker
c88746d2da tests: Create a core/ directory
I move all of the core tests into the core/ directory to keep them
together.  Gui unit tests will be put in new directories.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-14 11:15:21 -04:00
Anna Schumaker
00ff9cd08f playlist: Fix a null pointer dereference in init()
This happens if we try to use the Banned playlist before it exists in
the database.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-06 08:21:56 -04:00
Anna Schumaker
9e3399b619 deck: Reintroduce deck :: get()
This function turned out to be really useful for the gui.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-05 11:05:19 -04:00
Anna Schumaker
eb777c04f1 Add missing deck file for tests
The .gitignore was set up to ignore this, so it was never included.
Oops.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-05 10:42:41 -04:00
Anna Schumaker
12c6f18540 Remove old deck test
This should have been removed a long time ago ...

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-05 10:35:14 -04:00
Anna Schumaker
95064e4537 Rename lib/ -> core/
I plan to introduce a new lib/ that sits between the gui and the backend
files (similar to how glibc sits between the kernel and userspace).
This gets the rename out of the way before I change my mind again.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-05 10:21:32 -04:00
Anna Schumaker
87af56ba85 Header file roundup
Create include/lib/ and include/gui/.  Move header files into the
appropriate directory.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-04 13:59:42 -04:00
Anna Schumaker
1bfa299e08 audio: Update the code to match the design
This patch reworks the unit test using the TestDriver audio driver.  I
also recode the audio layer to match the design and drastically clean up
the code.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-01 17:53:41 -04:00
Anna Schumaker
b8ea2c989d deck: Fix a segfault when calling next()
This can only be hit when the tagdb has no tracks in it, since you can't
add a NULL pointer to the recent queue.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-01 09:39:30 -04:00
Anna Schumaker
1cacbf51e7 driver: Move Gst code into the GstDriver
This would have to happen eventually.  Might as well do it now!

I also updated the TestDriver test to match the changes I had to make.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-31 21:11:57 -04:00
Anna Schumaker
edc4a2f4ee driver: Create an audio driver class
The driver is used to select between gstreamer playback and a fake
playback mode used only when testing.

Currently the GSTDriver has empty functions.  It will be implemented as
the audio.cpp file is updated.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-31 13:27:20 -04:00
Anna Schumaker
f8f389c7ed deck: Create TempQueues
TempQueues create a way to trigger deck :: write() whenever a queue
changes.  This means higher layers don't need to remember to save after
changes!

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-31 09:11:04 -04:00
Anna Schumaker
211d240484 deck: Rework the deck code
I update the unit test and redo much of the code to be cleaner and make
more sense.  One big improvement is that the recently played queue will
now be managed by the deck.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-26 22:20:55 -04:00
Anna Schumaker
a385727206 tests: Move sample files into the Data/ directory
Keeping separate directories for all of these files isn't the most
obvious way to do things.  Instead, move everything into the same
directory.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-26 19:12:14 -04:00
Anna Schumaker
a96e6f6f2d file: Set version number on a per-file basis
I'm about to bump the version number for the deck layer, so it makes
senes that different files need different version numbers.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-26 12:14:28 -04:00
Anna Schumaker
e4db93b8e2 playlist: Remove banned songs from the library queue
And put them back when they are unbanned.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-24 13:32:03 -04:00
Anna Schumaker
208e53c7e9 library: Update the code and unit test
Lots of changes here!  I switched from using track and library ids to
passing pointers, renamed some functions, and made the code much
cleaner.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-24 12:48:47 -04:00
Anna Schumaker
59220cc2ce tags: Add Track->played()
This function is called to increment play count and set "date last
played" variables.  Moving this into the Track class lets me remove an
internal callback and a few other unnecessary functions.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-23 21:53:36 -04:00
Anna Schumaker
53f0c2a6aa testing: Add gcov and cppcheck tests
It doesn't hurt to run even more tests on the code!

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-20 17:25:03 -04:00
Anna Schumaker
11df56139d playlist: Update the design and unit test
I updated the code to better match how I use playlists and to make sure
that everything is tested.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-18 21:34:14 -04:00
Anna Schumaker
f6306faac8 queue: Remove old unit test
Also take a few moments to update the DESIGN.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-18 14:46:14 -04:00
Anna Schumaker
b9e5ce3356 queue: Update reand and write code
And update the unit test at the same time.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-18 14:39:41 -04:00
Anna Schumaker
869d67558e queue: Update the track_selected code
I also put in other fixes to the unit test to make test_equal work.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-18 14:25:29 -04:00
Anna Schumaker
9a5caa29b3 queue: Update sorting code
I now have a single function rather than 4 individual functions.  The
code is cleaner, and I've added it to the unit test.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-18 14:12:16 -04:00
Anna Schumaker
124f275ffd queue: Update the next() function
I also added in code for testing.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-18 11:17:32 -04:00
Anna Schumaker
6dc8bf7329 random: Use a different RNG for testing
This RNG is more predictable, which makes it great for testing.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-18 11:10:29 -04:00
Anna Schumaker
7aa5f22777 Add valgrind support to testing
To help find memory leaks!

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-14 17:49:03 -04:00
Anna Schumaker
bcfa735dd7 queue: Fix up the length_str() function
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-11 19:56:17 -04:00