Commit Graph

2572 Commits

Author SHA1 Message Date
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
Julien BLACHE
385375cdc6 Add RAOP control request handler 2010-10-06 19:30:03 +02:00
Julien BLACHE
a2329dfd3a Use djb_hash(libname) as the RTP SSRC ID 2010-10-03 17:01:08 +02:00
Julien BLACHE
f13a83147d Move code around, no functional changes 2010-10-02 13:18:12 +02:00
Julien BLACHE
65a75dd85f Do not use a scoped address in SDP payload 2010-10-02 12:41:45 +02:00
Julien BLACHE
309ad6060e RAOP device discovery rework, rework add/update 2010-09-30 19:24:34 +02:00
Julien BLACHE
48de711301 RAOP device discovery rework, remove add/remove branch & reindent 2010-09-30 19:18:49 +02:00
Julien BLACHE
999066d703 RAOP device discovery rework, split remove code 2010-09-30 19:15:17 +02:00
Julien BLACHE
01df67ceb6 Move last_active check into the device add case 2010-09-30 19:08:43 +02:00
Kai Elwert
cd8686be82 Add DB profiling support 2010-09-29 18:56:38 +02:00
Julien BLACHE
5c81144beb Revert to standard SQLite functions for DB startup, creation and upgrade
No need to use the blocking variants here as there is no concurrency during
DB startup.
2010-09-29 18:26:31 +02:00
Julien BLACHE
b79cf13c95 Remove custom collation and custom daap_songalbumid() function code 2010-09-28 18:39:43 +02:00
Julien BLACHE
da0011de3b Load our SQLite extension 2010-09-28 18:38:10 +02:00
Julien BLACHE
517f11c691 Add the SQLite extension to the build 2010-09-28 18:35:25 +02:00
Julien BLACHE
743476fec0 Add SQLite extension
Move the custom collation and daap_songalbumid() function to a custom SQLite
extension. This will make it possible to use them both from any SQLite client
or frontend.
2010-09-28 18:33:32 +02:00