Commit Graph

40 Commits

Author SHA1 Message Date
Julien BLACHE c3e24a0d9a Hide get_pos() debug messages behind DEBUG_SYNC 2010-11-28 17:33:19 +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 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
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 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
Julien BLACHE a3d549bd37 Reduce stack usage for boolean flags 2010-09-25 20:57:10 +02:00
Julien BLACHE 50a9a3690f RAOP auth quirk for old (802.11g) AirPort Express 2010-09-25 20:57:10 +02:00
Julien BLACHE 8411aa48b7 Keep Avahi code inside mdns_avahi.c 2010-09-18 17:25:50 +02:00
Julien BLACHE 7ba3b23f63 Rename mdns_avahi.h to mdns.h 2010-09-18 17:24:34 +02:00
Julien BLACHE aa57931879 Fix typo in goto label name 2010-09-17 12:21:05 +02:00
Julien BLACHE bff494ac5d Use a union for command argument in struct player_command 2010-09-13 19:08:29 +02:00
Julien BLACHE 7f79ca5709 Modify player commands to use per-command lock & condition
This makes the player commands usable in a concurrent multithread setup, which
was not the case with the global command+lock+condition due to the time it
could take the player thread to act upon the command event. This left a wide
open window for race conditions with other threads locking cmd_lck before the
player thread had a go at it.
2010-09-13 19:07:00 +02:00
Julien BLACHE 942f3e4aad Modify player-to-DACP status update communication
Have DACP set a callback (through a sync_command() setter) into the player
instead of setting an fd without any locking. All the code now lies in DACP
instead of being split between DACP and the player.
2010-09-13 18:40:41 +02:00
Julien BLACHE ac427025b5 Remember selected output devices accross restarts
Save the selected devices to the DB at exit and automatically re-select them
the next time, provided:
 - the player is not running already when the device appears
 - the device appears no later than 5 minutes after startup
2010-08-04 19:17:21 +02:00
Julien BLACHE b3294c5079 Fix debug message typo 2010-08-03 19:11:41 +02:00
Julien BLACHE 7d480faecd Properly stop playback if playback cannot start to reset player state
If the playback cannot start for a reason of another, the player state
needs to be reset by calling playback_stop().
2010-08-03 19:09:50 +02:00
Julien BLACHE 98aaa7c5fa Maintain current playlist ID in the player state
cur_plid is 0 if not playing a playlist and takes the playlist ID otherwise.
2010-07-31 12:30:51 +02:00
Julien BLACHE 94b4cd2459 Add support for shuffle in DACP playspec request 2010-07-31 12:09:13 +02:00
Kai Elwert 4a160e8ad1 Add player_queue_make_pl() for playlist-based queues 2010-07-31 12:09:13 +02:00
Kai Elwert 055fe8f442 Make player_queue_make() generic and introduce player_queue_make_daap() 2010-07-31 10:30:45 +02:00
Julien BLACHE 2e6ed82e14 Fix debug message 2010-07-31 10:30:45 +02:00
Julien BLACHE 3148ec8209 Stop command event and timer event (if running) at deinit 2010-07-30 22:16:07 +02:00
Julien BLACHE 9cb4aaa921 Look out for AppleTV and flag the device for unencrypted streaming
The AppleTV has been reported as not using the encryption. Not actually
tested as I don't have an AppleTV to test with.
2010-07-30 19:09:09 +02:00
Julien BLACHE f5bcc82afb Rework password handling in RAOP mDNS browser callback 2010-07-30 19:09:09 +02:00
Julien BLACHE 7a09ee4092 Add support for streaming unencrypted audio 2010-07-30 19:09:09 +02:00
Julien BLACHE 47bd255ffc Do not add AirTunes devices that don't support AirTunes v2
Filter based on the tp field of the mDNS TXT record.
2010-07-17 08:05:06 +02:00
Julien BLACHE 01cde2c50c Cleanup debug message 2010-07-10 12:26:31 +02:00
Julien BLACHE b8238e6a78 Add IPv6 support to player and RAOP for device discovery 2010-05-14 17:37:55 +02:00
Julien BLACHE 4bd09cba62 Browse and resolve mDNS services on both IPv4 and IPv6 2010-05-14 17:36:29 +02:00
Julien BLACHE 143b612c97 Fix REPEAT_OFF behaviour on single-item playlists 2010-05-09 09:52:09 +02:00
Julien BLACHE 576e1cc9ef Check for player status after playback_write()
playback_write() can actually stop the player, so check that this did
not happen.
2010-05-09 09:24:05 +02:00
Julien BLACHE c2977fd61d Protect playback_start() againt empty playlist 2010-05-05 19:19:16 +02:00
Julien BLACHE 682e495ed0 Protect shuffle against empty player playlist 2010-05-05 19:17:36 +02:00
Julien BLACHE 882b42f83c Port player to FreeBSD
The kqueue/kevent timers are no replacement for timerfd, so unfortunately this
doesn't work well at all. Need a higher resolution timer.
2010-05-02 11:45:16 +02:00
Julien BLACHE 47589ff34a Add audio player 2010-05-02 11:45:14 +02:00