Add web mixer with native input volume and output selection
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
--- a/dbus-service.c
|
||||
+++ b/dbus-service.c
|
||||
@@ -715,6 +715,7 @@
|
||||
if (((iv >= -30.0) && (iv <= 0.0)) || (iv == -144.0)) {
|
||||
debug(2, ">> set volume to %7.4f.", iv);
|
||||
config.airplay_volume = iv;
|
||||
+ rtsp_set_native_volume(iv);
|
||||
} else {
|
||||
debug(1, ">> invalid volume: %f. Ignored.", iv);
|
||||
shairport_sync_set_volume(skeleton, config.airplay_volume);
|
||||
--- a/rtsp.h
|
||||
+++ b/rtsp.h
|
||||
@@ -31,6 +31,7 @@
|
||||
// this will release the play lock only if the conn has it or if the conn is NULL
|
||||
|
||||
void stop_play(); // stop and drop a playing connection
|
||||
+void rtsp_set_native_volume(double volume);
|
||||
|
||||
#ifdef CONFIG_AIRPLAY_2
|
||||
ssize_t read_encrypted(int fd, pair_cipher_bundle *ctx, void *buf, size_t count);
|
||||
--- a/rtsp.c
|
||||
+++ b/rtsp.c
|
||||
@@ -278,6 +278,14 @@
|
||||
// other devices.
|
||||
|
||||
// If a conn has play lock, kill the connection completely.
|
||||
+
|
||||
+/* Update the existing player gain, without an additional gain stage. */
|
||||
+void rtsp_set_native_volume(double volume) {
|
||||
+ pthread_rwlock_rdlock(&principal_conn_lock);
|
||||
+ if (principal_conn != NULL)
|
||||
+ player_volume_without_notification(volume, principal_conn);
|
||||
+ pthread_rwlock_unlock(&principal_conn_lock);
|
||||
+}
|
||||
|
||||
void stop_play() {
|
||||
pthread_rwlock_wrlock(&principal_conn_lock);
|
||||
Reference in New Issue
Block a user