Julien BLACHE
c92c8aae25
Grab a few more metadata from iTunes playlists
2010-12-18 14:33:25 +01:00
Julien BLACHE
fa299a9be9
Add debug message for RTSP requests
2010-12-12 15:06:57 +01:00
Julien BLACHE
2011c33526
Cosmetic fix to RAOP device type strings
2010-12-12 10:27:04 +01:00
Julien BLACHE
00c6de15ae
Make player_playback_stop() a synchronous call for real
...
Also, don't stop RAOP devices, just FLUSH them; this saves time when we
restart playback soon after stopping.
2010-12-12 10:25:21 +01:00
Julien BLACHE
507cdb00e8
Rename playback_stop() to playback_abort() and make it an internal helper
2010-12-12 10:12:39 +01:00
Julien BLACHE
dc31d75801
Fix endless loop on source errors under some REPEAT settings
...
Let source_read() propagate errors so playback_write() can abort if a
source error occurs.
2010-12-12 10:00:43 +01:00
Julien BLACHE
1e9078182d
Fix RAOP volume printing
...
Partial revert of 4ac75a316a
, going back to
the previous way of computing the RAOP volume. Fixes printing when volume
is 0.0 (would print -0.000000).
2010-12-07 12:49:48 +01:00
Julien BLACHE
02ea6f4823
Downgrade volume computations to float (from double)
...
Although we lose precision, this is still enough for computing relative,
absolute and RAOP volume and will make a difference on embedded CPUs.
2010-12-04 16:15:49 +01:00
Julien BLACHE
4ac75a316a
Modify RAOP volume computation and printing
...
Compute the absolute value and do not use floor() to print out the
volume.
2010-12-04 16:13:54 +01:00
Julien BLACHE
da3900afad
Avoid clobbering $LIBS when checking for av_lockmgr_register
...
This led to the sqlite extension being linked against libavcodec, which it, of
course, doesn't use at all.
2010-12-04 15:22:39 +01:00
Julien BLACHE
d6d7450557
Bump DACP protocol version
2010-12-04 15:08:07 +01:00
Julien BLACHE
76621797e2
Implement DACP volume interface for Remote 2.0
2010-12-04 15:08:07 +01:00
Julien BLACHE
1372f90ce7
Send out per-speaker (relative) volume atom
2010-12-04 15:08:07 +01:00
Julien BLACHE
5674314161
Support clear-first in cue play command
2010-12-04 15:08:07 +01:00
Julien BLACHE
0df4ab4555
Implement master volume & per-speaker relative volume
...
Volume is set independently for each speaker relative to the master
volume. Methods allow to set speaker volume independently and in relation
to the master volume.
2010-12-04 15:08:07 +01:00
Julien BLACHE
9e9c3e42cc
Rework RAOP volume setting to be per-speaker
...
Player now pilots RAOP volume setting directly on a per-speaker basis.
2010-12-04 15:08:06 +01:00
Julien BLACHE
9bd6d459a2
Maintain per-speaker volume information
2010-12-04 15:08:06 +01:00
Julien BLACHE
6f7b12b1f2
Handle database upgrade v10 -> v11
2010-12-04 15:08:06 +01:00
Julien BLACHE
27c89cf312
Remove old db_config_* interface
2010-12-04 15:08:06 +01:00
Julien BLACHE
9507f8d059
Switch speaker state-saving to new db_speaker_* 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
Julien BLACHE
7de9408a10
Make sure device is deselected before removing it
2010-12-02 19:56:26 +01:00
Julien BLACHE
78df98ba35
Introduce speaker selection/deselection helpers
2010-12-02 19:56:26 +01:00
Julien BLACHE
55f0c7cfcd
Rename volume to master_volume
2010-12-02 19:53:36 +01:00
Julien BLACHE
edfcf955a7
Replace device autoselect deadline with a boolean flag
...
Devices can be autoselected until we first get into the PLAY_PLAYING state.
This avoids having to check the player state when adding devices.
2010-12-02 19:53:36 +01:00
Julien BLACHE
25cdedc343
Remove device list lock (dev_lck)
...
No longer necessary now that all device list operations happen in the
player thread.
2010-12-02 19:53:36 +01:00
Julien BLACHE
320d3b9dde
Manage devices entirely in the player thread
...
Provide non-blocking player commands to the mDNS callback to manage
the device list. All operations on the device list now happen in the
player thread.
2010-12-02 19:52:45 +01:00
Julien BLACHE
389e3f1123
Introduce non-blocking commands
2010-12-02 19:51:50 +01:00
Julien BLACHE
ec4299e6c7
Turn speaker enumeration into a sync command
2010-12-02 19:51:08 +01:00
Julien BLACHE
418e818bee
Move code around, no functional changes
2010-11-28 17:37:48 +01:00
Julien BLACHE
c3e24a0d9a
Hide get_pos() debug messages behind DEBUG_SYNC
2010-11-28 17:33:19 +01:00
Julien BLACHE
12daf7237e
Downgrade debug message priority
2010-11-28 17:33:07 +01:00
Julien BLACHE
45e3d55ee0
Enumerate all active or advertised speakers
...
We need to include speakers that are currently active in our enumeration,
even if they're not advertising anymore; until the session is declared failed
by RAOP, we are streaming to this device, even if it's not advertising
anymore - which may be a temporary condition.
2010-11-28 17:33:00 +01:00
Julien BLACHE
c70caad87e
Disable session expiration
...
Auto-logout currently doesn't work as expected and breaks streaming etc once
the timeout occurs. Disable it until we can make it work as expected.
Maybe we'll need to upgrade the DAAP version.
2010-11-11 10:44:57 +01:00
Julien BLACHE
8cc3d4841f
Move last_active check into raop_device_find_or_new()
...
Removes some of the clutter in the mDNS callback and ensures the check is only
done for new devices.
2010-11-02 19:13:46 +01:00
Kai Elwert
6bfc4a65e2
Implement sort=artist for DACP/player
2010-10-26 18:06:36 +02:00
Peter
204a756283
Fallback to the Master mixer element if PCM is not available
...
When using PulseAudio through ALSA, the mixer doesn't have a PCM element;
fallback to Master in this case.
2010-10-24 18:53:58 +02:00
Julien BLACHE
791a2770f0
Document new artwork behaviour
2010-10-24 18:48:55 +02:00
Peter
4f164b939c
Add support for JPEG artwork and cover.{png,jpg} album artwork
2010-10-24 18:44:53 +02:00
Julien BLACHE
ee10bcf968
Rework target size determination
...
Move the code out of artwork_rescale() and into artwork_get(). Properly
implement "PNG prefers even row count" to avoid artifacts.
2010-10-24 17:38:12 +02:00
Julien BLACHE
fa868c5c7a
Make Murmur hash functions static
2010-10-24 16:37:36 +02:00
Julien BLACHE
2be812e04d
Fix 32bit MurmurHash64 routines
...
Properly handle the tail of the data buffer, accessing the tail as an
unsigned char array instead of a uint32_t array.
Issue spotted by Peter Carmichael.
2010-10-23 18:36:10 +02:00
Kai Elwert
65c8924898
Add daap.songalbumartist to the list of supported DAAP query fields
2010-10-09 16:32:27 +02:00
Kai Elwert
e5af78fe9f
Implement sort=artist for DAAP queries
2010-10-09 16:06:00 +02:00
Kai Elwert
ee7b976eeb
Advertise DAAP updates support in server-info
...
We don't send out DAAP updates, but Remote requires this to work.
2010-10-09 15:54:53 +02:00
Julien BLACHE
a8e7a7aeeb
Fix missing command_init() call in player_playback_next()
2010-10-07 21:06:40 +02:00
Julien BLACHE
aa33b520ed
Identify RAOP device type
...
Identify the device type in the mDNS callback and decide features & quirk
in RAOP based on the identified device type.
2010-10-07 21:06:40 +02:00
Julien BLACHE
3abf62179e
Implement RAOP retransmission
2010-10-06 19:30:04 +02:00
Julien BLACHE
10a0b16573
Implement RAOP retransmit buffer
2010-10-06 19:30:03 +02:00
Julien BLACHE
faea2d33a1
Split out RAOP packet sending
2010-10-06 19:30:03 +02:00