Anna Schumaker
2c18f9e715
core/playlist: Add playlist_size() function
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 16:03:11 -04:00
Anna Schumaker
00dd72d46e
core/playlist: Remove unused playlist_t enum
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 16:03:11 -04:00
Anna Schumaker
5e9b6bc975
core/playlist: Access playlists through a string
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 16:03:11 -04:00
Anna Schumaker
2ff7113668
core/playlists/system: Move the least played playlist into system.c
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 16:03:10 -04:00
Anna Schumaker
9d3cc2e5ab
core/playlists/system: Move the most played playlist into system.c
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 16:03:09 -04:00
Anna Schumaker
5ab2e63734
core/playlists/system: Move the unplayed tracks playlist into system.c
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 16:03:06 -04:00
Anna Schumaker
1527ee0e6d
core/playlist: Add playlist_update() function
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 16:03:06 -04:00
Anna Schumaker
a465577c86
core/playlists/system: Move system playlists into a new file
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 16:03:06 -04:00
Anna Schumaker
e3d4143565
core/playlist: Add new playlist_type struct
...
I intend to use this for creating playlists with different properties,
such as using the playlist interface to add library paths.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 16:03:06 -04:00
Anna Schumaker
151c446635
core/playlist: Use separate queues for favorite and hidden playlists
...
Implements issue #6 : Store playlists as queues
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 16:03:04 -04:00
Anna Schumaker
9a98a009e9
core/queue: Add queue_{save|load}_tracks() function
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 08:13:10 -04:00
Anna Schumaker
9ec2497ac5
core/queue: Add a queue_has() function
...
Used to check if a track is on a queue.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 08:13:10 -04:00
Anna Schumaker
afb2653f65
core/queue: queue_remove_all() returns count of tracks removed
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 08:13:10 -04:00
Anna Schumaker
378ff72307
Remove core/containers/queue
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 08:13:10 -04:00
Anna Schumaker
db01ed3208
core/queue: Use a GQueue directly
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 08:13:10 -04:00
Anna Schumaker
2b426cff48
core/queue: Switch over to using struct queue_iter
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 08:13:10 -04:00
Anna Schumaker
9835235acd
core/queue: Implement a new queue_iter
...
I plan to remove the containers/queue implementation, so we need a new
iterator for queue access.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 08:13:10 -04:00
Anna Schumaker
6bb08ddbaa
core/queue: Call g_queue_*() functions directly
...
This is a first step to removing core/containers/queue
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 08:13:10 -04:00
Anna Schumaker
e8d7576704
core/containers/set: Return status of set_insert() and set_remove()
...
I use this status indicator in the playlist code fairly often, so let's
return it directly rather than needing to code around it.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 08:13:10 -04:00
Anna Schumaker
5a30a63904
core/string: Add string_match() function
...
This function is used to determine if both strings exist and have the
same contents.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-19 08:13:10 -04:00
Anna Schumaker
e30f7f8115
core/tags/album: Add support for importing album artwork
...
This is needed so the user can manually set album artwork in the cases
where either we don't fetch the right image or no image is found.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-12 14:36:40 -04:00
Anna Schumaker
80d921343d
core/file: Add support for importing a file into the cache
...
This will be needed to allow the user to manually set album art from a
downloaded file.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-07-12 14:16:46 -04:00
Anna Schumaker
cbb9631877
gui: Add a function for determining the height of widgets
...
It's eaiser to do it in the builder code, rather than repeating this
code in several places.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-30 08:18:11 -04:00
Anna Schumaker
d0dddeacdb
core/tags/album: Add album_artwork_path() function
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
d79eb2c9b8
core/tags/album: Add album_artwork_exists() function
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
0d9b7baff6
core/tags/album: Add a pointer to the struct artist
...
This is needed for album art fetching to get more accurate results for
our MusicBrainz query.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
97c8f80393
core/idle: Add a way to reschedule idle tasks
...
This will be needed to reschedule MusicBrainz requests if the server is
busy.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
6b52775e58
core/idle: Add support for running idle tasks in a new thread
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
6a44f9e1a1
core/idle: Add idle_sync_t enum
...
I intend to use this to select between sync and async idle tasks.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
a6bfbbb1c6
core/file: Add file_remove() function
...
I plan to use this for upgrades to remove obsolete files.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
0344a2088d
core/file: Add cache_file_write() function
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
9db9df619f
core/file: Add cache_file_close() function
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
e137eb0108
core/file: Add cache_file_open() function
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
3723dff87d
core/file: Add cache_file_exists() function
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
79ecaa11fb
core/file: Add cache_file_write_path() function
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
5dcf681e48
core/file: Add cache_file_path() function
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
b5e13af30c
core/file: Add cache_file_init() function
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
12949651f7
core/file: Add struct cache_file
...
I want to reuse as much file code as I can for cache files, but I need a
new struct since data and cache files track different properties.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
9e0f017e61
core/file: Build in minimum version checks
...
I don't think it makes sense that callers of file_open() are expected to
check the file version after opening. This should be something handled
by the file code so we can print a consistent error message.
Implements issue #5 : Better file versioning
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
ee4f0d4c89
core/file: Writes go to a temporary file first
...
And then rename the temporary file when closed. This protects users
data in case Ocarina gets killed.
Implements issue #31 : Make file writes seem atomic
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
224290d4eb
core/file: file->f_name can be a pointer
...
I'm only setting this to a static string, so it doesn't make sense to
store this as a char array. Let's use a string pointer instead.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
427319b72e
core/file: Move OCARINA_NAME configuration into version.h
...
I'm going to use this for saving album art to the right place. I moved
it into an include file to avoid duplicating code.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
98faba93d1
core/string: Add a string_length() function
...
This is a wrapper around strlen(), but checks for a NULL pointer first.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-24 10:50:37 -04:00
Anna Schumaker
4998b0867b
core/tags/track: Find the average play count of tracks
...
This function returns the average count of tracks that have been played,
and not the average count of all tracks.
Implements #29 : Efficiently calculate average play count of tracks
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-14 17:11:06 -04:00
Anna Schumaker
1973d15605
core/tags/track: Count the total number of tracks played
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-14 17:10:52 -04:00
Anna Schumaker
a97ec66e7f
core/tags/track: Count the number of unplayed tracks
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-14 17:10:47 -04:00
Anna Schumaker
d825e2d481
core: Remove random functions
...
I no longer need these now that the queue is using the glib
g_random_int_range() function.
Implements #32 : Remove custom RNG code
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-14 17:10:30 -04:00
Anna Schumaker
bc513532c1
gui/idle: Add a function to disable processing idle tasks
...
This is needed during ocarina shutdown to prevent a segfault.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-14 17:09:39 -04:00
Anna Schumaker
0bcfa06bfb
core/containers/database: Add a function for loading databases when idle
...
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-14 17:06:57 -04:00
Anna Schumaker
f01cce3b47
gui/idle: Split out idle queue functions
...
I want to use this outside of the collection, so let's move these
functions into a new file.
Signed-off-by: Anna Schumaker <Anna@OcarinaProject.net>
2016-06-13 09:47:46 -04:00