Julien BLACHE
c918c5c689
Always rescan directories to update playlists
2009-06-11 19:11:03 +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
582f0e6746
Handle inotify events for directories
2009-06-11 17:35:25 +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
267ab7cb1a
Rename db_query_get_count() to db_get_count()
...
Make that a generic helper, given it's used outside queries.
2009-06-11 15:45:49 +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
34b0c22e46
Handle symlink-to-directory creation
2009-06-11 13:51:19 +02:00
Julien BLACHE
279fb95979
Watch for IN_CLOSE_WRITE in addition to IN_MODIFY and IN_CREATE
...
When receiving IN_CREATE or IN_MODIFY, there's no guarantee the file is
in its final state. Similarly, IN_MOVED_TO doesn't guarantee the file is
available when we receive it. And it actually isn't.
Watching for IN_CLOSE_WRITE fixes all that.
2009-06-11 13:45:02 +02:00
Julien BLACHE
467b177c17
Handle IN_DELETE, IN_MOVED_FROM and IN_MOVED_TO for files
2009-06-10 22:28:59 +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
ac96ac6baf
Move to the SQL database for storage of inotify watch info
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
177fb35d81
Add missing argument to DPRINTF() call
2009-06-10 19:11:12 +02:00
Julien BLACHE
94421b0b1b
Handle IN_IGNORED events in inotify callback
2009-06-10 19:10:44 +02:00
Julien BLACHE
cbab1f80e0
ie->len is 0 for events reported on the watch subject
...
ie->len is non-0 only when the event is being reported for a file or
directory inside a watched directory.
2009-06-10 19:10:37 +02:00
Julien BLACHE
c8cc6bd603
Run event loop for each directory and each playlist when scanning in bulk mode
2009-06-10 19:04:18 +02:00
Julien BLACHE
4e38d168e1
Set and check database schema version
2009-06-10 19:04:18 +02:00
Julien BLACHE
ab1f9db6b3
Remove unused L_LOCK logdomain
2009-06-10 19:04:18 +02:00
Julien BLACHE
7314dd21c7
Purge old files and playlists after bulk scan
2009-06-10 19:04:18 +02:00
Julien BLACHE
4e3b29f502
Remove the old database code
2009-06-10 19:04:18 +02:00
Julien BLACHE
a200703393
Switch to the new database code
2009-06-10 19:04:18 +02:00
Julien BLACHE
f2c677462b
Add new database code
2009-06-10 19:04:12 +02:00
Julien BLACHE
52d3fd1064
Clear evkeyvalq structs before use; fix crasher
2009-06-07 19:06:59 +02:00
Julien BLACHE
149d5432c6
Rework error handling and cleanup
2009-06-07 19:06:59 +02:00
Julien BLACHE
0ff33f12d6
Move mDNS services registration out of main()
2009-06-07 19:06:59 +02:00
Julien BLACHE
f3c0145346
Move runas down into daemonize()
2009-06-07 19:06:59 +02:00
Julien BLACHE
f39c48b989
Cleanup options and add long options
2009-06-07 19:06:59 +02:00
Julien BLACHE
6e64e54429
General main.c cleanup
2009-06-07 19:06:59 +02:00
Julien BLACHE
64cd2ee383
Factor out RSP query parameters handling
2009-06-07 19:06:59 +02:00
Julien BLACHE
c59217f58e
Remove the unused L_PARSE logdomain
2009-06-07 19:06:58 +02:00
Julien BLACHE
2cc5f6928e
Remove the unused smart parser
2009-06-07 19:06:58 +02:00
Julien BLACHE
8b5a25c972
Remove/disable last users of the smart parser
2009-06-07 19:06:58 +02:00
Julien BLACHE
91e34a77c8
Use the new ANTLR parser for RSP queries
2009-06-07 19:06:58 +02:00
Julien BLACHE
f9d9964914
Add new ANTLR parser for RSP queries
...
This parser actually supports way more than is needed for RSP proper,
as mt-daapd was piggybacking on the RSP queries for its smart playlists.
As I don't have (yet?) the RSP specs, better safe than sorry here. This
will be revisited at some point. Or not.
2009-06-07 19:06:51 +02:00
Julien BLACHE
272d8bca04
Fix error message
2009-06-07 19:06:51 +02:00
Julien BLACHE
68c74e6a88
Replace the mxml RSP root element hack by a better one
...
There's no proper way to add attributes to the root XML element in mxml;
the best way to do that is to create the root element like we would
create any other element and put the whole "? ... ?" stuff in there.
2009-06-07 19:06:51 +02:00
Julien BLACHE
4872077319
Make the file scanner non-recursive
2009-06-07 19:06:51 +02:00
Julien BLACHE
ffb5a2fb06
Make wd2path static
2009-06-07 19:06:51 +02:00
Julien BLACHE
977afbbc5e
Add workaround for empty XML tags in RSP replies
...
The SoundBridge does not support empty XML tags (<foo/>) and treats anything
containing such tags as invalid. Adding an empty string to the element works
around that, in that mxml won't produce empty tags in this case.
Hackish, but dealing with a hackish implementation on the other side :)
2009-06-07 19:06:51 +02:00
Julien BLACHE
28350ae9a6
Look for a query or filter parameter in DAAP queries
...
The filter is passed in the query parameter if it's a search, but if it's
a browse it's in the filter parameter.
2009-06-07 19:06:51 +02:00
Julien BLACHE
7642b1c6d7
Use the new ANTLR parser for DAAP queries
2009-06-07 19:06:50 +02:00