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

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/7a5a3dc5982908eadc2f611ab77c6d63f4adc351">https://github.com/macports/macports-ports/commit/7a5a3dc5982908eadc2f611ab77c6d63f4adc351</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 7a5a3dc5982908eadc2f611ab77c6d63f4adc351
</span>Author: Ryan Schmidt <ryandesign@macports.org>
AuthorDate: Tue May 24 09:16:04 2022 -0500

<span style='display:block; white-space:pre;color:#404040;'>    portmidi: Fix timing on non-Intel processors
</span>---
 audio/portmidi/Portfile                            |  3 +-
 .../portmidi/files/patch-pm_mac-pmmacosxcm.c.diff  | 33 ++++++++++++++++++++++
 2 files changed, 35 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/portmidi/Portfile b/audio/portmidi/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 531ece672e0..d47cc3bb037 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/audio/portmidi/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/audio/portmidi/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -7,7 +7,7 @@ PortGroup           cmake 1.1
</span> epoch               1
 github.setup        PortMidi portmidi 2.0.3 v
 github.tarball_from archive
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            1
</span> 
 categories          audio devel
 maintainers         nomaintainer
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -29,6 +29,7 @@ patchfiles          patch-CMakeLists.txt.diff \
</span> 
 if {[vercmp ${version} 2.0.4] < 0} {
     patchfiles-append \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    patch-pm_mac-pmmacosxcm.c.diff \
</span>                     patch-pm_test-CMakeLists.txt.diff
 }
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/audio/portmidi/files/patch-pm_mac-pmmacosxcm.c.diff b/audio/portmidi/files/patch-pm_mac-pmmacosxcm.c.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..29da7ccd6fd
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/audio/portmidi/files/patch-pm_mac-pmmacosxcm.c.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,33 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix timing on non-Intel systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/PortMidi/portmidi/issues/25
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Includes relevant parts of:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/PortMidi/portmidi/commit/052e49bf305fc2016ca6f856397e742c1c7d0e61
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- pm_mac/pmmacosxcm.c.orig       2022-02-21 19:54:37.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ pm_mac/pmmacosxcm.c    2022-05-23 07:38:09.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -731,7 +731,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (info->packet != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         /* out of space, send the buffer and start refilling it */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         /* update min_next_time each flush to support rate limit */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        UInt64 now =  AudioConvertHostTimeToNanos(AudioGetCurrentHostTime());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        UInt64 now = AudioGetCurrentHostTime();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (now > info->min_next_time) 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             info->min_next_time = now;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (info->is_virtual) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -818,7 +817,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      * latency is zero. Both mean no timing and send immediately.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (when == 0 || midi->latency == 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        timestamp = AudioConvertNanosToHostTime(AudioGetCurrentHostTime());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        timestamp = AudioGetCurrentHostTime();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else {  /* translate PortMidi time + latency to CoreMIDI time */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         timestamp = ((UInt64) (when + midi->latency) * (UInt64) 1000000) +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                     info->delta;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -867,7 +866,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+               (MIDITimeStamp) AudioConvertNanosToHostTime(when_ns);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     UInt64 now; /* only make system time call when writing a virtual port */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (info->is_virtual && info->sysex_timestamp <
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        (now =  AudioConvertHostTimeToNanos(AudioGetCurrentHostTime()))) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        (now = AudioGetCurrentHostTime())) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         info->sysex_timestamp = now;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span></pre><pre style='margin:0'>

</pre>