Commit Graph

727 Commits

Author SHA1 Message Date
Anna Schumaker 97a8646977 plist: Move liststore into lib/
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-07-27 11:25:12 -04:00
Anna Schumaker 09af8d81d2 model: Move the custom TreeModel from gui/ to lib/
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-29 10:48:23 -04:00
Anna Schumaker b516afe832 core: Create a single init() function
Initialize everything from the core/ layer, that way lib/ doesn't need
to know the correct order.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-29 10:36:55 -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 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 76f0b7b55f lib: Move keyval parsing into lib/
I'll eventually add in checks for keypad vs top row number keys.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-22 11:42:01 -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 9ea0fd4f29 core: Update include file #ifndef guards
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-21 09:49:07 -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 5b3f8b13e0 lib: Initialize core libraries from a new middle layer
My hope is that putting lib/ between core/ and gui/ will help clean up
gui code, since everything will no longer be in a single place.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-14 20:06:07 -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 5df79d3c08 callbacks: Remove unused queue callback
I now mimic the effects of the "changed" callback with inheritance.
This makes for a cleaner implementation.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-06 14:46:54 -04:00
Anna Schumaker 70254e7aa1 Remove error.h
It's not used by anything anymore.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-06 09:40:14 -04:00
Anna Schumaker ec2bd92bef gui: collection manager fixes
- Fill out the list of library paths
- Update size during scan

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-06 09:20:50 -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 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 2f1d7a73ce database: Set an item's ID before reading it in
Tracks need to know their own ID to set up filtering properly.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-04 13:24:21 -04:00
Anna Schumaker 72a51fb78f gui: Properly create queue tabs
Changes to the deck removed the on_pq_created() callback that we looked
for to create new tabs.  This patch creates tabs correctly.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-06-04 09:35:41 -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 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 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 ddfdc7d6f6 Move error.h include into audio.cpp
The audio code still uses it, databases don't.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-24 13:38:20 -04:00
Anna Schumaker 9ba4dbc218 Updates for recent library changes
This fixes the gui, deck, and audio code due to the library changes I
just did.

NOTE: Library updating callbacks have been disabled in the gui.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-24 13:07:54 -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 ea369eb14e clean up use of print.h
Some files #including this file weren't using it for anything ...

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-23 21:15:30 -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 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 44f93d85e4 file: Fix memory errors
Apparently it's not okay to return str.c_str() to caller functions,
because str will go out of scope...

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-18 11:10:34 -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
Anna Schumaker 0cc8072159 queue: Update the updated() function
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-11 18:33:13 -04:00
Anna Schumaker 5520472f6f queue: Test and clean up the delete track function
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-11 13:37:15 -04:00
Anna Schumaker 74bf30bec5 queue: Remove the add_front() function
This is best implemented in a derived class, since it's only used by the
recently played queue.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-11 10:54:16 -04:00
Anna Schumaker 38ae4ba0f3 queue: Fix up queue :: add()
It should take a Track pointer, rather than a track_id.  This makes the
code easier to work with.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-11 10:41:50 -04:00
Anna Schumaker 4dafe7270f tags: Update the unit test
While I'm at it, I also fix a refcounting issue with the Library pointer
each track has.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-05-06 22:57:07 -04:00
Anna Schumaker 55f3f06ded file: More cleanups after removing legacy file support
Looks like I missed updating a few places in the File class.  I do that
now, and I also began updating the unit test to the new system.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-04-26 14:07:06 -04:00
Anna Schumaker 6ee68397fd queue: Improve the constructor to take multiple flags at once
It really should have been like this from the beginning.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-04-13 18:39:15 -04:00
Anna Schumaker d939dcab20 queue: Begin code updates
So far I have renamed variables, changed a few functions, and updated
all the code that was affected.

Oh, I also started a new unit test.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-04-13 12:27:15 -04:00
Anna Schumaker 44f62028c3 database: Return NULL when inserting a duplicate item
This provides us a more straightforward way to determine if the database
changed.

Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2014-04-13 11:14:11 -04:00