David Sansome
f6a72828a9
Write statistics and ratings in Library, not LibraryBackend.
2014-06-07 15:19:43 +10:00
Joseph Freeman
156728390d
Increase performance of mass rating changes.
2014-04-25 19:37:46 -04:00
John Maguire
192b60d965
Use nullptr as parent parameter default everywhere
2014-02-10 16:03:54 +01:00
John Maguire
bebd781fdf
Reformat all non-3rd-party C/C++/Objective-C++.
...
Command line:
find src ext -regex '.*\.\(h\|cpp\|mm\)' -exec clang-format -i
-style='{BasedOnStyle: Google, DerivePointerBinding: false}' {} \;
2014-02-07 16:34:20 +01:00
Gregor Tätzner
7317b6792e
don't rescan unchanged files if library has been unavailable
2014-02-01 20:21:28 +01:00
Arnaud Bienner
88918d45c5
Update issue 1175:
...
Save rating and statistics in two distinct ways, and let users activate them separately in preferences.
2013-03-30 23:42:29 +01:00
Arnaud Bienner
db5fbe2059
Update issue 1175:
...
Add an option in preferences to save all ratings/statistics into files, for all songs
2013-03-26 23:56:46 +01:00
Arnaud Bienner
b157c307e7
Add preference to save ratings and statistics in files
2013-02-24 18:36:37 +01:00
Tony Motakis
207225d620
HasCompilations() implementation local to the LibraryModel
...
Instead of relying on the backend to provide us with the information
of whether there are compilations in the whole of the library, we instead
look into the query we are currently working with for compilations. This
way we can be as granular as we want in the future.
This also means we now have to add the Various artists node at the time we
do the query with RunQuery() instead at BeginReset().
2012-10-27 16:30:08 -07:00
David Sansome
48f15c9fc7
Refactoring: instead of passing individual pointers to useful core classes (like TaskManager or LibraryBackend) to each class that uses them, pass one singleton-like Application instance everywhere.
2012-02-26 14:40:51 +00:00
Angus Gratton
f33d9b82d4
Prompt user if they are adding one part of a larger compilation to Various Artists. Fixes issue 2725
2012-02-19 13:55:30 +00:00
David Sansome
b873209d39
Remove the <xiphcomment.h> include from song.h so that windows headers don't infect everything else. Also move other bits of song.h into song.cpp, and reduce the number of includes in song.h.
2011-11-28 13:56:55 +00:00
Angus Gratton
2cf6875c6d
Fix bug caused by adding Various Artists for albumartist, where nodes would sometimes not move under Various Artists due to album node never being empty (Issue 509)
2011-11-28 11:04:38 +00:00
David Sansome
c1041ed6d4
Support for playing tracks from local library
2011-08-29 03:32:41 +01:00
David Sansome
e6b2e5bcae
Make the DeleteSongs function actually delete songs again, and make a new MarkUnavailable function that is called when songs are deleted from disk (and stop it from removing the song from the search index).
2011-07-06 20:07:56 +00:00
David Sansome
147bbb9928
Add some more python bindings
2011-05-19 23:02:15 +00:00
David Sansome
ccb9f8cf94
Use URLs everywhere instead of filenames. Move the URL parsing and song loading code out of individual playlist parsers and into the base class. Fix the playlist parser unit tests.
2011-04-28 12:27:53 +00:00
David Sansome
507c5e2632
Change the fields in Song from seconds to nanoseconds
2011-02-13 18:34:30 +00:00
Paweł Bara
ddd3f119d3
CUE songs are now properly updated in library - you can delete a CUE sheet, add it, you can change section markers in it etc. and everything should work as expected
...
Song now knows it's cue path (if any)
2011-01-15 18:46:23 +00:00
Paweł Bara
4f7e804638
library: watcher now updates CUE associated songs + ignores the not-CUE-associated songs in a CUE sheet
...
CueParser: properly update length for the last song from every FILE in multifile CUE sheet
new 'playlist_path' argument in the 'Load' part of PlaylistParser's API
2011-01-11 23:09:59 +00:00
David Sansome
9b82ecbb72
Add tag completers for albumartist, composer and genre, and load completion models in background threads
2010-12-25 13:11:09 +00:00
David Sansome
8cdce2767b
Implement the reset play counts button
2010-12-25 11:54:21 +00:00
David Sansome
b85ddbb380
Put the Jamendo songs in a separate database that gets attached to the main database. "Reload" it by deleting the file, which is much faster than DELETEing all the songs inside. Make reloading the Jamendo, Icecast and Magnatune databases always bypass the network cache. Store the Jamendo track IDs in a separate table - for some reason this makes inserts faster. Fix the Jamendo model after the inital database load. Make the Jamendo dymanic playlist use the entries that are already in the local database rather than fetching the song metadata again.
2010-11-27 16:14:09 +00:00
David Sansome
4e60558053
Use the Jamendo track id as the ROWID for tracks, and implement reloading the database.
2010-11-25 23:05:37 +00:00
David Sansome
ed1a25693c
Add missing licenses to debian/copyright, and add copyright information to each source file
2010-11-20 13:27:10 +00:00
David Sansome
1f267881fe
Put all smart playlist classes in their own namespace
2010-11-18 20:19:33 +00:00
David Sansome
9e20ef13bc
Automatic scoring. Thanks Arnaud Bienner. Fixes issue #141
2010-11-01 21:15:52 +00:00
David Sansome
2a480f7b1c
Somewhat-working smart playlist preview widget for the wizard. Still needs a lot of polish.
2010-10-29 18:41:49 +00:00
David Sansome
30afc130a4
Start of some work for smart/dynamic playlists. Only simple generators based on sql queries are supported, and the UI still needs polish.
2010-10-24 15:38:12 +00:00
David Sansome
f706c21be6
Add a library backend function to set song ratings
2010-10-17 20:53:48 +00:00
David Sansome
0a42a9efb5
Don't ever restructure or reset the library model when statistics on a song are changed.
2010-10-17 19:34:45 +00:00
David Sansome
a13e0ba3f3
Increment play and skip counts when playing or skipping songs from the library
2010-10-17 19:27:31 +00:00
John Maguire
214d77bc0e
Fix test and fix song loader infinite loop.
2010-08-31 21:24:57 +00:00
David Sansome
0d0f1521f2
Show embedded cover art in the album cover manager too, but only for the first file in an album
2010-07-19 18:08:25 +00:00
David Sansome
4a8bff5f4e
Cope with removable media changing mount point
2010-07-04 12:10:44 +00:00
David Sansome
492d8fec87
Use sqlite's Full Text Search on the songs table
2010-06-20 16:30:10 +00:00
David Sansome
7e1b54a779
Fix the height of items in the album cover manager, don't show artists with no albums, and add a status bar (currently unused)
2010-06-11 22:35:41 +00:00
David Sansome
c834a5f31f
Do the compilation processing in the database thread, and make everything lock on the database to ensure two threads don't access it at once.
2010-06-02 16:22:20 +00:00
David Sansome
03d876a599
Put the Database object in its own thread, and create the Library and Playlist backends in that database thread. The database calls don't happen in the database thread yet, but this is the first step towards making sure sqlite access is thread safe.
2010-06-02 15:58:07 +00:00
David Sansome
a95fb6d1e6
Do UpdateCompilations in the library scanner thread so as to not block
...
the GUI on startup.
2010-05-20 12:27:48 +00:00
David Sansome
1aee5e4667
Split all the source files up into seven new directories.
2010-05-10 21:50:31 +00:00