+## Version: 1.1-dev-209-g5471c6c
+
+***Pesky Changes You Can't Ignore***
+
+* **Important**. The protocol that Shairport Sync and NQPTP use to communicate with one another has been updated to reflect changes in NQPTP's operation. Please update both NQPTP and Shairport Sync so that they both use the same Shared Memory Interface Version.
+
+ This version of NQPTP uses Shared Memory Interface Version `smi-9`. (You can check `nqptp` using `$ nqptp -V`.)
+
+**Enhancements**
+* Enable NQPTP to respond to information about the state of the player -- whether is is playing, stopped or paused. The "B" command is a message that the client -- which generates the clock -- is about to start playing. The "E" command signifies that the client has stopped playing and that the clock may shortly sleep. The "P" command signifies that play has paused (buffered audio only). The clock seems to stay running in this state.
+This is important because the clock from the source can stop or run slow when the source is not actively playing. This arrangement seems to be much more resilient than having NQPTP try to detect when a clock is stopped or running slow. It also allows the code to be simplified.
+
## Version: 1.1-dev-207-ge14575b
**Bug Fix**
* Due to a bug, the ports used by NQPTP -- ports 319, 320 and 9000 -- had to be available on all IP protocols on the system. For example, if IPv6 and IPv4 were available on the system and a port could be opened on IPv4 but not on IPv6 , Shairport Sync would fail. This has been fixed. As before, ports will be opened on all IP protocols available, but only one needs to be successfully opened. Many thanks to [Ferdynand Naczynski](https://github.com/nipsufn) for their detective work and for developing a fix.
* Finally (!) the suggestion made by [the0u](https://github.com/th0u) in [Issue #14]() has been acted upon and the suggested modifications made so that NQPTP will only listen to connections made to port 9000 coming from `localhost`. Thanks to [the0u](https://github.com/th0u) for the suggestion and the code. Thanks to [herrernst](https://github.com/herrernst) for the reminder!
## Version: 1.1-dev-195-g93f1e8a
-***Pesky Changes You Can't Ignore***
-
-* **Important**. The Shared Memory Interface protocol that Shairport Sync and NQPTP use to communicate with one another has been updated to reflect changes in NQPTP's operation. Please update both NQPTP and Shairport Sync so that they both use the same version number -- 9.
**Enhancement**
* NQPTP has been simplified and is more resilient to adverse network conditions.
if (strcmp(argv[i] + 1, "V") == 0) {
#ifdef CONFIG_USE_GIT_VERSION_STRING
if (git_version_string[0] != '\0')
- fprintf(stdout, "Version: %s. Shared Memory Interface Version: %u.\n", git_version_string,
+ fprintf(stdout, "Version: %s. Shared Memory Interface Version: smi-%u.\n", git_version_string,
NQPTP_SHM_STRUCTURES_VERSION);
else
#endif
- fprintf(stdout, "Version: %s. Shared Memory Interface Version: %u.\n", VERSION,
+ fprintf(stdout, "Version: %s. Shared Memory Interface Version: smi-%u.\n", VERSION,
NQPTP_SHM_STRUCTURES_VERSION);
exit(EXIT_SUCCESS);
} else if (strcmp(argv[i] + 1, "vvv") == 0) {
#ifdef CONFIG_USE_GIT_VERSION_STRING
if (git_version_string[0] != '\0')
- debug(1, "Version: %s, SMI: %u. Clock ID: \"%" PRIx64 "\".", git_version_string,
+ debug(1, "Version: %s, smi-%u. Clock ID: \"%" PRIx64 "\".", git_version_string,
NQPTP_SHM_STRUCTURES_VERSION, get_self_clock_id());
else
#endif
- debug(1, "Version: %s, SMI: %u. Clock ID: \"%" PRIx64 "\".", VERSION,
+ debug(1, "Version: %s, smi-%u. Clock ID: \"%" PRIx64 "\".", VERSION,
NQPTP_SHM_STRUCTURES_VERSION, get_self_clock_id());
// debug(1, "size of a clock entry is %u bytes.", sizeof(clock_source_private_data));