ejurgensen
08b2eb8d4c
[dacp/player] Change support for prevent-playback and busy (ref issue #934 )
...
Adds support for dcmp.device-busy, and also changes handling of
device-prevent-playback so it matches iTunes better.
2020-04-10 21:01:41 +02:00
ejurgensen
e61e98bcbb
[player] Reverse args to player_speaker_get_byid() for consistency
2020-01-03 19:38:52 +01:00
ejurgensen
af1bc27dd5
[dacp] Support for dmcp.device-prevent-playback (issue #855 )
2020-01-03 19:36:35 +01:00
chme
6e5d6791ff
[player/dacp/mpd/jsonapi] Combine seek commands into one with mode param
...
Also changes relative seeking behavior:
- seeking behind the the current track only switches to the previous
track, if we are not more than 3 seconds into the current track,
otherwise starts current track from the beginning
- seeking beyond the current track will start the next track from the
beginning
2019-10-20 14:36:21 +02:00
chme
ced11ef0c1
[player] Allow seeking by a relative amount of milliseconds
2019-10-20 14:36:21 +02:00
ejurgensen
4fb45e84f2
[player/outputs] New metadata handling (wip)
2019-03-18 23:06:08 +01:00
ejurgensen
87ca6363ae
[player/input] Refactor - WIP
...
* Open input sources earlier
* Gapless playback
* Remove fixed 44100/16 from player
* Complete restructure player internals
2019-03-18 23:06:08 +01:00
ejurgensen
a7e8476996
[outputs] Refactor outputs some more, eg change callback system
2019-03-18 23:06:08 +01:00
ejurgensen
e99f20992e
[player/outputs] Implement changed output interfaces in most backends
...
Still missing cast, alsa and pulseaudio, but these can so far just be
disabled with configure.
Otherwise still mostly untested.
2019-03-18 23:06:08 +01:00
ejurgensen
fcc91ecd86
[player/outputs] Handle multiple quality levels + use rtp_common (WIP!)
...
* Untie Airtunes stuff further from player and non-Airplay outputs
* Change raop.c to use rtp_common.c (step 1)
* Change heartbeat of player to 100 ticks/sec, since we have untied from
Airtunes 352 samples per packet (which equals 126 ticks/sec at 44100)
Still a lot to be done in the player, since the rtptime's in it don't
are probably broken.
2019-03-18 23:06:08 +01:00
ejurgensen
84e813038b
[player] Some additional comments
2019-03-18 23:06:08 +01:00
chme
116c315a84
[player] Rename struct spk_info to player_speaker_info
2019-01-22 17:47:15 +01:00
chme
db7b9c689b
[player] Add command to get a single speaker info by its id
2019-01-21 11:11:20 +01:00
ejurgensen
b6e1269cf2
[raop/dacp/player] Support for Airplay speakers to register volume updates
...
Implements Active-Remote, which is sent to the speaker, so it can use this
to tell us who it is when it makes dacp request with a device-volume update.
2018-05-27 16:12:20 +02:00
chme
decf9f1329
[player] Add commands to enable/disable output
2018-02-10 09:04:18 +01:00
chme
93879c6f90
[player] Refactor speaker enumerate callback
2018-02-10 09:04:18 +01:00
chme
1689182432
[player/raop] Trigger the SPEAKER event if device verification
...
succeeded/failed
2017-12-03 10:46:03 +01:00
chme
f696229fff
[player/dacp/mpd] Pass additional information to speaker enum callback
2017-12-03 10:46:03 +01:00
ejurgensen
6295f2d79a
[player] Make the player resilient in cases where an output blocks
...
(due to e.g. network problems) and also make sure that all devices
have called back before restarting after a suspend. Also a whole
lot of tidying up while I am at it.
2017-07-06 22:13:04 +02:00
ejurgensen
f63d103753
[raop] Add support for Apple TV device verification, required by tvOS 10.2 (fix for issue #377 )
...
- also change how speakers are saved/retrieved from the db
- add generic authorization methods in outputs.c and player.c
- let filescanner read *.verification files (containing PIN)
- configure options to enable and disable, since libsodium is required
2017-06-19 21:52:01 +02:00
ejurgensen
e6793b4779
[player] Add player_playback_start_byid() function, will be needed for pipe input
2017-02-08 22:29:37 +01:00
ejurgensen
0b9b008a1a
[player] Try to consolidate metadata handling + use input interface
2017-01-27 22:36:00 +01:00
ejurgensen
aa8edeead4
[player] Add suspend/resume on underrun + misc fixing up
2017-01-27 22:35:15 +01:00
ejurgensen
3e24f857fa
[input] Add input interface to player - WIP
2017-01-27 22:01:24 +01:00
chme
c3e8568782
[player] Add 'consume' mode
...
If consume mode is active the current song is removed from the queue at
eof or if the next song action is triggered.
2016-12-09 14:48:24 +01:00
chme
cef4fedfb4
Remove unused structs and player arguments
2016-12-03 11:12:19 +01:00
chme
c504abe451
Use queue db table instead of in memory queue struct
2016-12-03 11:11:33 +01:00
chme
bdb2c74934
[player/dacp/mpd] Pass absolute volume to speaker enumerate callback and
...
add absolute volume to mpd 'outputs' command
2016-10-25 22:40:48 +02:00
ejurgensen
36755031cb
[outputs] Make a wrapper for mp3 streaming so it can be included in
...
the generic outputs interface and so special handling in player.c can
be removed
2016-04-14 09:48:47 +02:00
chme
d35894ac15
[mpd] Return correct item-id for command 'addid' and return correct
...
number of items in the queue if player is stopped for command 'status'
2016-03-19 09:40:36 +01:00
chme
494a936caa
[mpd] Implement mpd command 'move'
2016-02-21 19:01:52 +01:00
ejurgensen
ffe8653d9e
[chromecast] Remove RAOP specifics from player.c, add generic output interface
2016-02-11 20:04:29 +01:00
chme
b2d2e9286f
[mpd] implement range support for 'delete' command
2015-11-22 12:06:01 +01:00
chme
1c409846d5
[player/queue] Add player commands to move queue-items by item-id
2015-10-31 07:56:50 +01:00
ejurgensen
2a610812a5
Refactor transcode.c so it can actually transcode + use new capability to support mp3 streaming.
...
Also includes the skeleton for perhaps supporting video in the future. Adds more fine-grained
ffmpeg/libav compability checks. Dependency on libavresample/libswresample exchanged with
dependency on libavfilter, which seems more versatile.
2015-10-09 23:58:27 +02:00
chme
199b765a7d
[player] Store item-ids in history to allow start of playback from the
...
previously played items in dacp
2015-10-04 08:05:37 +02:00
chme
b19a7280b9
[player] remove unused player_queue struct
2015-10-04 08:05:37 +02:00
chme
fbce3a7d57
[player] Confusing naming of ids cleaned up
2015-10-04 08:05:37 +02:00
chme
ba3385b0ec
[queue] Remove queue_info and queue_item_info structs
2015-10-04 08:05:37 +02:00
chme
a06424a701
[mpd] Expose queue-item-id instead of dbmfi-id in mpd commands
...
[player] Reshuffle on end of playlist and repeat mode is "repeat all"
2015-10-04 07:59:58 +02:00
chme
1f53d7ab1a
[queue] Refactor queue handling
...
Decouple the playing/streaming item from the queue. Move all queue
related functions to seperate file queue.h/c.
Introduce internal item "head" to make iterating over the play-queue and
shuffle-queue easier.
2015-10-04 07:59:57 +02:00
chme
1fbedaa54f
[player] Refactor queue_get
2015-10-04 07:57:38 +02:00
chme
f0a6a48599
[player] Refactor queue_remove functions
2015-10-04 07:57:38 +02:00
chme
1812848ee1
Move client protocol specific make_queue functions out of player.c/h
2015-10-04 07:57:38 +02:00
ejurgensen
68912efa1f
Enable resuming playback from saved position for certain media kinds (eg audiobooks)
2015-08-04 22:33:32 +02:00
ejurgensen
79cdfebf34
Merge pull request #150 from chme/mpdidle
...
Add support for mpd idle command
2015-05-21 22:31:03 +02:00
chme
8c12929b91
Added source code comments, return error value if adding/removing a
...
listener failed
2015-05-21 07:57:18 +02:00
chme
3886ec6638
Add version number for playlist (queue)
...
This is necessary to return a valid playlist id for mpd status command.
2015-05-09 07:46:33 +02:00
chme
d2c7c87191
use listener logic to send dacp update requests
2015-05-09 07:46:33 +02:00
chme
fb92040d4b
expose generic player_queue_make function
2015-05-09 07:35:15 +02:00