ejurgensen
65110a9f39
Fix FreeBSD sound timing problems
2014-09-27 22:59:19 +02:00
ejurgensen
dafa26a48a
Protect against uinitialized var if query is empty
2014-09-26 23:13:17 +02:00
ejurgensen
ca3fada215
Fix ALSA audio problem where threshold will not be reset because
...
commit 7462290
decreased the value of pcm_pos
2014-09-19 22:18:07 +02:00
ejurgensen
27e7148405
Use STOB() in player.c since it is defined right in player.h
2014-09-19 22:14:31 +02:00
ejurgensen
f543b768ac
Merge pull request #41 from chme/skipprev
...
rfc: Change behavior of skip to previous song
2014-09-12 21:45:15 +02:00
ejurgensen
2fc681a971
Add condition for FreeBSD, ignore SCHED_BATCH in filescanner.c
2014-09-12 17:52:08 +02:00
ejurgensen
8c9793d9ef
Fix filescanner bugs:
...
- stop init-rescan/full-rescan from running twice
- set thread priority to batch
- don't request libevent to loop when the loop is already running
2014-09-11 22:41:07 +02:00
ejurgensen
5bfe4673f5
Add a function in filescanner.c to enumerate certain file types
...
Fixes bug where init-rescan and full-rescan would run twice because
two inotify events get triggered by eg 'touch xxx.init-rescan'
2014-09-10 22:16:52 +02:00
ejurgensen
97910f3a99
Fix bug where LastFM session key in db was ignored
2014-09-08 23:13:12 +02:00
ejurgensen
be7a6c7b1e
Don't try to login to Spotify if the filescanner got an exit signal
2014-09-08 22:45:05 +02:00
ejurgensen
94c5352db6
Remove EVLOOP_ONCE calls in filescanner
...
These calls generate error messages when the loop is already running, which
will be the case when using init-rescan or full-rescan. The only purpose
of these calls seems to be to check for exit signals from the main thread
during a startup bulk scan, where the loop is not running yet. However, we
can check for an exit signal by just setting/checking scan_exit.
This commit also removes the unused filescanner_status().
2014-09-08 21:57:52 +02:00
ejurgensen
d2d85b29f4
Lower the priority of the thread so forked-daapd may still respond
...
during file scan on low power devices
2014-09-07 13:48:03 +02:00
ejurgensen
2545aedc2a
Avoid duplicate rows in the admin table
2014-08-27 22:12:42 +02:00
ejurgensen
ae3b5077ec
Add support for .pls playlists
2014-08-27 21:57:16 +02:00
ejurgensen
1b51fcf07c
Rename filescanner_m3u to _playlist, because we are going to add
...
support for pls
2014-08-27 21:54:28 +02:00
ejurgensen
b26e507baa
Fix memleak in DAAP cache
2014-08-25 22:05:44 +02:00
ejurgensen
271e2c29e1
Add some libevent 1 compability
2014-08-24 14:51:41 +02:00
ejurgensen
d157aca620
Save response times in DB and show in log (for debugging)
2014-08-24 12:43:32 +02:00
ejurgensen
31ef4d4e13
Add slow DAAP queries to cache automatically
2014-08-24 01:23:23 +02:00
ejurgensen
cf091e8d8b
Adjust daapcache so it serves User-Agent to httpd_daap's reply handlers
2014-08-23 00:02:01 +02:00
ejurgensen
624dd40c59
Include DAAP queries from Retune and TunesRemote+ for caching
...
+ misc fixing up
2014-08-22 22:51:13 +02:00
ejurgensen
f997aca452
More DAAP cache adjustments
2014-08-21 23:06:52 +02:00
ejurgensen
eac718ea0f
Some more daap cache triggers
2014-08-21 10:14:24 +02:00
ejurgensen
76231cac0f
Experimental caching of playlist 1
2014-08-21 10:01:47 +02:00
ejurgensen
7623de1ac4
Allow const char tags and handle null requests in dmap_common
2014-08-21 09:59:59 +02:00
ejurgensen
39b9c4fc33
Make DAAP cache use and location configurable
2014-08-20 23:09:23 +02:00
ejurgensen
f3a19fce8e
Add DAAP cache backend
2014-08-20 00:21:48 +02:00
ejurgensen
a594455e09
Add db_query_run() to get rid of some redundancy in db.c
2014-08-18 00:20:23 +02:00
ejurgensen
6d8e4c67aa
Support for LastFM scrobbling (issue #19 )
2014-08-15 23:36:54 +02:00
ejurgensen
21cf3ab7d3
Add trimwhitespace(), keyval sorting and alloc to misc functions
...
- features required by the LastFM module
2014-08-15 22:56:39 +02:00
ejurgensen
d5efc2dcb3
Add db interface to update the admin table
2014-08-15 22:54:47 +02:00
ejurgensen
b0807b168e
Preproc defines in evhttp_compat.h to protect against double inclusion
2014-08-15 22:53:47 +02:00
Marlies Heijkoop
bbb21b0bad
Don't segfault on invalid utf8 while sorting
...
`strmblen` returns -1 on invalid sequences, which causes a segfault when passed as length to `stpncpy`.
2014-08-14 20:06:45 +02:00
chme
05e6402dc6
Fix skip to next song while the last song in Up Next is playing
...
(introduced in a6c2a25
)
2014-08-02 07:25:18 +02:00
chme
974c6e6323
add missing "#undef Q_TMPL"
2014-07-27 11:16:00 +02:00
chme
a6c2a25642
If reshuffling with repeat all songs in queue active, set shuffle-head
...
to current playing song. Previously the shuffle-head was set to the next
song after the current, therefor the UpNext-queue appeared empty after
adding new songs to the queue.
2014-07-25 18:51:34 +02:00
chme
87b415b0d4
Fix segfault on reshuffling one item
2014-07-25 18:25:20 +02:00
chme
5065c3e4a0
Use query parameter if queuefilter parameter is unkown
2014-07-19 08:45:40 +02:00
chme
49a985391d
Ignore queuefilter on playqueue-edit-add if mode = 0 (add to up next)
2014-07-19 08:44:27 +02:00
chme
74622904e3
local audio: do not add pcm_buf_threshold to pcm_pos (leads to wrong
...
position in Remote)
2014-07-17 20:14:21 +02:00
chme
4d79a85780
Change behavior of skip to previous song to start the current song from
...
the beginning, if it is playing for more than 3 seconds
2014-07-17 20:14:21 +02:00
chme
fe2abfd123
clear queue on playback abort
2014-07-17 20:12:19 +02:00
chme
9527e06f71
reshuffle only songs in the UpNext queue
2014-07-17 20:12:19 +02:00
chme
46c0239a79
Added options to modify the operation of the SQLite database (through PRAGMA statements)
...
- set cache size (in number of pages)
- set synchronous flag
- set journal mode
2014-07-13 10:35:38 +02:00
ejurgensen
17ffdc56ad
Fix bug where streams with sample rate < 44100 stop too early (with libav 10+)
...
- avresample_convert should be passed max samples to convert, not
number of samples in input (which for low sample rates is lower
than output)
2014-07-06 23:31:20 +02:00
ejurgensen
129c00c3d1
Change some playlist scanner log levels
2014-06-23 01:51:32 +02:00
ejurgensen
0a2d2273bd
Remove build warning caused by data type mismatch
2014-06-22 22:29:45 +02:00
ejurgensen
7810f16361
Fix bug where it will wait endlessly if a Spotify track is paused the last few
...
seconds of a track (after new track has been opened)
2014-06-22 22:27:52 +02:00
ejurgensen
a860907202
Another preprocesser condition for OpenWrt compability
2014-06-16 23:46:30 +02:00
ejurgensen
2247fadbfa
Some preprocessor conditions for compability on OpenWrt
2014-06-16 23:31:44 +02:00
ejurgensen
a181b515f2
Merge branch 'dev'
2014-06-11 23:10:52 +02:00
ejurgensen
d993bc3750
Defer loading Spotify playlists until bulk scan is complete
...
(because of database locking issues)
2014-06-10 22:49:44 +02:00
ejurgensen
1bd11d2895
Fix so permission changes in the library are handled (issue #8 )
2014-06-09 23:42:02 +02:00
ejurgensen
30aa93479d
Merge branch: libevent compability improvements
2014-06-02 21:59:50 +02:00
ejurgensen
844a9b43c9
Fixup new libav 10 icy extraction
2014-06-02 21:51:50 +02:00
ejurgensen
ada7ccca8f
Change log level of .remote message to ease pairing troubleshooting
2014-06-02 21:08:24 +02:00
ejurgensen
116289f5b7
Libav 10 (and ffmpeg) now has native support for ICY metadata
2014-06-02 00:00:52 +02:00
ejurgensen
b566c41a36
Setting log level to info gave a lot of meaningless db.c messages
2014-06-01 23:58:44 +02:00
ejurgensen
c740e6e3b0
Make compatible with libevent 2.0 by crippling streaming and ICY metadata (see issue #30 )
2014-05-30 23:39:03 +02:00
ejurgensen
5b4ef31758
Migrate all evhttp to non-deprecated libevent2
...
- well except a troublemaker in httpd_daap.c (req->flags &= ~EVHTTP_PROXY_REQUEST)
2014-05-29 23:22:00 +02:00
ejurgensen
22d37f240b
ICY scanner modifications
2014-05-29 11:50:56 +02:00
chme
a4fbeed81e
Added comments to queue_clear and queue_empty
2014-05-29 09:45:04 +02:00
ejurgensen
02c23b0065
Better thread sync, cleanup and libevent compability in ICY filescanner
2014-05-26 23:38:19 +02:00
chme
b7cb0da2c2
Modifications to the playqueue-clear command:
...
- do not stop playback when clearing the UpNext queue
- clear history, if mode=0x68697374 ("hist")
2014-05-24 07:34:59 +02:00
ejurgensen
aa8344d14d
Some filesystems have mtime=0 (Seafile), so add check for stamp before
...
letting the scanner exit with just a db ping
2014-05-21 22:31:05 +02:00
ejurgensen
519a673503
Extra error check
2014-05-20 22:45:25 +02:00
ejurgensen
8468f55910
Honor the "ek" (encryption) flag for RAOP_DEV_OTHER + slight rewrite of raop_device_cb
2014-05-18 17:19:50 +02:00
chme
f60be3c8af
Do not use queryfilter on "play next" and "add to up next" commands
2014-05-18 09:04:17 +02:00
chme
a1b09903c0
- Fix crash when calling add-next and cur_playing/cur_streaming are NULL
...
- Append songs after cur_streaming
2014-05-17 14:13:18 +02:00
ejurgensen
dafc748bfd
Clear watches from db on init-rescan
2014-05-14 21:39:25 +02:00
ejurgensen
915719f0f8
Fix Spotify exemption from purge during init-rescan
2014-05-14 20:44:07 +02:00
ejurgensen
6b0c5997bf
Fixup init-rescan
2014-05-13 22:14:19 +02:00
ejurgensen
c1be585469
Extra log message for debugging apparent db locking issue
2014-05-13 22:02:32 +02:00
ejurgensen
a7d0a603b3
Excempt Spotify items from rescan purge
2014-05-13 20:57:37 +02:00
ejurgensen
851b57017d
Add option to trigger startup scan, rename force-rescan and better cleanup in full rescan
2014-05-11 23:55:18 +02:00
ejurgensen
0aa8416a21
Reset inotify when force-rescan is triggered
2014-05-11 23:44:15 +02:00
ejurgensen
5a5163e699
Move db_analyze/db_hook_post_scan (credit @chme)
2014-05-11 23:17:29 +02:00
ejurgensen
a5b2fbc0fe
Wrap bulk scan in a db transaction (credit @chme)
2014-05-11 23:13:09 +02:00
ejurgensen
44c3dba3d9
queue_remove was removing wrong item
2014-05-06 22:55:59 +02:00
ejurgensen
305c1a141c
Indentation
2014-05-04 22:36:37 +02:00
chme
7e43a42c88
Remove dead code: playback_next_bh and playback_prev_bh are only called
...
during playback_pause. In playback_pause "cur_playing" is always set to
NULL so that in playback_next_bh and playback_prev_bh only the
else-clause can become true.
2014-05-04 05:45:53 +02:00
chme
79646c78e4
fixup indentation
2014-05-03 20:16:51 +02:00
chme
8036a5a6d3
fixes for playqueue-contents
2014-05-03 20:16:51 +02:00
chme
5f307c7ce1
Added support for playqueue-contents with negativ span value (returns the previously played songs)
2014-05-03 20:16:51 +02:00
ejurgensen
20539c0c08
Remove unused variable in queue_next_add
2014-04-30 23:33:42 +02:00
ejurgensen
a2f90a997c
Make sure albums/artists appear the same despite different capitalization
2014-04-30 23:30:08 +02:00
chme
eab4c1c3d2
Fix "play next" command - the queue was not circular anymore due the
...
missing setting of pl_prev of the next song and start the shuffle-queue
with ps_shuffle
2014-04-23 20:44:40 +02:00
ejurgensen
8eb6b46ed2
Adjustments to queue_move/queue_remove, mostly for consistency
2014-04-21 21:21:40 +02:00
ejurgensen
748ce1413f
Revert msed to 0 for now
2014-04-20 23:34:04 +02:00
chme
4c5abdac5e
add songs for album or artist ordered by album
2014-04-20 11:03:49 +02:00
chme
2391838ea1
announce support of playlist editing by setting "msed" to 1
2014-04-20 07:33:28 +02:00
chme
01cc83f819
respect coding convention and changed log level
2014-04-20 06:43:01 +02:00
chme
32c3b57fcd
added support for the playqueueedit add next command
2014-04-19 09:12:58 +02:00
chme
475a2f4e8f
added support for the playqueueedit remove command
2014-04-19 08:35:07 +02:00
chme
c3c2c421d2
added support for the playqueueedit move command
2014-04-19 08:09:32 +02:00
ejurgensen
365c5a3bc9
Only queue the rest of the album on quirky query
2014-04-18 22:39:17 +02:00
ejurgensen
2c16b070ed
Make the update of playcount non-blocking for playback
...
- otherwise slow updates would disrupt streaming when switching track
2014-04-18 22:31:37 +02:00
ejurgensen
35e9b3dc30
Fix bug in m3u scanner
2014-04-18 13:08:31 +02:00
ejurgensen
c7aaf6eff3
Forgot a spotify enabled condition
2014-04-05 22:30:35 +02:00
ejurgensen
c47287a556
Support for Spotify artwork
2014-04-04 23:14:43 +02:00
ejurgensen
1be543b00a
Only cache available Spotify tracks
2014-04-03 20:44:36 +02:00
ejurgensen
d722b18817
Add optional request-session-id to login request
...
- should make it easier to write curl scripts to control forked-daapd
since you avoid the need to parse the replies just to find a valid
session id
2014-04-01 22:47:04 +02:00
ejurgensen
7e2f47f9ca
Minor adjustment so Valgrind is happy with string handling in user_agent_filter
2014-04-01 21:51:07 +02:00
ejurgensen
a3f0145561
Open nonblock so it won't hang if other end is absent
2014-04-01 21:43:30 +02:00
ejurgensen
16756a6632
Clean up old allocations in pipe.c before allocating
2014-03-31 13:13:24 +02:00
ejurgensen
6062ca014b
Make the player able to stream from pipes
2014-03-31 13:10:18 +02:00
ejurgensen
9efc97d702
Add support for query-modifier=containers in DACP playqueue-edit
2014-03-31 01:53:46 +02:00
ejurgensen
8740249e05
Clear up some code in filescanner.c
2014-03-31 00:04:03 +02:00
ejurgensen
0c79a02e93
Fix error in filescanner when renaming files. Allow scanner to add
...
fifos (named pipes) for later Shairport integration.
2014-03-30 23:44:30 +02:00
ejurgensen
49498800ba
Add config option for preferred Spotify bitrate. README update.
2014-03-29 22:26:46 +01:00
ejurgensen
aef908b093
Don't announce support for playlist editing
2014-03-28 20:44:19 +01:00
ejurgensen
7d410fb6e7
Disable aeMk in databases reply since we don't calculate it properly
2014-03-28 19:25:15 +01:00
ejurgensen
35f8dd4233
DAAP modifications to properly show media kind shares in iTunes
2014-03-26 23:59:28 +01:00
ejurgensen
3ff4fa77be
Merge branch 'libevent2' into dev
2014-03-24 04:59:08 +01:00
ejurgensen
c01bb54b79
Poor man's natural sort
...
- sort a1, a2, a11, a21, a100 instead of a1, a11, a100, a2, a21
2014-03-24 04:56:36 +01:00
ejurgensen
87f8b204df
Rewrite spotify to use libevent for better reliability
2014-03-23 21:45:06 +01:00
ejurgensen
7c3da47eb7
Small DAAP changes to align with iTunes
2014-03-23 00:23:34 +01:00
ejurgensen
708b76ce1e
Play only a single item when playspec has item-spec (Podcasts/Audiobooks)
2014-03-21 23:38:14 +01:00
ejurgensen
c01698e462
Filescanner should not watch for IN_MODIFY
...
- it is bad for performance (triggers many db selects) and is
useless anyway.
2014-03-21 22:57:56 +01:00
ejurgensen
3f1edc0082
Oops
2014-03-18 11:35:47 +01:00
ejurgensen
9484c43601
Prevent notify_main_thread from mucking with SPOTIFY_EVENT before an
...
event has been processed
2014-03-18 11:31:48 +01:00
ejurgensen
59b6462ba6
Small logging change
2014-03-18 10:01:06 +01:00
ejurgensen
4ab7ea6e31
Reduce Spotify logging a bit
2014-03-18 09:57:49 +01:00
ejurgensen
c3f05671b2
Spotify: When track ends, empty buffer before stopping. Also some
...
safeguards against indefinite waits and null pointer dereferencing.
2014-03-17 22:25:47 +01:00
ejurgensen
8b97d7fdd8
Forgot to remove some debug messages in mdns_avahi.c
2014-03-16 23:14:30 +01:00
ejurgensen
ae70bf58fc
Make mdns_avahi.c fully compliant with libevent 2, so it doesn't
...
complain in the logs about missing event base for event_del_
2014-03-16 23:11:21 +01:00
chme
d5c6f1f72f
Use EVBUFFER_EOL_CRLF for evbuffer_readln to make sure that the end of
...
the rtsp-header (an empty line) is recognized
2014-03-13 23:34:34 +01:00
ejurgensen
687f349927
Let configure check libevent version and include according to version
2014-03-13 23:33:35 +01:00
ejurgensen
5c40b2344c
Another filescanner bug fix after Spotify commit
2014-03-12 22:59:47 +01:00
ejurgensen
f6e9ddbc41
Repair legacy filescanners (broken by libav conditions)
2014-03-12 22:54:30 +01:00
ejurgensen
81b285a79e
Fix horrible filescanner bug I introduced with the Spotify commit
2014-03-12 21:48:04 +01: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
7997377deb
Adjust for libav 10 API
...
With libav 10 the API is (again...) changed, adjust for that and
add the appropriate version conditions
2014-02-17 23:05:24 +01:00
ejurgensen
1ec1528f3b
Mimic iTunes and reply 204 No Content to playqueue-edit&add
2014-02-13 15:46:24 +01:00
ejurgensen
23a7e82a1f
Add support for max volume for AirPlay devices (raop)
2014-02-09 16:07:00 +01:00
ejurgensen
258163e6ce
hi-res timer commit broke FreeBSD. This attempts to go back to the
...
old code for FreeBSD.
2014-02-08 22:59:07 +01:00
ejurgensen
01f290cc2a
Replace AirTunes with AirPlay in doc and log messages
2014-02-07 22:10:40 +01:00
Justin Maggard
0ec6e2f072
Extend support for kernels without high-res timers to 64-bit platforms.
2014-02-05 18:15:17 -08:00
Anthony Doko
949cf3808d
Add support for embedded platforms that don't have high-res timers.
2014-02-05 18:11:10 -08:00
Justin Maggard
0426aa2d08
Fix issue with many WMA audio files not being recognized
2014-02-05 17:44:01 -08:00
Justin Maggard
5c8b28cda4
Fix crash with an empty buffer
2014-02-05 17:38:14 -08:00
Justin Maggard
f9a76aeb1a
Add User-Agent detection for iTunes video playback on OSX
...
iTunes on OSX has a different User-Agent when playing back video
files. Detect this so we can deterimine his codec support.
2014-02-05 17:34:27 -08:00
Justin Maggard
2f04529165
Don't use chunked encoding on range requests
...
If the client is requesting a partial file, don't use chunked
encoding. This makes video files work in iTunes.
2014-02-05 17:32:09 -08:00
ejurgensen
3c941ca0e1
iTunes will drop the connection if user seeks during playback, but
...
no reason to log that on default log level
2014-02-03 23:12:19 +01:00
ejurgensen
3064509f62
HTTP Range header may be in the form 'bytes=12345-' (no end offset)
2014-02-03 22:02:20 +01:00
ejurgensen
4842751527
Reduce log level verbosity when no real error (eg no md field)
2014-02-03 21:54:46 +01:00
ejurgensen
6ad43e2369
Merge branch 'useragent'
2014-01-30 21:45:58 +01:00
ejurgensen
7314d0de0d
Add config option to disable initial file scan
2014-01-28 22:40:07 +01:00
ejurgensen
785383861b
ffmpeg/libav conditions for CodecID and AVCODEC_MAX_AUDIO_FRAME_SIZE (thanks @freultwah)
2014-01-27 21:24:08 +01:00