ejurgensen
299a8f9e4b
[mpd] Add support for "mpc sendmessage verification [pincode]"
2017-06-20 21:01:55 +02:00
ejurgensen
5e48a68525
[player] device_restart_cb() should also handle failures due to device verification
2017-06-20 20:58:46 +02:00
ejurgensen
7626b6c535
[raop] Fix bad enum
2017-06-20 20:00:05 +02:00
ejurgensen
f63d103753
[raop] Add support for Apple TV device verification, required by tvOS 10.2 (fix for issue #377 )
...
- also change how speakers are saved/retrieved from the db
- add generic authorization methods in outputs.c and player.c
- let filescanner read *.verification files (containing PIN)
- configure options to enable and disable, since libsodium is required
2017-06-19 21:52:01 +02:00
ejurgensen
736979a9a2
[evrtsp] Add POST rtsp method - used for device verification
2017-06-18 01:31:23 +02:00
ejurgensen
0e9bca9e3d
[db] Add column for auth key to speakers table (incl methods for saving/retrieving)
2017-06-18 01:29:40 +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
283df8aa72
[misc] Consolidate control file reader (e.g. for pairing credentials) into misc.c
...
- also remove requirement to enter device name in .remote file
2017-06-14 23:49:18 +02:00
Gergan Penkov
08d25154e5
fix the compilation problem because of gperf changes in 3.1
2017-05-27 12:28:00 +02:00
ejurgensen
3fe3c71ea7
[lastfm] Remove obsolete include of curl.h
2017-05-18 22:55:04 +02:00
ejurgensen
1aa8072e68
[misc] Change name of string_printf to safe_asprintf
2017-05-05 20:00:51 +02:00
ejurgensen
dcf75f59eb
Merge branch 'string_printf' of git://github.com/chme/forked-daapd into chme-string_printf
2017-05-05 19:43:17 +02:00
ejurgensen
497ffc2f43
[misc] Add __attribute__((__noreturn__)) to our abort functions so
...
scan-build doesn't complain about logic errors after abort
2017-05-05 19:41:17 +02:00
ejurgensen
f465f6a77d
[raop] Fix possible incorrect address family in SDP
2017-05-04 19:31:26 +02:00
ejurgensen
544791ef59
[player] Prevent crash if output is failed and triggers a playback_abort
...
when a pause or seek is requested
2017-05-04 18:06:18 +02:00
ejurgensen
b9e069939e
[mdns] Also handle devices being switched on/off without Avahi service removal notices
2017-05-02 23:13:53 +02:00
ejurgensen
e2f65debc8
[mdns] Keep Avahi resolvers alive so we get IP changes from e.g. Airplay devices (fix for issue #378 )
2017-05-02 19:27:35 +02:00
chme
2f1124d4dc
[mpd] Use string_printf instead of asprintf
2017-05-01 10:28:41 +02:00
chme
6887ff9d7b
[spotify] Use string_printf instead of asprintf
2017-05-01 10:21:58 +02:00
chme
4e6b78ca29
[misc] Add string_printf function
2017-05-01 10:21:57 +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
170e4aaf75
[pairing] Only keep last remote pairing request from mdsn
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
fd2c77cb9f
[pairing] Add public function to pair by devicename and pin
2017-04-29 23:36:11 +02:00
chme
8ed1c9c0ec
[pairing] Rename 'remote_pairing_read_pin' to
...
'remote_pairing_kickoff_byfile'
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
ejurgensen
3a35a51cb9
[db] Align naming of struct query_params pointers et al
2017-04-16 23:54:07 +02:00
chme
626c77046c
[spotify] Fix empty spotify playlists
2017-04-10 09:33:22 +02:00
chme
cc29c617b0
[filescanner] Switch argument order (input first)
2017-03-19 18:30:46 +01:00
chme
888710612c
[library] Add missing attribute mapping from mfi to queue item
2017-03-19 18:30:46 +01:00
chme
e31fea6c44
[filescanner] Remove unused include and make privat function static
2017-03-19 18:30:46 +01:00
chme
59ade61d7b
[library] Rename constants
2017-03-19 18:30:46 +01:00
chme
f4aade7f3a
[filescanner] Fix and refactor scanning of playlists
2017-03-19 18:30:46 +01:00
chme
f5c65d1eef
[db] Do not notify clients in 'db_queue_add_by_query' if no items were
...
added
2017-03-19 18:30:46 +01:00
chme
a65737b4e7
[filescanner] Add scan-metadata function for non library items
...
For now only support scanning metadata for internet radio streams
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
e6f49b721f
[library] New functions to support scan metadata for arbitrary path and
...
adding a mfi as a queue item
2017-03-19 18:30:46 +01:00
chme
cc899651c7
[db] New function to add a media file info as a new queue item
2017-03-19 18:30:46 +01:00
chme
bdd08f516f
[library] Rename 'library_process_media' to 'library_add_media'
2017-03-19 18:30:46 +01:00
chme
dadba23efc
Refactor library scan of media files
...
Remove the data_kind specific parts out of the general library functions
and into their (library) source specific functions.
2017-03-19 18:30:46 +01:00
ejurgensen
fce68ebd1a
[raop] Add option to exclude particular devices from speaker list
2017-03-15 23:24:24 +01:00
ejurgensen
ef13abe2cf
[artwork] Fix for issue #345 and #367 : Broken PNG rescaling
2017-03-15 22:12:37 +01:00
ejurgensen
efd6805f9e
Merge pull request #365 from chme/spotifybaseplaylist
...
Avoid adding spotify playlist folder
2017-03-11 19:30:31 +01:00
ejurgensen
5d74c98431
[input] Pass read errors to the player through the input buffer
2017-03-11 19:23:49 +01:00
chme
6c97448e2f
[spotify] Remove log messages after token request
...
The whole response is already written to the log in debug mode
2017-03-11 09:55:32 +01:00
chme
247abec88f
[spotify] Only create spotify playlist folder after successful login
...
Before creating the folder there should be either a valid api token or a
valid libspotify session.
2017-03-11 09:44:54 +01:00
ejurgensen
6c94cdd635
[httpd_daap] Honour sort param "artist" for album groups (fixes issue #358 )
2017-03-05 09:45:34 +01:00
ejurgensen
9f2f5566d2
[commands] Protect against race condition by moving event_add() inside lock
...
- otherwise commands_base_destroy() could free cmdbase before event_add()
2017-03-04 17:26:45 +01:00
chme
00e5e098d4
[spotify] Purge spotify songs from db before scanning after oauth ( #361 )
2017-03-04 17:24:42 +01:00
chme
1dde41fb87
[mpd] Fix wrong db playime info in 'stats' command ( #360 )
2017-03-04 17:23:52 +01:00
chme
1dfca1ec22
[dacp] Always start playing from the beginning of the shuffle queue
2017-03-04 08:57:58 +01:00
chme
03e9182423
[spotify] Fix usage of "artist_override" config value
2017-02-26 11:04:04 +01:00
chme
9c90cbcd12
[db] Fix return value of db_queue_add_by_query
2017-02-26 11:04:04 +01:00
chme
82e216c931
Add missing FALLTHROUGH comments to switch-case statements
...
This allows to suppress code analysis warnings in IDEs for missing break
statements.
2017-02-26 11:04:04 +01:00
chme
50b28bde96
[filescanner] Remove unused scan_metadata_icy function declaration
2017-02-26 11:04:04 +01:00
chme
78975b1aa3
[filescanner_ffmpeg] Add doc to scan_metadata_ffmpeg
2017-02-26 11:04:04 +01:00
chme
e4f25f9418
[filescanner_ffmpeg] Refactor: consolidate special handling for
...
http-streams
2017-02-26 11:04:04 +01:00
sshambar
c54c909ae4
Added support for libav/ffmpeg dual installs ( #346 )
...
* [config] Added support for libav/ffmpeg dual installs
Reordered CPPFLAGS/LIBS so that library flags (includes etc) appear
ahead of prefix/global directives and the correct headers/libraries
are checked (if symbols are defined in alternative libraries).
Updated libav checks to use header declaration checks
rather than link checks (so differences between
libav/ffmpeg can be correctly found), and updated code references
to use new defines. Added support the alternate pkg-config
package names for libav. Updated ffmpeg vs libav check
to check MICRO version number (>=100 for ffmpeg). Simplified
resulting configure script by using a function to merge
CPPFLAGS variables.
* [config] Use FORKED_OPTS prefix for libevent_pthreads option
* [config] Add --with-libav option to select libav even if ffmpeg present
2017-02-19 15:21:00 +01:00
ejurgensen
ff49e176f2
[spotify] Fixup header path to json.h
2017-02-16 21:51:46 +01:00
Scott Shambarger
c7855e7c55
[config] Min automake 1.11, support silent rules on automake < 1.13
2017-02-16 10:44:00 -08:00
ejurgensen
26c22144fc
[-] Misc housekeeping (minor memleaks, invalid free's)
2017-02-12 01:19:56 +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
98348b8fe9
[pipe] Removing CHECK_NULL with malloc, scan-build not happy about it
2017-02-11 00:28:29 +01:00
ejurgensen
f0c9843194
[pipe] Fix exit problem due to misuse of COMMAND_PENDING
2017-02-10 23:56:58 +01:00
ejurgensen
d8255e1d08
[pipe] Fix minor memleak
2017-02-10 23:03:38 +01:00
ejurgensen
13e6889990
[cast] Use friendly device name from mdns announcement
2017-02-10 19:27:52 +01:00
ejurgensen
d2fe608c72
[http_streaming] Reduce log severity if write returns EAGAIN, it
...
just means that pipe was temporarily full (ref issue #329 )
2017-02-08 22:47:49 +01:00
ejurgensen
245ce1d4e4
[player] Allow starting playback with no outputs
2017-02-08 22:31:47 +01:00
ejurgensen
1f15fb1993
[pipe] Refactor pipe input, hopefully into a more thread safe version
2017-02-08 22:29:37 +01:00
ejurgensen
e6793b4779
[player] Add player_playback_start_byid() function, will be needed for pipe input
2017-02-08 22:29:37 +01:00
ejurgensen
f27fb53caf
[input] Rename player source ->xcode to ->input_ctx, because any input may use it, not just transcode
2017-02-08 22:29:37 +01:00
ejurgensen
a183463bb2
[spotify] Try to avoid image load callbacks from Spotify after timeouts,
...
since the artwork struct may have become invalid
2017-02-07 23:23:39 +01:00
ejurgensen
3a7ed96895
[misc] Adding missing header for non-Posix timer platforms
2017-02-07 23:22:38 +01:00
chme
1f4e474671
[spotify] Retrieve playlist tracks based on user country ( #352 )
...
This avoids adding unplayable items to the library and due to the active
track relinking should make additional tracks playable by linking to a
playable version of the track.
2017-02-05 13:56:12 +01:00
ejurgensen
18fe8fe0ef
[pipe] Temporary "fix" for threading issues
2017-02-05 00:11:21 +01:00
chme
9680fa093a
[db] Fix mpd command 'delete' removing to many items
...
Previously db_queue_delete_bypos iterated over the items and called
delete for each item. The delete also adjusted the pos/shuffle_pos
values for the remaining items.
A delete of pos = 0 resulted therefor in:
- fetch item with pos = 0
- delete item at pos
- update remaining items to pos = pos - 1
- fetch item with pos = 0 (returns the new item at pos 0)
- delete item at pos
- ...
2017-02-04 08:37:58 +01:00
chme
d293356d8b
[db] Extract function to fix queue position values
2017-02-04 08:37:58 +01:00
chme
1c8263224e
[db] Fix incorrect query for db_queue_delete_bypos
2017-02-04 08:37:58 +01:00
chme
bd4e379f15
[dacp] Fix requests for cue_play with command = "play"
2017-02-04 08:35:02 +01:00
chme
4e4e91d4a2
[player] Add log messages in case playback_start_item returns -1
2017-02-04 08:35:02 +01:00
ejurgensen
9d8dbaffe1
[db] Fix typo ( closes #347 )
2017-02-01 18:56:34 +01:00
ejurgensen
bbb3322ddc
[spotify] Flush audio buffer on playback stop - and since we are
...
flushing from another thread we use evbuffer_enable_locking() which
in turn adds a requirement for libevent_pthreads to be present
2017-01-30 22:50:02 +01:00
ejurgensen
f7018dc659
[player] Skip/remove unplayable tracks in queue instead of aborting
2017-01-29 22:07:51 +01:00
ejurgensen
b44ae55c1d
Some scan-build fixing up
2017-01-28 22:37:56 +01:00
ejurgensen
12567d8e93
[pipe] Make Shairport metadata parser work with incomplete reads from pipe
2017-01-28 22:20:35 +01:00
ejurgensen
41c5ef1474
[compat] Suppress warnings about unused functions
2017-01-28 22:20:35 +01:00
ejurgensen
b6f969d96e
[pipe/mxml] Add compability with older versions of mxml
2017-01-28 22:20:35 +01:00
ejurgensen
97aa544945
[library] Move library update trigger to new library module
2017-01-28 22:20:35 +01:00
ejurgensen
dc84294348
[input/pipe] Parse basic Shairport metadata using mxml
2017-01-28 22:19:51 +01:00
ejurgensen
ea874154b2
[input/file_http] Use swap_pointers to transfer ownership of metadata
2017-01-27 22:36:00 +01:00
ejurgensen
67d0504700
[input] Let input_metadata_free zero metadata like the other free functions
2017-01-27 22:36:00 +01:00
ejurgensen
c975cf4474
[misc] Set output of safe_xxx to 0 also in error cases (for safety)
2017-01-27 22:36:00 +01:00
ejurgensen
ab06a9fd7d
[player] Update info about player.c
2017-01-27 22:36:00 +01:00
ejurgensen
ae1f2d75d3
[pipe] Prepare reading and parsing Shairport metadata pipes
2017-01-27 22:36:00 +01:00
ejurgensen
8b5cac0538
[file/http/input] Implement metadata handling through input interface
2017-01-27 22:36:00 +01:00
ejurgensen
0b9b008a1a
[player] Try to consolidate metadata handling + use input interface
2017-01-27 22:36:00 +01:00