<pre style='margin:0'>
ra1nb0w (ra1nb0w) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/94ac9215322a04c9c43cc380c2a9dd319df7ed7f">https://github.com/macports/macports-ports/commit/94ac9215322a04c9c43cc380c2a9dd319df7ed7f</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 94ac9215322a04c9c43cc380c2a9dd319df7ed7f
</span>Author: Davide Gerhard <ra1nb0w@macports.org>
AuthorDate: Mon May 3 08:57:36 2021 +0200

<span style='display:block; white-space:pre;color:#404040;'>    pihpsdr: update commit to 8c4f5b1e
</span>---
 science/pihpsdr/Portfile                           |  15 ++-
 ...dd-remote-audio-output-option-for-each-RX.patch | 140 +++++++++++++++++++++
 2 files changed, 149 insertions(+), 6 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/pihpsdr/Portfile b/science/pihpsdr/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index da029e81fbb..84d099ef201 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/pihpsdr/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/pihpsdr/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,9 +1,9 @@
</span> # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
 
 PortSystem          1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           legacysupport 1.1
</span> PortGroup           makefile 1.0
 PortGroup           github 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup           legacysupport 1.1
</span> 
 # strnlen
 legacysupport.newest_darwin_requires_legacy 10
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -16,13 +16,16 @@ maintainers         {ra1nb0w @ra1nb0w} openmaintainer
</span> description         piHPSDR is an HPSDR application designed for low power boards, like Raspberry.
 long_description    ${description}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup        dl1ycf pihpsdr 4329de41e30570f2e5702be63234de03fcbbd20f
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-version             20210330-[string range ${github.version} 0 7]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums           rmd160  60636d93f45d92f9e305d954a595f8c2de69e784 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    sha256  ee4cf0fccbfc067e9eabeb09ef0fced24324b7bb9a6da494aaf3625279f72104 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    size    114572726
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup        dl1ycf pihpsdr 8c4f5b1e3e50344caa5dbbb5605ab1fec26fff63
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             20210502-[string range ${github.version} 0 7]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums           rmd160  5cda44e914ab10cb2eecca4b4394e3ceaa60d239 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    sha256  dcd38657fefb75b9c56db6c285f6c8f3d15f6a7aeb2086a42fb76f6c1fe61c21 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    size    114573225
</span> revision            0
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    0001-add-remote-audio-output-option-for-each-RX.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> compiler.c_standard 1999
 
 depends_build-append \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/pihpsdr/files/0001-add-remote-audio-output-option-for-each-RX.patch b/science/pihpsdr/files/0001-add-remote-audio-output-option-for-each-RX.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..00010ccdac2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/pihpsdr/files/0001-add-remote-audio-output-option-for-each-RX.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,140 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 6c19dc85076cfbce3dc08262cf9fe785d932bfe6 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Davide Gerhard <rainbow@irh.it>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 24 Apr 2021 18:45:26 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] add remote audio output option for each RX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+we can enable or disable the remote audio output for each receiver.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+The audio volume remains the same for local and remote audio.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ receiver.c | 14 +++++++++++---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ receiver.h |  2 ++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rx_menu.c  | 18 +++++++++++++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3 files changed, 30 insertions(+), 4 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git receiver.c receiver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a073e71..b958bff 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- receiver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ receiver.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -198,6 +198,9 @@ void receiver_save_state(RECEIVER *rx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sprintf(name,"receiver.%d.audio_channel",rx->id);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sprintf(value,"%d",rx->audio_channel);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   setProperty(name,value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sprintf(name,"receiver.%d.remote_audio",rx->id);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sprintf(value,"%d",rx->remote_audio);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  setProperty(name,value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sprintf(name,"receiver.%d.local_audio",rx->id);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sprintf(value,"%d",rx->local_audio);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   setProperty(name,value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -368,6 +371,9 @@ fprintf(stderr,"receiver_restore_state: id=%d\n",rx->id);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sprintf(name,"receiver.%d.audio_channel",rx->id);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   value=getProperty(name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if(value) rx->audio_channel=atoi(value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  sprintf(name,"receiver.%d.remote_audio",rx->id);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  value=getProperty(name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(value) rx->remote_audio=atoi(value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   sprintf(name,"receiver.%d.local_audio",rx->id);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   value=getProperty(name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if(value) rx->local_audio=atoi(value);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -935,6 +941,7 @@ fprintf(stderr,"create_pure_signal_receiver: id=%d buffer_size=%d\n",id,buffer_s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rx->audio_channel=STEREO;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rx->audio_device=-1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rx->mute_radio=0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  rx->remote_audio=1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rx->low_latency=0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1068,6 +1075,7 @@ fprintf(stderr,"create_receiver: id=%d default adc=%d\n",rx->id, rx->adc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rx->mute_when_not_active=0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rx->audio_channel=STEREO;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rx->audio_device=-1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  rx->remote_audio=1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rx->low_latency=0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1096,7 +1104,7 @@ fprintf(stderr,"create_receiver: id=%d default adc=%d\n",rx->id, rx->adc);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rx->pixel_samples=g_new(float,rx->pixels);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-fprintf(stderr,"create_receiver (after restore): rx=%p id=%d audio_buffer_size=%d local_audio=%d\n",rx,rx->id,rx->audio_buffer_size,rx->local_audio);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++fprintf(stderr,"create_receiver (after restore): rx=%p id=%d audio_buffer_size=%d local_audio=%d remote_audio=%d\n",rx,rx->id,rx->audio_buffer_size,rx->local_audio,rx->remote_audio);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   //rx->audio_buffer=g_new(guchar,rx->audio_buffer_size);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int scale=rx->sample_rate/48000;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rx->output_samples=rx->buffer_size/scale;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1406,7 +1414,7 @@ static void process_rx_buffer(RECEIVER *rx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if(rx->mute_radio) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             old_protocol_audio_samples(rx,(short)0,(short)0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-            old_protocol_audio_samples(rx,left_audio_sample,right_audio_sample);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            old_protocol_audio_samples(rx, rx->remote_audio ? left_audio_sample : (short)0, rx->remote_audio ? right_audio_sample : (short)0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         case NEW_PROTOCOL:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1414,7 +1422,7 @@ static void process_rx_buffer(RECEIVER *rx) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             if(rx->mute_radio) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               new_protocol_audio_samples(rx,(short)0,(short)0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-              new_protocol_audio_samples(rx,left_audio_sample,right_audio_sample);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++              new_protocol_audio_samples(rx, rx->remote_audio ? left_audio_sample : (short)0, rx->remote_audio ? right_audio_sample : (short)0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git receiver.h receiver.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0551adc..76f0eda 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- receiver.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ receiver.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -131,6 +131,8 @@ typedef struct _receiver {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   void *local_audio_buffer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   GMutex local_audio_mutex;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  gboolean remote_audio;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   gint low_latency;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   gint squelch_enable;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git rx_menu.c rx_menu.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b47ef25..858c739 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- rx_menu.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ rx_menu.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -39,6 +39,7 @@ static GtkWidget *menu_b=NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static GtkWidget *dialog=NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static GtkWidget *local_audio_b=NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static GtkWidget *output=NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static GtkWidget *remote_audio_b=NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void cleanup() {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if(dialog!=NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -127,6 +128,11 @@ fprintf(stderr,"local_audio_cb: audio_open_output failed\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf(stderr,"local_audio_cb: local_audio=%d\n",active_receiver->local_audio);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void remote_audio_cb(GtkWidget *widget, gpointer data) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  fprintf(stderr,"remote_audio_cb: rx=%d\n",active_receiver->id);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  active_receiver->remote_audio=gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void mute_audio_cb(GtkWidget *widget, gpointer data) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   active_receiver->mute_when_not_active=gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -356,8 +362,18 @@ void rx_menu(GtkWidget *parent) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     x++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int row=0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // radio that don't have remote audio codec
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // should not visualize the option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (radio->device != DEVICE_HERMES_LITE2) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    remote_audio_b=gtk_check_button_new_with_label("Remote Audio Output");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (remote_audio_b), active_receiver->remote_audio);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    gtk_widget_show(remote_audio_b);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    gtk_grid_attach(GTK_GRID(grid),remote_audio_b,x,++row,1,1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    g_signal_connect(remote_audio_b,"toggled",G_CALLBACK(remote_audio_cb),NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if(n_output_devices>0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     local_audio_b=gtk_check_button_new_with_label("Local Audio Output");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (local_audio_b), active_receiver->local_audio);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-- 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.31.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span></pre><pre style='margin:0'>

</pre>