Commit Graph

222 Commits

Author SHA1 Message Date
chme
e7d6fbb9fc [listener/etc.] Rename LISTENER_STICKER to LISTENER_RATING
Unit there is a real sticker implementation, make it clear, that the
event is only triggered for rating changes.
2017-12-15 19:08:32 +01:00
chme
9f1568349b [mpd] minor cleanup 2017-12-15 19:08:32 +01:00
chme
9165cfc5da [mpd] Return virtual path to clients in 'sticker find' 2017-12-15 19:08:32 +01:00
chme
dec625ec30 [mpd] Implement 'sticker find' with operator/value parameters 2017-12-15 19:08:32 +01:00
chme
7b04787fc1 [mpd] Check upper bound for sticker 'rating' 2017-12-15 19:08:32 +01:00
chme
7a916c84a2 [mpd] Refactor sticker commands 2017-12-15 19:08:32 +01:00
chme
ef52f4ddc0 Rework user rating updates 2017-12-15 19:08:32 +01:00
Wolfgang Scherer
bbc5d3787e [mpd] rating sticker translator 2017-12-15 19:08:32 +01:00
chme
2ee02d407b [mpd] Add support for version and ranges to 'plchanges' and
'plchangesposid'
2017-12-09 11:01:41 +01:00
chme
f696229fff [player/dacp/mpd] Pass additional information to speaker enum callback 2017-12-03 10:46:03 +01:00
Wolfgang Scherer
b363c0dac2 [mpd] Consistent playlist name setup (#450) 2017-12-02 16:45:11 +01:00
Wolfgang Scherer
dcc6fcf206 [mpd] Close connection for close command (#444) 2017-11-21 19:29:17 +01:00
chme
4800f9943b [db] Rename 'ADMIN_*' defines to 'DB_ADMIN_*' 2017-11-19 22:08:23 +01:00
chme
96bcaa9102 [mpd] Fix noidle command returning an error; fix format error in stats
command
2017-11-19 22:08:23 +01:00
chme
65444bba47 [mpd] Fix missing free for query_params.filter (mostly in case an error
occured)
2017-11-19 22:08:23 +01:00
chme
360439f448 [mpd] Cosmetic changes: fix indentation, use bool instead of int 2017-11-19 22:08:23 +01:00
chme
a0a6b7d473 [mpd] Send correct value for uptime in 'stats' command 2017-11-19 22:08:23 +01:00
chme
38ab4b9676 [db] Functions to read/store int in the admin table and introduce
constants for admin table keys
2017-11-19 22:08:23 +01:00
Wolfgang Scherer
fa76b6380c [mpd] correct handling of noidle command 2017-11-18 07:15:45 +01:00
chme
8d130cdc7c [listener] Support passing multiple events in a single notify call 2017-11-18 07:15:45 +01:00
chme
1e24b3656a [mpd] Fix idle command (idle events got lost if they happened while the
client was not in idle mode)
2017-11-18 07:15:45 +01:00
chme
1cdb9f450d [library/mpd] Store db update time in admin table and trigger DATABASE
event on init/rescan only if an update/insert occurred
2017-11-17 19:40:04 +01:00
Wolfgang Scherer
37aaf73f6a [library] Deferrable library update time with persistence (TBD) 2017-11-17 18:12:03 +01:00
Wolfgang Scherer
9f11a69c79 [mpd] enable database and update events for idle clients 2017-11-17 18:12:03 +01:00
ejurgensen
a6fab4ac0d [httpd/mpd] Adjustments to commit #69ff42f 2017-11-15 23:13:20 +01:00
Wolfgang Scherer
69ff42fc6a [mpd] apply trusted_networks to MPD 2017-11-15 22:29:22 +01:00
ejurgensen
75b14b85e9
Merge pull request #435 from wolfmanx/mpd-argument-unquoting
[mpd] Quoted argument unescaping fixed
2017-11-11 10:04:57 +01:00
Wolfgang Scherer
c48b819170 [mpd] password command 2017-11-10 09:55:44 +01:00
Wolfgang Scherer
5a960a3450 [mpd] Quoted argument unescaping fixed 2017-11-08 23:03:32 +01:00
ejurgensen
04dc5956ed [mpd] Fix crash-on-exit because evconnlistener_free() doesn't ignore NULL pointers (issue #430) 2017-10-30 23:07:10 +01:00
ejurgensen
a94fda38cc [mpd] Some minor fixup 2017-10-20 19:49:17 +02:00
ejurgensen
88a565ea2c [db] Replace sqlite3_xxx() calls outside db.c/cache.c so they are abstracted 2017-10-17 23:11:31 +02:00
ejurgensen
546362980b Merge pull request #408 from chme/web
Add a web api and a webinterface
2017-09-15 23:15:49 +02:00
ejurgensen
c27448418c [httpd/mpd] Make sure daemons listen on both ipv4 and ipv6 if enabled
Before setting ipv6 = enabled on FreeBSD would make the daemon not listen on ipv4
2017-09-07 23:14:18 +02:00
chme
ae446046f5 [mpd] Notify mpd clients on library update events 2017-08-27 11:54:32 +02:00
chme
0b2ee5a9eb [db/mpd] Simplify getting file count from db 2017-08-27 11:54:32 +02:00
chme
8f49a6fb45 [mpd/conf] Add config option to enable modifying stored playlists 2017-08-12 10:16:07 +02:00
chme
dc3f9443e7 [mpd/conf] Add support for stored playlist commands (add/save/delete)
This also introduces a new config option to define a default playlist
folder. The default playlist folder is used by forked-daapd if the
playlist is not a full virtual path (simpifies creation of playlists
with mpd clients).
2017-08-09 21:41:32 +02:00
ejurgensen
299a8f9e4b [mpd] Add support for "mpc sendmessage verification [pincode]" 2017-06-20 21:01:55 +02:00
ejurgensen
0642171de0 [mpd] Adjust so "sendmessage pairing" now gives an arglist to remote_pairing_kickoff() 2017-06-15 00:00:05 +02:00
ejurgensen
1aa8072e68 [misc] Change name of string_printf to safe_asprintf 2017-05-05 20:00:51 +02:00
chme
2f1124d4dc [mpd] Use string_printf instead of asprintf 2017-05-01 10:28:41 +02:00
chme
6b9878490e [mpd] Add missing free in channel_outputvolume 2017-04-30 19:27:44 +02:00
chme
989b44c8dc [mpd] Implement 'channels' command (returns the special forked-daapd
channes like 'pairing')
2017-04-30 19:27:44 +02:00
chme
eeef65f951 [mpd] Add support to change output volume through sendmessage command
Output volume can be set by sending a message to the channel
'outputvolume' by passing a message with the output id and the volume
separated by a colon.
2017-04-30 19:27:44 +02:00
chme
d8b5951e40 [mpd] Move function mpd_command_outputvolume and split into two
functions
2017-04-30 19:27:44 +02:00
chme
9d72dc9176 [pairing] Only require the pin for kicking off the remote pairing 2017-04-29 23:36:11 +02:00
chme
6f60006edb [mpd] Support pairing remotes over mpd 'sendmessage' command
Adds a basic structure for supporting sendmessage and implements the
first message handler for the channel 'pairing'.

Pairing can be achieved by passing a message to channel 'pairing' in the
format "devicename:pin". With mpc this looks like 'mpc pairing
"devicename:1234"
2017-04-29 23:36:11 +02:00
chme
3f10dac2f7 [dacp] Start playback from selected song in shuffle mode (#379) 2017-04-17 10:46:24 +02:00
chme
59ade61d7b [library] Rename constants 2017-03-19 18:30:46 +01:00
chme
8381b7489e [mpd] Try to read metadata and add to queue if path is not in the
library
2017-03-19 18:30:46 +01:00
chme
1dde41fb87 [mpd] Fix wrong db playime info in 'stats' command (#360) 2017-03-04 17:23:52 +01:00
chme
3896f61d06 [dacp] Keep the now playing item in the queue when calling (#353)
playqueueedit_clear
2017-02-11 09:28:35 +01:00
ejurgensen
1258481202 [listener] Rename LISTENER_PLAYLIST to LISTENER_QUEUE 2017-01-27 22:25:32 +01:00
chme
56ce3f9cba [library/filescanner/spotify] Add library source abstraction and new
"library" thread

- Implement filescanner as a library_source
- Add library source implementation for spotify
- Move process_media_info to library with small adjustments:
  - Remove dependency to F_SCAN_TYPE defines
  - Pass data_kind as parameter
  - Pass media_kind and compilation as parameter if a source forces a
specific value for these
- Move declaration of scan_ffmpeg to library; add
library_add_playlist_info to library
2017-01-13 18:56:37 +01:00
Scott Shambarger
ce4ef0aa23 [config] Many updates to configuration and feature checks
- Added custom checks for libraries and pkgconfig modules that test library
 presence with additional checks for use of headers and functions with
 given options.  Also support correct additional feature library checks
 using provided flags.
- Added custom enable/disable feature macros to simplify their use.
- Use custom CFLAGS and LIBS variables for Makefiles to simplify maintenance.
- Update many feature checks from platform to function.
- Streamline many function checks.
- Correctly check gnutls, gcrypt and gpg-error libraries.
- Fix chromecast and spotify config and compile on FreeBSD
- Added inotify, signalfd and kqueue, and byte swap checks.
- Many clarifications of error messages.
- Correct json-c checks to properly use supplied CFLAGS.
- Correct many quoting inconsistencies
- Use __DATE__ in place of BUILDDATE
- Use full path for gperf and antlr3
- Remove unnecessary CFLAGS
- Added tests for pthread_setname_np parameters
- Added tests for clock_gettime and timer_settime
- Added tests for time.h
- Test if pthread, dl and rt libs are required/available.
- Updated checks for libunistring
2017-01-06 00:44:18 -08:00
chme
1221244eed [mpd] Implement consume command and return consume mode in
status command
2016-12-09 14:48:24 +01:00
chme
fb55960b0a [db] Remove db_queue_enum struct and use generic query_params 2016-12-04 08:18:33 +01:00
chme
6c6f02fdfa Rename "queue_item.item_id" to "queue_item.id" 2016-12-03 11:14:03 +01:00
chme
cef4fedfb4 Remove unused structs and player arguments 2016-12-03 11:12:19 +01:00
chme
c504abe451 Use queue db table instead of in memory queue struct 2016-12-03 11:11:33 +01:00
chme
a95da7966b Fixes issues found by scan-build in mpd.c and queue.c 2016-11-20 06:27:45 +01:00
ejurgensen
bdd6bab982 [-] Lots of housekeeping thanks to scan-build and input from @acmay 2016-11-19 23:08:50 +01:00
chme
60f9c779b6 [mpd] Add new command 'outputvolume' to set volume for a specific output 2016-10-25 22:40:48 +02:00
chme
bdb2c74934 [player/dacp/mpd] Pass absolute volume to speaker enumerate callback and
add absolute volume to mpd 'outputs' command
2016-10-25 22:40:48 +02:00
chme
39314c1560 [mpd] Do not treat playback_start return value > 0 as an error 2016-10-23 08:25:19 +02:00
ejurgensen
c44f4310b7 [httpd] Replace evhttp_send_error with the httpd_send_error wrapper 2016-10-18 22:45:22 +02:00
ejurgensen
40c49f1fde [httpd] Use httpd_send_reply() wrapper in httpd_*, dmap_common and mpd 2016-10-17 22:25:31 +02:00
ejurgensen
1e02dc51fd [mpd] Modify output enum logging to show shortid as well 2016-07-31 23:28:03 +02:00
chme
595f7c6091 [mpd] Fix copy/paste error in log message 2016-07-30 08:33:23 +02:00
chme
e6b53cb88e [mpd] Fix mpd command 'playid' if player is already playing
While playing issueing command 'playid' starts playback of the song with
the given item-id (if this song is already playing, it starts from the
beginning).
2016-07-30 08:33:22 +02:00
chme
9af09c204d [mpd] Fix mpd command 'play' if player is already playing
While playing issueing command 'play' with a songposition -1 does noting
in mpd, with songposition > 0 it starts playback of the song at this
position (if this song is already playing, it starts from the
beginning).
2016-07-30 08:31:54 +02:00
ejurgensen
ed03c90916 [mpd] Fix typos 2016-07-29 19:26:46 +02:00
chme
32ac6c2ea9 [commands] Rename commands_cmdloop_break to commands_base_destroy and
free commands_base after breaking the libevent loop
2016-06-11 10:56:27 +02:00
chme
5258ee712c [commands] Added functionality to break the event loop of a command base 2016-06-11 09:52:31 +02:00
chme
5dc1cba5c8 On deinit free event base before freeing command base and pipes 2016-05-21 06:48:02 +02:00
chme
4aacf487e8 [mpd] Use generic inter thread commands util 2016-05-15 08:42:15 +02:00
ejurgensen
9a56044c77 [misc] Explicitly check for pthread_setname_np/pthread_set_name_np
Seems there is no pthread_setname_np in OpenWrt
2016-05-05 19:39:15 +02:00
chme
7713096d84 [mpd] Return playlists if 'lsinfo' is called without any parameters 2016-04-05 21:04:44 +02:00
chme
07947a526d [mpd] Do not start playback automatically after adding songs to the
queue
2016-03-19 09:40:36 +01:00
chme
d35894ac15 [mpd] Return correct item-id for command 'addid' and return correct
number of items in the queue if player is stopped for command 'status'
2016-03-19 09:40:36 +01:00
ejurgensen
b454a2fd60 [general] Put back support for platforms without pipe2(), see issue #239 2016-03-17 22:20:16 +01:00
ejurgensen
abce1d0eeb Merge pull request #237 from chme/threadnames
Set thread names
2016-03-12 17:18:34 +01:00
chme
98d6db002f Set thread names to make it easier to identify threads during debugging 2016-03-12 14:01:08 +01:00
chme
39c60cb211 [mpd] Fix indentation 2016-03-12 08:27:59 +01:00
chme
cd5aee1595 [mpd] Allways return an error message if mpd command exits with error,
otherwise the command will lead to a segfault (e. g. calling lsinfo with
a non existent directory path segfaults)
2016-03-12 08:27:59 +01:00
ejurgensen
220494e8b1 Merge pull request #232 from chme/mpdmove
[mpd] Implement mpd command 'move'
2016-02-28 20:28:24 +01:00
chme
494a936caa [mpd] Implement mpd command 'move' 2016-02-21 19:01:52 +01:00
chme
c1dcc0a937 [db] Make loading of playlistitem count optional 2016-02-21 18:05:11 +01:00
chme
4878dce0b0 [mpd] Implement command 'plchangesposid' 2016-02-06 08:39:01 +01:00
chme
171e30aead [mpd] use qualifier in select queries, return error message if an error
occurs (otherwise this results in a segfault)
2016-01-24 18:51:22 +01:00
chme
2611d06ab7 [mpd] add support for commands 'listall' and 'listallinfo' 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
1d69a3de90 [mpd] Add fallback to IPv4 if IPv6 failed 2016-01-24 18:51:22 +01:00
chme
9a1c8409cf [mpd] optimize query selecting files for virtual_path to use the index 2016-01-24 18:51:21 +01:00
chme
32e1923b39 [mpd] make global event_base static 2015-12-19 09:09:50 +01:00
chme
3b7e1b2737 [mpd] Add missing close for command pipe on deinit 2015-12-19 08:46:38 +01:00
chme
40da57346f [mpd] fix duplicate return of 'nextsong', 'nextsongid' and return
item-id as 'nextsongid'
2015-12-12 09:26:55 +01:00
chme
6d1d2a485c [mpd] fix seek command
Compare the position of the song to be seeked with the position of the
current playing one
2015-12-12 09:26:44 +01:00
ejurgensen
100cecce3f [mpd] Add missing db_query_end (was causing database locks) 2015-12-06 20:22:12 +01:00