Commit Graph

208 Commits

Author SHA1 Message Date
ejurgensen
a99d1b2038 [db] Add song_length to group info (fixes #265) 2016-06-11 23:10:13 +02:00
chme
c1dcc0a937 [db] Make loading of playlistitem count optional 2016-02-21 18:05:11 +01:00
ejurgensen
bd75281340 [player] Save speaker name and rename raop_ to output_ 2016-02-11 20:04:30 +01:00
chme
491bf54fdb [directories/spotify] Init db with disabled spotify-root-directory and
enable only on successful login to spotify
2016-01-31 08:14:03 +01:00
chme
8600c21424 [db-upgrade] add column date_released to files table, add column name to
speakers table
2016-01-31 08:14:03 +01:00
chme
1a6565e512 [directories] Initialize root directories on db init 2016-01-24 18:51:22 +01:00
chme
7703a997c4 [db/filescanner/spotify] Replace filelist-view with separate
directories-table
to increase the performance of the mpd command 'lsinfo'
2016-01-24 18:51:22 +01:00
chme
532e9c3a32 [spotify/artwork] Remove spotify songs after playlist update and delete
cached artwork for removed spotify songs
2016-01-16 17:02:57 +01:00
chme
461a956288 [mpd] Return the correct values for number of songs, artists, albums and
song length sum in the "stats" command (wrong values are still reported
for uptime, db_update and playtime)
2015-11-06 19:11:00 +01:00
chme
e1147c00a1 [player] Refactor player to better fit the queue refactor 2015-10-04 07:59:58 +02:00
ejurgensen
68912efa1f Enable resuming playback from saved position for certain media kinds (eg audiobooks) 2015-08-04 22:33:32 +02:00
chme
1ab318d725 [mpd] support serving artwork over http 2015-07-18 07:17:21 +02:00
chme
2a04740ca2 [mpd] support "file" argument in list command 2015-05-30 05:56:52 +02:00
ejurgensen
a1e417c571 Rename count_info to fix issue #157 2015-05-26 21:24:10 +02:00
ejurgensen
8dd1e0fde2 Fix problem introduced with commit 475d5db where genres and composers don't get sorted 2015-05-26 21:10:28 +02:00
chme
fefd91fabc [mpd] support "track" parameter in commands "list", "find", "search" 2015-05-09 07:35:15 +02:00
chme
1300b2f018 [mpd] support "disc" parameter in commands "list", "find", "search" 2015-05-09 07:35:15 +02:00
ejurgensen
072810c4aa Move som comments 2015-04-24 22:57:08 +02:00
chme
65ad46311d fix wrong enum value for MEDIA_KIND_MUSIC 2015-04-24 17:25:01 +02:00
ejurgensen
0e1de8e0bb Add media_kind music videos and add forgotten return in db upgrade 2015-04-23 23:38:36 +02:00
chme
659f9c09bb Use enum values for data_kind and media_kind 2015-04-23 11:34:44 +02:00
chme
9f6afe0607 change pl_type for plain and special playlists and upgrade db to v18 2015-04-23 08:21:11 +02:00
chme
a174a1d18c [smartpl] refactoring: repurpose playlist type PL_SMART for user created
smart playlists and introduce new type PL_SPECIAL for special system
playlists
2015-04-23 08:21:10 +02:00
ejurgensen
7982bca6f0 Merge branch 'pl2'
Conflicts:
	src/db.c
2015-04-11 21:00:49 +02:00
chme
b7d5b1650e [mpd] add support for count command 2015-04-08 19:34:59 +02:00
ejurgensen
e101812478 Check for id3 compilation tag (credit @zmatsuo)
Ref. pr #127, issue #83 and maybe issue #63
2015-04-01 23:08:34 +02:00
ejurgensen
986b37ed29 Adds a playlist folder type, it is needed for sorting since some clients (eg Retune)
require that playlist folders are sent before their content. Playlist folders should,
however, be sent after the base playlists, so the numbering is changed. At the same
time makes the value of the smart playlist type a bit less hardcoded.
2015-03-30 01:03:15 +02:00
ejurgensen
e5a1495b49 Add DAAP logic for the Radio item 2015-03-16 23:33:42 +01:00
ejurgensen
8359a9018d Fixup parent playlist 2015-03-14 23:35:19 +01:00
ejurgensen
e68c6c4932 Change db_pl_add/db_pl_update so input is playlist struct
- so they work like db_file_add/update and can accept all the struct data (incl. parent_id)
2015-03-14 22:34:03 +01:00
ejurgensen
9fdb8a5247 Add DB and DAAP support for nested playlists 2015-03-14 22:00:57 +01:00
ejurgensen
6221e24f1b Support for live ICY metadata for streams (incl. artwork) 2015-03-14 21:42:53 +01:00
chme
f41e7014e4 [mpd] add support for commands 'listplaylists', 'listplaylist',
'listplaylistinfo', 'ping'; add support for additional tags
2015-03-10 22:15:33 +01:00
chme
795926605d db: add missing field "virtual_path" in struct db_playlist_info (fixes
segfault when loading playlists)
2015-02-23 20:49:53 +01:00
chme
3eab952867 fixup: rename db_mpd_build_query to db_mpd_start_query, removed unused
function from db.h
2015-02-15 13:59:35 +01:00
chme
df5b0f779a Use view for filelist instead of separate table 2015-02-14 22:38:14 +01:00
chme
830054bd71 Initial support for mpd protocol 2015-02-14 08:50:18 +01:00
ejurgensen
266d05f5eb Revert "Don't add duplicates (same fname, artist, album and title), issue #85"
This reverts commit 70365422b4.
2015-01-16 22:32:23 +01:00
ejurgensen
70365422b4 Don't add duplicates (same fname, artist, album and title), issue #85 2015-01-14 22:07:24 +01:00
chme
7578bb1205 Artwork caching (pull request #61), and also:
- introduced new section in config file for sqlite pragma settings,
added config for artwork cache
- added setting of pragma synchronous, cache size and journal mode to
daap cache
2014-11-10 22:53:08 +01:00
ejurgensen
d5efc2dcb3 Add db interface to update the admin table 2014-08-15 22:54:47 +02:00
ejurgensen
1bd11d2895 Fix so permission changes in the library are handled (issue #8) 2014-06-09 23:42:02 +02:00
ejurgensen
915719f0f8 Fix Spotify exemption from purge during init-rescan 2014-05-14 20:44:07 +02:00
ejurgensen
a5b2fbc0fe Wrap bulk scan in a db transaction (credit @chme) 2014-05-11 23:13:09 +02:00
ejurgensen
7ed6cc98c3 Add support for Spotify (squashed commit), and:
- Try to not return items which a client can't play
    - Remove inotify subscription to IN_MODIFY and IN_CREATE
    - Fix crash on unknown codec type in transcode.c
    - Probably added some new bugs...
2014-03-11 23:20:29 +01:00
ejurgensen
190f91114e Support songartistid (asri) in group requests and queuefilter=artist
- credit misenhower of wp8remote.com
2014-02-21 20:39:57 +01:00
ejurgensen
eac404fa3a Add artwork field to db (upgrade to v15). Set field when embedded
artwork found by the filescanner. Reenable support for embedded
artwork in group requests.
2014-01-11 23:05:29 +01:00
ejurgensen
ab86e30be4 Fix bug where sort fields were not implemented in group replies 2013-12-18 19:14:39 +01:00
ejurgensen
dbb043198d Upgrade database to version 14 (artist groups and seek)
- add songartistid to support artist groups
- add corresponding trigger
- add seek field for later use (to save playback position)
- add G_ARTISTS and adjust queries
- add smart playlists Podcasts/Audiobooks with db upgrade
2013-12-17 20:58:55 +01:00
ejurgensen
b3ea04a047 Some cleaning up in group handling in db.c in prep for artist groups 2013-12-15 21:47:49 +01:00
ejurgensen
8882374a75 Disable instead of purging when root library dir is not present 2013-11-30 23:12:09 +01:00
ejurgensen
adc9c03763 Allow user to trigger full rescan with a .force-rescan file 2013-11-29 22:48:53 +01:00
ejurgensen
95fc525beb Add support for artist group request (experimental)
The purpose of this is mainly to support Hyperfine Remote for Android
2013-08-29 22:00:37 +02:00
ejurgensen
9d0962407a The m3u playlist scanner improvements in commit 6e9cf3a resulted in
too many database lookups. This is a more efficient version.
2013-08-21 23:16:25 +02:00
ejurgensen
6e9cf3a243 This makes the scanner more flexible when matching paths in playlists
with the library paths.
2013-08-20 21:58:35 +02:00
Julien BLACHE
1dfd27090e Speedup startup rescan 2011-09-10 12:56:30 +02:00
Peter Carmichael
3caae459be Add DB maintenance routines 2011-09-10 12:56:29 +02:00
Kai Elwert
e226c38d4f Add db_query_fetch_string_sort() to fetch string+sortstring results 2011-03-21 18:48:00 +01:00
Kai Elwert
373c5584af Add sort tags to the database 2011-03-21 18:47:59 +01:00
Julien BLACHE
27c89cf312 Remove old db_config_* interface 2010-12-04 15:08:06 +01:00
Julien BLACHE
012e90b4a3 Add a dedicated table for speakers 2010-12-04 15:08:06 +01:00
Kai Elwert
e5af78fe9f Implement sort=artist for DAAP queries 2010-10-09 16:06:00 +02:00
Julien BLACHE
058e2e9b2b Add config variables save/test/clear for 64bit integer as hex string 2010-08-04 19:17:21 +02:00
Julien BLACHE
35d6ac4cfa Add unicode_fixup_mfi() to check & reencode UTF-8 fields in struct media_file_info 2010-06-21 17:50:09 +02:00
Julien BLACHE
dc95a04562 Add optional sorting clause to Q_ITEMS 2010-05-02 11:44:43 +02:00
Julien BLACHE
74cc5a7a13 Add config variables save/fetch for integer variables 2010-05-02 11:44:43 +02:00
Julien BLACHE
0411720a58 Perform explicit sqlite3 init/deinit 2010-04-26 18:24:09 +02:00
Julien BLACHE
19b6780a3c Remove provisions for multi-library support
It is now clear that multi-library support will not happen, so remove whatever
provisions were in the code for that.

It comes with a small change to the configuration file, too.

With this, DB schema version went to 9.
2010-03-19 19:09:18 +01:00
Julien BLACHE
b0e10fb97d Add groups queries 2010-03-07 15:23:40 +01:00
Julien BLACHE
641e5462cc Rename pl_id member of struct query_params 2010-03-07 15:23:40 +01:00
Julien BLACHE
6a144cd670 Add db_file_path_byid() 2010-03-07 11:13:38 +01:00
Julien BLACHE
224ef48137 Make album groups persistent
Store groups (only album groups supported at the moment) in the DB,
so their ids are persistent for the duration of the forked-daapd session.

Those ids are used to, among other things, retrieve artwork, so we must
provide ourselves some persistence here.

This brings us to schema version 8.
2010-03-06 19:02:49 +01:00
Julien BLACHE
88dde32fc7 Recompute all songalbumids at startup
Due to the two Murmur64 implementations for 64 and 32bit machines, the
hash is not compatible when moving the SQLite DB between 32/64 bit hosts.

So we'll recompute all the songalbumids at startup, just in case.
2010-03-06 18:59:58 +01:00
Julien BLACHE
748cca63be Maintain songalbumid inside the files table
songalbumid is used a lot in queries from Remote; computing the hash for
each row is a major waste of time on big libraries and slow machines, so
let's store the hash in the table.

This brings us to schema version 7.
2010-03-06 17:29:37 +01:00
Julien BLACHE
5d41d2d99c Move file_size to an int64_t, matching other types (off_t) 2010-02-02 21:09:55 +01:00
Julien BLACHE
762d80e0bb Add Remote pairing info storage facility
This brings schema_version to 6.
2010-01-30 17:30:22 +01:00
Ace Jones
3fef4334bb Add support for smart playlists and some default ones
Add system playlists for Music, Movies, TV Shows, equivalent to iTunes.
2010-01-21 17:52:51 +01:00
Julien BLACHE
364b22c030 Implement directory rescanning on top of kqueue/kevent for FreeBSD 2010-01-12 18:45:44 +01:00
Julien BLACHE
79cdb4f9aa Make forked-daapd build on GNU/kFreeBSD 2010-01-10 17:49:01 +01:00
Ace Jones
5cfbe75bae Add database code for groups queries 2010-01-10 14:43:22 +01:00
Julien BLACHE
9695c11186 Add an opaque pointer to watch_info
Used on FreeBSD to hold a pointer to the kevent struct.
2010-01-09 13:45:33 +01:00
Ace Jones
a0b015f1e4 Accomodate TV meta-data in internal structures
Add new fields for TV-related metadata to struct media_file_info and
struct db_media_file_info.
2009-12-26 08:28:28 +01:00
Julien BLACHE
a6cbb2a8ec Introduce db_file_id_byfilebase and db_file_id_byfile
File id lookup by basepath + filename and filename only.
2009-11-28 10:55:43 +01:00
Julien BLACHE
66cd10dc52 Introduce db_file_id_byurl and share code with db_file_id_bypath 2009-11-28 10:55:42 +01:00
Julien BLACHE
ecb2991881 Add db_pl_fetch_bytitlepath 2009-11-28 10:55:42 +01:00
Julien BLACHE
04ce09e5be Rename db_pl_add_item -> db_pl_add_item_bypath
For consistency with db_pl_add_item_byid & similar database functions.
2009-11-28 10:55:42 +01:00
Julien BLACHE
a45f46f3eb Introduce db_pl_add_item_byid() 2009-11-28 10:55:42 +01:00
Julien BLACHE
e1c0b6d4b7 Move *_offsetof() macro definitions to db.h 2009-06-11 23:17:17 +02:00
Julien BLACHE
3cadbdb1e3 Remove unused db_file_fetch_bypath() 2009-06-11 20:46:11 +02:00
Julien BLACHE
0ad20e5220 Rework process_media_file() and related DB support routines
Avoid pulling all the file info from the DB in process_media_file() as
anything besides the file id and timestamp is not used at all.
2009-06-11 20:44:22 +02:00
Julien BLACHE
0a8c171187 Store playlist items paths instead of resolving to file ids
This allows for more dynamic playlists now that files can move
around while we're running.
2009-06-11 20:27:31 +02:00
Julien BLACHE
3b7ff30c1b Remove useless force_update field in media file info 2009-06-11 19:15:22 +02:00
Julien BLACHE
538d81b402 Always rescan and update playlists
This is needed to keep relative playlist items up to date in the
database when the playlist file moves around.
2009-06-11 19:04:21 +02:00
Julien BLACHE
c589d92b14 Use db_get_count() wherever applicable; simplify db_{pl,files}_get_count() prototypes 2009-06-11 18:41:50 +02:00
Julien BLACHE
2d1c35b855 Count playlist items on the fly 2009-06-11 18:28:01 +02:00
Julien BLACHE
30204cbb76 Remove unused toplevel watch attribute 2009-06-11 17:36:13 +02:00
Julien BLACHE
c81b33bd02 Bring db_watch_delete_bywd() prototype back in line with other db_watch_delete_by*() 2009-06-11 17:35:32 +02:00
Julien BLACHE
07e22d8870 Add watch query/enumeration 2009-06-11 16:44:49 +02:00
Julien BLACHE
129ca8dfff Add watch deletion by path/match/cookie routines 2009-06-11 16:15:35 +02:00
Julien BLACHE
cef1636415 Add watch-moving routines 2009-06-11 15:42:51 +02:00
Julien BLACHE
87aa24454d Add watch-marking routines 2009-06-11 15:24:10 +02:00
Julien BLACHE
56127b3ecc Add file and playlist disable-by-match routines 2009-06-11 15:09:10 +02:00
Julien BLACHE
d63da9f08f Add file and playlist enable/disable routines 2009-06-10 22:28:54 +02:00
Julien BLACHE
9ff8913dd6 Add file and playlist deletion (by path) routines 2009-06-10 22:28:49 +02:00
Julien BLACHE
a9697eccdf Add storage of inotify watch info 2009-06-10 22:28:43 +02:00
Julien BLACHE
bfa2488343 Add support for disabled files and playlists 2009-06-10 19:11:12 +02:00
Julien BLACHE
7314dd21c7 Purge old files and playlists after bulk scan 2009-06-10 19:04:18 +02:00
Julien BLACHE
f2c677462b Add new database code 2009-06-10 19:04:12 +02:00