inosculate

darcs-hash:20050812092011-2648a-e137705e5ce7ab583a168c84593bfa0a390874f9.gz
This commit is contained in:
nik gaffney 2005-08-12 17:20:11 +08:00
parent 9bcc4ffcc2
commit 1a1abf68bd
2 changed files with 14 additions and 6 deletions

View file

@ -1,4 +1,5 @@
Open Sound Control
This is a common-lisp implementation of the Open Sound Control This is a common-lisp implementation of the Open Sound Control
Protocol, aka OSC. The code should be close to ansi standard, and does Protocol, aka OSC. The code should be close to ansi standard, and does
@ -27,16 +28,23 @@ limitations
- sbcl/cmucl specific float en/decoding - sbcl/cmucl specific float en/decoding
- only supports the type(tag)s specified in the OSC spec - only supports the type(tag)s specified in the OSC spec
things to do things to do in :osc
- address patterns - address patterns
- liblo like network wrapping
- data checking and error handling - data checking and error handling
- portable en/decoding of floats -=> ieee754 tests - portable en/decoding of floats -=> ieee754 tests
- doubles and other defacto typetags - doubles and other defacto typetags
- correct en/decoding of timetags - correct en/decoding of timetags
things to do in :osc-ex[tensions|tras]
- liblo like network wrapping
- add namespace exploration using cl-zeroconf
changes changes
2005-08-12
- corrections from Matthew Kennedy <mkennedy@gentoo.org>
2005-08-11
- version 0.1
2005-03-16 2005-03-16
- packaged as an asdf installable lump - packaged as an asdf installable lump
2005-03-11 2005-03-11

View file

@ -96,7 +96,7 @@
(let ((lump (make-array 0 :adjustable t (let ((lump (make-array 0 :adjustable t
:fill-pointer t :fill-pointer t
:element-type 'char))) :element-type 'character)))
(macrolet ((write-to-vector (char) (macrolet ((write-to-vector (char)
`(vector-push-extend `(vector-push-extend
(char-code ,char) lump))) (char-code ,char) lump)))
@ -229,7 +229,7 @@
(if (equalp ut :now) (if (equalp ut :now)
#(0 0 0 0 0 0 0 1) #(0 0 0 0 0 0 0 1)
(cat (encode-int32 (+ ut +unix-epoch+)) (cat (encode-int32 (+ ut +unix-epoch+))
(encode-int32 (subseconds))))) (encode-int32 subseconds))))
(defun decode-timetag (timetag) (defun decode-timetag (timetag)
"decomposes a timetag into ut and a subsecond,. . ." "decomposes a timetag into ut and a subsecond,. . ."
@ -268,7 +268,7 @@
(defun encode-int32 (i) (defun encode-int32 (i)
"convert integer into a sequence of 4 bytes in network byte order." "convert integer into a sequence of 4 bytes in network byte order."
(declare (type integer i n)) (declare (type integer i))
(let ((buf (make-sequence (let ((buf (make-sequence
'(vector (unsigned-byte 8)) 4))) '(vector (unsigned-byte 8)) 4)))
(macrolet ((set-byte (n) (macrolet ((set-byte (n)
@ -323,7 +323,7 @@
(+ s (- 4 (mod s 4)))) (+ s (- 4 (mod s 4))))
(defun string-padding (string) (defun string-padding (string)
q "returns the padding required for a given osc string" "returns the padding required for a given osc string"
(declare (type simple-string string)) (declare (type simple-string string))
(pad (- 4 (mod (length string) 4)))) (pad (- 4 (mod (length string) 4))))