Mike Brady
69b3b5d776
Send rtsp events to the metadata thteread for handling. Begin to clean up signals.
2018-03-31 12:39:26 +01:00
Mike Brady
6dc30c6ca9
Add a few new elements ot the native dbus interface
2018-03-23 21:28:28 +00:00
Mike Brady
d692fab9e4
Clean up native dbus interface files and associated changes to existing files.
2018-03-20 16:31:59 +00:00
Mike Brady
fba40733f3
Add more basic remote control stuff, but SPS gets confused about who it can control.
2018-03-18 19:10:45 +00:00
Mike Brady
13931664ed
Check if locks are already acquired.
2018-03-16 15:57:35 +00:00
Mike Brady
9d9b0a1824
Add a Shairport Sync Diagnostics DBus Onject, only part working
2018-03-10 17:01:42 +00:00
Mike Brady
8991f3420c
Remove many causes of warnings at the -Wextra level
2018-03-07 20:48:21 +00:00
Mike Brady
c36a7822a3
Tidy up using clang-format
2018-03-07 14:35:25 +00:00
Mike Brady
07e46565ca
Eliminate almost all warnings from -Wall
2018-03-07 14:29:14 +00:00
Mike Brady
a7d82ae823
Begin to avoid strict aliasing violations -- not finished yet.
2018-03-07 08:58:23 +00:00
Mike Brady
283e4930e8
Add support for OpenBSD compilation
2018-02-09 21:11:39 +00:00
Mike Brady
a0bb2993df
Add timing to debug messages, make timing sender wait interruptable eveyr 20 ms, thus making TEARDOWN faster.
2018-02-03 20:24:58 +00:00
Mike Brady
f83b86ec23
Add the option to use a flat volume control profile.
2018-01-29 22:28:22 +00:00
Mike Brady
c6aa6fd27d
Add ability to diable resend request. Use a new "diagnostics" group in the configuration file and move log_verbosity and statistics to it.
2018-01-24 11:12:29 +00:00
Mike Brady
86b72a981a
Fix small compilation bug evident in FreeBSD
2018-01-23 10:18:02 +00:00
Mike Brady
4aaa8d19fe
Implement a rudimentary cover art file writing facility.
2018-01-16 22:22:03 +00:00
Mike Brady
e0aa75a80c
pretty-print after adding alsa volume-based mute capability
2018-01-13 20:15:27 +00:00
Mike Brady
3e5dbe9e1a
Move a play session's latency into the play session's data structure, duh.
2018-01-09 20:54:03 +00:00
Mike Brady
9cfc6c475b
use max-latency and min-latency information in AirPlay ANNOUNCE packets, remove different latency settings except one fixed one
2018-01-09 17:54:24 +00:00
Mike Brady
1637a79dd6
Add tinyhttp code for sending and reading responses. Clean up some dacp routines. Most new and modified rooutines untested.
2017-12-18 18:50:01 +00:00
Mike Brady
ea46a09aea
More comprhensive saving and restoring of hardware and software level when a session is stopped and started. Does hardware as well as software.
2017-12-11 16:32:37 +00:00
Mike Brady
6089007bc4
Store the last software volume setting so that it can become the default when the next play sessions starts. This is important if a starting volume is not always given, a new phenomenon in iOS 11.2 and macOS 10.13.2
2017-12-09 20:14:39 +00:00
Mike Brady
88c550663c
hooking up a dacp scanner
2017-12-02 19:52:39 +00:00
Mike Brady
bafdd94e33
Clang-format
2017-11-19 21:41:11 +00:00
Mike Brady
74f41a1769
Reorganise D-BUS interface code and introduce an MPRIS interface.
2017-11-19 16:08:39 +00:00
Mike Brady
3198ec4265
Improve dbus and add some dacp services
2017-11-12 14:26:10 +01:00
Belbo
b98e6a9ac0
Fixed race condition when stopping other threads with SIGUSR1
...
Many threads have a main loop that checks some exit variable in the loop condition. To stop a thread, another thread sets that exit variable, sends a SIGUSR1 to that thread to get it out of blocking calls like read(), write() or select(), and finally joins it.
There was a race condition though: if the signal arrived after the loop condition was checked but before the blocking system function was entered, the target thread essentially ignored the signal, made the blocking call anyway, and could get stuck forever there.
The only way around this race condition is to block SIGUSR1 in the destination thread during the critical time interval. This requires that the blocking system call and the call to unblock SIGUSR1 be an atomic unit. There is only one system call that makes this possible: pselect(), which takes a signal mask to replace the current signal mask with, but only while pselect() runs. Other functions like read(), recv(), write() and sendto() may only be called if we can be sure that they don't block. For this purpose, the file descriptors must be set to non-blocking mode and we must prepend the call to them with a call to pselect() to block until the socket becomes readable/writable.
2017-11-01 20:46:05 +01:00
Mike Brady
825b418b94
Make PID directory path creation recursive and tidy up some code formatting.
2017-09-24 15:52:26 +01:00
Mike Brady
5d5802db92
Create the directory for the PID file, if necessary
2017-09-23 05:25:48 -07:00
Mike Brady
e513e5330c
Tidy up source using clang-format
2017-07-31 11:57:57 +02:00
Mike Brady
9ba3ed39a5
Add some settings to the new PulseAudio backend. Limit the silent lead-in time to pipe and stdout backends. Not tested much.
2017-06-30 20:05:48 +01:00
Cody Cutrer
3e9e228564
read stdout from the on-start command to choose ALSA output device
...
refs GH-452
2017-06-24 19:46:03 -06:00
Mike Brady
d022c8b4b8
Add an extra option "-j" to daemonize withoput generating a PID file
2017-05-25 19:49:31 +01:00
Mike Brady
6195be0192
Change the order of evaluating command lione options so that the config file is read before any commands are executed.
2017-05-25 18:56:01 +01:00
Mike Brady
2dea79fa41
Add alsa_use_playback_switch_for_mute to the configuration data structure, so visible for debug summary.
2017-04-30 18:56:56 +01:00
Mike Brady
e37c277b0a
Add a "run_this_when_volume_is_set" facility to call a program when the volume is set. The AirPlay volume is passed.
2017-04-23 12:37:11 +01:00
Mike Brady
7860d69227
Move some globals into the thread parameter block. Add setting for logOutputLevel
2017-04-07 18:44:11 +01:00
Denys Berkovskyy
69c042585a
Fix various typos.
2017-03-21 11:16:05 +00:00
Yann Pomarede
2ab2a84c14
change function die, warn, inform and debug
...
change funcions die, warn, inform and debug argument from `char*` to `const char*` to prevent a warning in C==
2017-02-28 12:47:03 +01:00
Yann Pomarede
7b9cd28e90
2 audio filters added, a volume-dependent-loudness and a convolution filter.
2017-02-27 22:43:23 +01:00
Mike Brady
cf29625d2c
Clang Format
2017-02-11 12:12:07 +00:00
Mike Brady
2a4a4ed22b
Add volume_max_db setting which works on the hw mixer if it exists or the sw attenuator otherwise.
2017-02-05 16:18:05 +00:00
Mike Brady
2cab35cd55
Add a new setting to specify the interface the service should be provided on.
2017-02-05 13:47:01 +00:00
Mike Brady
0764199545
Add possibility of using an array of precalculated pseudo random numbers to reduce processor load.
2017-01-30 18:34:09 +00:00
Mike Brady
b5ee350b3c
Add *untested* support for S24_3LE and S24_3BE output format.
2016-09-28 11:47:44 +01:00
Mike Brady
0499743bd9
Make endian-independent. Allow users to specify only U8/S8/S16/S24/S32
2016-09-12 22:01:57 +01:00
Mike Brady
064bd293c5
Tidy up with a clang-format
2016-09-11 10:35:53 +01:00
Mike Brady
8d008fa2ec
Begin to add full-scale post processing. Does not compile.
2016-09-08 15:56:22 +01:00
Mike Brady
4849c1d429
Remove mersenne generator -- too slow, try another one
2016-09-07 16:55:14 +01:00
Mike Brady
ae84366e8d
Change over to times as opposed to frames for setting timing options
2016-09-04 19:37:22 +01:00