diff --git a/oscpy/parser.py b/oscpy/parser.py
index e080157..7172825 100644
--- a/oscpy/parser.py
+++ b/oscpy/parser.py
@@ -7,6 +7,8 @@ Allowed types are:
floats -> osc float
bytes (encoded strings) -> osc strings
bytearray (raw data) -> osc blob
+ *** added by ssc 2019-01-24
+ 64 bit big endian two's complement integer -> osc long
"""
from struct import Struct, pack, unpack_from, calcsize
@@ -19,6 +21,7 @@ else:
UNICODE = unicode
Int = Struct('>i')
+Long = Struct('>l')
Float = Struct('>f')
String = Struct('>s')
TimeTag = Struct('>II')
@@ -42,6 +45,10 @@ def parse_int(value, offset=0, **kwargs):
"""Return an int from offset in value."""
return Int.unpack_from(value, offset)[0], Int.size
+def parse_long(value, offset=0, **kwargs):
+ """Return an long from offset in value."""
+ return Long.unpack_from(value, offset)[0], Long.size
+
def parse_float(value, offset=0, **kwargs):
"""Return a float from offset in value."""
@@ -81,6 +88,7 @@ def parse_blob(value, offset=0, **kwargs):
parsers = {
b'i': parse_int,
+ b'h': parse_long,
b'f': parse_float,
b's': parse_string,
b'b': parse_blob,
@@ -94,6 +102,7 @@ parsers.update({
writers = (
(float, (b'f', b'f')),
(int, (b'i', b'i')),
+ (int, (b'h', b'h')),
(bytes, (b's', b'%is')),
(bytearray, (b'b', b'%ib')),
)
Kivy can use python 2 or 3 and produce APKs for android so I coded an app based on the ArdOSC layout, available on gitlab at AudioPi_OSC. I am still developing this, and have stopped working on ArdOSC.
I presented AudioPi and the Kivy OSC app to the NoVALug group on February 9, the slides are online at Audio Pi.pdf. The YouTube stream is available at "Running AudioPi".
No comments:
Post a Comment