Compare commits
	
		
			No commits in common. "af27abbaca18ec20e74c0850d4dc80eda150c995" and "11c9fc653d764d44b3f96d360aa9dc7c3fce6084" have entirely different histories.
		
	
	
		
			af27abbaca
			...
			11c9fc653d
		
	
		
@ -163,19 +163,18 @@ type
 | 
			
		||||
    ##
 | 
			
		||||
    ## The body of an AtomSequence (a sequence of events).
 | 
			
		||||
    ##
 | 
			
		||||
    ## The unit field is either a Urid that describes an appropriate time stamp
 | 
			
		||||
    ## type, or may be 0 where a default stamp type is known.  For
 | 
			
		||||
    ## lv2Descriptor.run(), the default stamp type is audio frames.
 | 
			
		||||
    ## The unit field is either a Urid that described an appropriate time stamp
 | 
			
		||||
    ## type, or may be 0 where a default stamp is known.  For
 | 
			
		||||
    ## lv2Descriptor.run(), the default stamp is audio frames.
 | 
			
		||||
    ##
 | 
			
		||||
    ## The contents of a sequence is a series of AtomEvent, each aligned
 | 
			
		||||
    ## to 64-bits, for example:
 | 
			
		||||
    ## 
 | 
			
		||||
    ## ```
 | 
			
		||||
    ## <pre>
 | 
			
		||||
    ## | Event 1 (size 6)                              | Event 2
 | 
			
		||||
    ## |       |       |       |       |       |       |       |       |
 | 
			
		||||
    ## | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
 | 
			
		||||
    ## |FRAMES         |SIZE   |TYPE   |DATADATADATAPAD|FRAMES         |...
 | 
			
		||||
    ## ```
 | 
			
		||||
    ## </pre>
 | 
			
		||||
    ##
 | 
			
		||||
    AtomSequenceBody* {.bycopy.} = object
 | 
			
		||||
        unit*: Urid  ## Urid of unit of event time stamps.
 | 
			
		||||
 | 
			
		||||
@ -10,6 +10,7 @@
 | 
			
		||||
## Utilities for working with atoms.
 | 
			
		||||
##
 | 
			
		||||
 | 
			
		||||
from system/ansi_c import c_memcmp, c_memcpy
 | 
			
		||||
import ../atom
 | 
			
		||||
import ../ptrmath
 | 
			
		||||
import ../urid
 | 
			
		||||
@ -39,7 +40,7 @@ proc atomIsNull*(atom: ptr Atom): bool {.inline.} =
 | 
			
		||||
proc atomEquals*(a: ptr Atom; b: ptr Atom): bool {.inline.} =
 | 
			
		||||
    return (a == b) or
 | 
			
		||||
        ((a.`type` == b.`type`) and (a.size == b.size) and
 | 
			
		||||
        cmpMem(a + 1, b + 1, a.size) == 0)
 | 
			
		||||
        c_memcmp(a + 1, b + 1, a.size) == 0)
 | 
			
		||||
 | 
			
		||||
##
 | 
			
		||||
## Sequence Iterator
 | 
			
		||||
@ -125,7 +126,7 @@ proc atomSequenceAppendEvent*(seq: ptr AtomSequence; capacity: uint32;
 | 
			
		||||
        return nil
 | 
			
		||||
    
 | 
			
		||||
    var e = atomSequenceEnd(seq.body.addr, seq.atom.size)
 | 
			
		||||
    copyMem(e, event, totalSize)
 | 
			
		||||
    c_memcpy(e, event, totalSize)
 | 
			
		||||
    seq.atom.size += atomPadSize(totalSize)
 | 
			
		||||
    return e
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user