The branch main has been updated by imp:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=bbf71b31596719c61d540513da3d8a3db20dad66

commit bbf71b31596719c61d540513da3d8a3db20dad66
Author:     Rozhuk Ivan <rozhuk...@gmail.com>
AuthorDate: 2024-08-09 18:52:17 +0000
Commit:     Warner Losh <i...@freebsd.org>
CommitDate: 2024-09-22 15:27:29 +0000

    sound: Fix SEQ_SYSEX() macro
    
    Correct implementation also found in Linux's soundcard.h:
    
https://github.com/torvalds/linux/blob/master/include/uapi/linux/soundcard.h#L1178
    
    seq_processevent() interprets event[1] as device number and does not
    work properly with current SEQ_SYSEX() implementation.
    
    Note: soundcard.h has its own funky style, which this commit follows
    
    Reviewed by: imp, christos
    Pull Request: https://github.com/freebsd/freebsd-src/pull/1374
---
 sys/sys/soundcard.h | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/sys/sys/soundcard.h b/sys/sys/soundcard.h
index b5434b930215..304ae38c08d4 100644
--- a/sys/sys/soundcard.h
+++ b/sys/sys/soundcard.h
@@ -1400,8 +1400,9 @@ void seqbuf_dump(void);   /* This function must be 
provided by programs */
        int i, l=(len); if (l>6)l=6;\
        _SEQ_NEEDBUF(8);\
        _seqbuf[_seqbufptr] = EV_SYSEX;\
-       for(i=0;i<l;i++)_seqbuf[_seqbufptr+i+1] = (buf)[i];\
-       for(i=l;i<6;i++)_seqbuf[_seqbufptr+i+1] = 0xff;\
+       _seqbuf[_seqbufptr+1] = (dev);\
+       for(i=0;i<l;i++)_seqbuf[_seqbufptr+i+2] = (buf)[i];\
+       for(i=l;i<6;i++)_seqbuf[_seqbufptr+i+2] = 0xff;\
        _SEQ_ADVBUF(8);}
 
 #define SEQ_CHN_PRESSURE(dev, chn, pressure) \

Reply via email to