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