]> git.ipfire.org Git - thirdparty/shairport-sync.git/commitdiff
Getting the volume properties to work without feedback -- not there yet...
authorMike Brady <mikebrady@eircom.net>
Fri, 9 Mar 2018 09:25:49 +0000 (09:25 +0000)
committerMike Brady <mikebrady@eircom.net>
Fri, 9 Mar 2018 09:25:49 +0000 (09:25 +0000)
dacp.c
dbus-service.c
mpris-service.c
player.c

diff --git a/dacp.c b/dacp.c
index 49035c5d9e01360277acc8cfa7633d8385342300..49f604651b0ffb75d62102b429d2b9d584a8d674 100644 (file)
--- a/dacp.c
+++ b/dacp.c
@@ -126,7 +126,7 @@ int dacp_send_command(const char *command, char **body, ssize_t *bodysize) {
   // to do it.
   struct timespec mutex_wait_time;
   mutex_wait_time.tv_sec = 0;
-  mutex_wait_time.tv_nsec = 20000000; // 20 ms
+  mutex_wait_time.tv_nsec = 100000000; // 100 ms
 
   struct addrinfo hints, *res;
   int sockfd;
index d281efa6511cf6829323c39cd5784502265ff0c1..93fcc9582382e364283159fcd003b7e6bb175dc6 100644 (file)
@@ -16,6 +16,7 @@
 
 void dbus_metadata_watcher(struct metadata_bundle *argc, __attribute__((unused)) void *userdata) {
   // debug(1, "DBUS metadata watcher called");
+  debug(1,"Set volume to %d.",argc->speaker_volume);
   shairport_sync_set_volume(shairportSyncSkeleton, argc->speaker_volume);
 }
 
index e0622ddfc7885db6c4088bc6f4a59328fa733e8b..dd24f84837175d1f727a359f1b1a10fd9b1fa24a 100644 (file)
@@ -143,7 +143,7 @@ void mpris_metadata_watcher(struct metadata_bundle *argc, __attribute__((unused)
   // debug(1,"Set metadata");
   media_player2_player_set_metadata(mprisPlayerPlayerSkeleton, dict);
 
-  media_player2_player_set_volume(mprisPlayerPlayerSkeleton, metadata_store.speaker_volume);
+  // media_player2_player_set_volume(mprisPlayerPlayerSkeleton, metadata_store.speaker_volume);
 }
 
 static gboolean on_handle_next(MediaPlayer2Player *skeleton, GDBusMethodInvocation *invocation,
index dc34ee48d9638fc1e8857b0eb1b4876517992a04..561504738e4ce7f9fcec5302770249dd42b568b9 100644 (file)
--- a/player.c
+++ b/player.c
@@ -2512,6 +2512,8 @@ void player_volume(double airplay_volume, rtsp_conn_info *conn) {
 #ifdef HAVE_DACP_CLIENT
   int32_t actual_volume;
   if (dacp_get_volume(&actual_volume) == 200) {
+    conn->dacp_volume = actual_volume; // store this as the actual volume
+    debug(1,"Got volume of %d.",actual_volume);
     metadata_hub_modify_prolog();
     if (metadata_store.speaker_volume == actual_volume)
       metadata_hub_modify_epilog(0); // no change