[SCM] zynaddsubfx/master: Patches droped.

mira-guest at users.alioth.debian.org mira-guest at users.alioth.debian.org
Sun Nov 15 06:12:28 UTC 2015


The following commit has been merged in the master branch:
commit 384007c6d3bfd80fd510a83494d9677685491eed
Author: Jaromír Mikeš <mira.mikes at seznam.cz>
Date:   Sun Nov 15 06:48:50 2015 +0100

    Patches droped.

diff --git a/debian/patches/04-fix_endianess.patch b/debian/patches/04-fix_endianess.patch
deleted file mode 100644
index ead510d..0000000
--- a/debian/patches/04-fix_endianess.patch
+++ /dev/null
@@ -1,1014 +0,0 @@
-Description: Fix Endianess Dependency & Refactor Tests.
-https://github.com/fundamental/rtosc/commit/7509ab50719a01c62548973ec431dc307599ec67
-Author: Jaromír Mikeš <mira.mikes at seznam.cz>
-Forwarded: no
-
-Index: zynaddsubfx/rtosc/src/cpp/subtree-serialize.cpp
-===================================================================
---- zynaddsubfx.orig/rtosc/src/cpp/subtree-serialize.cpp
-+++ zynaddsubfx/rtosc/src/cpp/subtree-serialize.cpp
-@@ -7,6 +7,14 @@
- 
- using namespace rtosc;
- 
-+static void emplace_uint32(uint8_t *buffer, uint32_t d)
-+{
-+    buffer[0] = ((d>>24) & 0xff);
-+    buffer[1] = ((d>>16) & 0xff);
-+    buffer[2] = ((d>>8)  & 0xff);
-+    buffer[3] = ((d>>0)  & 0xff);
-+}
-+
- /*
-  * Append another message onto a bundle if the space permits it.
-  * If insufficient space is available, then zero is returned and the buffer is
-@@ -26,7 +34,7 @@ static size_t append_bundle(char *dst, c
- 
-     if(max_len < dst_len + src_len + 4 || dst_len == 0 || src_len == 0)
-         return 0;
--    *(int32_t*)(dst+dst_len) = (int32_t)src_len;
-+    emplace_uint32((uint8_t*)(dst+dst_len), src_len);
- 
-     memcpy(dst+dst_len+4, src, src_len);
- 
-Index: zynaddsubfx/rtosc/src/rtosc.c
-===================================================================
---- zynaddsubfx.orig/rtosc/src/rtosc.c
-+++ zynaddsubfx/rtosc/src/rtosc.c
-@@ -78,6 +78,58 @@ char rtosc_type(const char *msg, unsigne
-     }
- }
- 
-+static unsigned arg_start(const char *msg_)
-+{
-+    const uint8_t *msg = (const uint8_t*)msg_;
-+    //Iterate to the right position
-+    const uint8_t *args = (const uint8_t*) rtosc_argument_string(msg_);
-+    const uint8_t *aligned_ptr = args-1;
-+    const uint8_t *arg_pos = args;
-+
-+    while(*++arg_pos);
-+    //Alignment
-+    arg_pos += 4-(arg_pos-aligned_ptr)%4;
-+    return arg_pos-msg;
-+}
-+
-+static unsigned arg_size(const uint8_t *arg_mem, char type)
-+{
-+    if(!has_reserved(type))
-+        return 0;
-+    const uint8_t  *arg_pos=arg_mem;
-+    uint32_t blob_length = 0;
-+    switch(type)
-+    {
-+        case 'h':
-+        case 't':
-+        case 'd':
-+            return 8;
-+        case 'm':
-+        case 'r':
-+        case 'f':
-+        case 'c':
-+        case 'i':
-+            return 4;
-+        case 'S':
-+        case 's':
-+            while(*++arg_pos);
-+            arg_pos += 4-(arg_pos-arg_mem)%4;
-+            return arg_pos-arg_mem;
-+        case 'b':
-+            blob_length |= (*arg_pos++ << 24);
-+            blob_length |= (*arg_pos++ << 16);
-+            blob_length |= (*arg_pos++ << 8);
-+            blob_length |= (*arg_pos++);
-+            if(blob_length%4)
-+                blob_length += 4-blob_length%4;
-+            arg_pos += blob_length;
-+            return arg_pos-arg_mem;
-+        default:
-+            assert("Invalid Type");
-+    }
-+    return -1;
-+}
-+
- static unsigned arg_off(const char *msg, unsigned idx)
- {
-     if(!has_reserved(rtosc_type(msg,idx)))
-@@ -97,45 +149,11 @@ static unsigned arg_off(const char *msg,
-         ++args;
- 
-     while(idx--) {
--        uint32_t bundle_length = 0;
--        switch(*args++)
--        {
--            case 'h':
--            case 't':
--            case 'd':
--                arg_pos +=8;
--                break;
--            case 'm':
--            case 'r':
--            case 'f':
--            case 'c':
--            case 'i':
--                arg_pos += 4;
--                break;
--            case 'S':
--            case 's':
--                while(*++arg_pos);
--                arg_pos += 4-(arg_pos-((uint8_t*)aligned_ptr))%4;
--                break;
--            case 'b':
--                bundle_length |= (*arg_pos++ << 24);
--                bundle_length |= (*arg_pos++ << 16);
--                bundle_length |= (*arg_pos++ << 8);
--                bundle_length |= (*arg_pos++);
--                if(bundle_length%4)
--                    bundle_length += 4-bundle_length%4;
--                arg_pos += bundle_length;
--                break;
--            case '[':
--            case ']':
--                //completely ignore array chars
--                ++idx;
--                break;
--            case 'T':
--            case 'F':
--            case 'I':
--                ;
--        }
-+        char type = *args++;
-+        if(type == '[' || type == ']')
-+            idx++;//not a valid arg idx
-+        else
-+            arg_pos += arg_size(arg_pos, type);
-     }
-     return arg_pos-(uint8_t*)msg;
- }
-@@ -385,10 +403,9 @@ size_t rtosc_amessage(char
-     return pos;
- }
- 
--rtosc_arg_t rtosc_argument(const char *msg, unsigned idx)
-+static rtosc_arg_t extract_arg(const uint8_t *arg_pos, char type)
- {
-     rtosc_arg_t result = {0};
--    char type = rtosc_type(msg, idx);
-     //trivial case
-     if(!has_reserved(type)) {
-         switch(type)
-@@ -403,7 +420,6 @@ rtosc_arg_t rtosc_argument(const char *m
-                 ;
-         }
-     } else {
--        const unsigned char *arg_pos = (const unsigned char*)msg+arg_off(msg,idx);
-         switch(type)
-         {
-             case 'h':
-@@ -450,6 +466,52 @@ rtosc_arg_t rtosc_argument(const char *m
-     return result;
- }
- 
-+static const char *advance_past_dummy_args(const char *args)
-+{
-+    while(*args == '[' || *args == ']')
-+        args++;
-+    return args;
-+}
-+
-+rtosc_arg_itr_t rtosc_itr_begin(const char *msg)
-+{
-+    rtosc_arg_itr_t itr;
-+    itr.type_pos  = advance_past_dummy_args(rtosc_argument_string(msg));
-+    itr.value_pos = (uint8_t*)(msg+arg_start(msg));
-+
-+    return itr;
-+}
-+
-+rtosc_arg_val_t rtosc_itr_next(rtosc_arg_itr_t *itr)
-+{
-+    //current position provides the value
-+    rtosc_arg_val_t result = {0};
-+    result.type = *itr->type_pos;
-+    if(result.type)
-+        result.val = extract_arg(itr->value_pos, result.type);
-+
-+    //advance
-+    itr->type_pos = advance_past_dummy_args(itr->type_pos+1);
-+    char type = result.type;
-+    int size  = arg_size(itr->value_pos, type);
-+    itr->value_pos += size;
-+
-+
-+    return result;
-+}
-+
-+int rtosc_itr_end(rtosc_arg_itr_t itr)
-+{
-+    return !itr.type_pos  || !*itr.type_pos;
-+}
-+
-+rtosc_arg_t rtosc_argument(const char *msg, unsigned idx)
-+{
-+    char type = rtosc_type(msg, idx);
-+    uint8_t *arg_mem = (uint8_t*)msg + arg_off(msg, idx);
-+    return extract_arg(arg_mem, type);
-+}
-+
- static unsigned char deref(unsigned pos, ring_t *ring)
- {
-     return pos<ring[0].len ? ring[0].data[pos] :
-@@ -461,10 +523,10 @@ static size_t bundle_ring_length(ring_t
-     unsigned pos = 8+8;//goto first length field
-     uint32_t advance = 0;
-     do {
--        advance = deref(pos+0, ring) << (8*0) |
--                  deref(pos+1, ring) << (8*1) |
--                  deref(pos+2, ring) << (8*2) |
--                  deref(pos+3, ring) << (8*3);
-+        advance = deref(pos+0, ring) << (8*3) |
-+                  deref(pos+1, ring) << (8*2) |
-+                  deref(pos+2, ring) << (8*1) |
-+                  deref(pos+3, ring) << (8*0);
-         if(advance)
-             pos += 4+advance;
-     } while(advance);
-@@ -598,6 +660,49 @@ bool rtosc_valid_message_p(const char *m
-     size_t observed_length = rtosc_message_length(msg, len);
-     return observed_length == len;
- }
-+static uint64_t extract_uint64(const uint8_t *arg_pos)
-+{
-+    uint64_t arg = 0;
-+    arg |= (((uint64_t)*arg_pos++) << 56);
-+    arg |= (((uint64_t)*arg_pos++) << 48);
-+    arg |= (((uint64_t)*arg_pos++) << 40);
-+    arg |= (((uint64_t)*arg_pos++) << 32);
-+    arg |= (((uint64_t)*arg_pos++) << 24);
-+    arg |= (((uint64_t)*arg_pos++) << 16);
-+    arg |= (((uint64_t)*arg_pos++) << 8);
-+    arg |= (((uint64_t)*arg_pos++));
-+    return arg;
-+}
-+
-+static uint32_t extract_uint32(const uint8_t *arg_pos)
-+{
-+    uint32_t arg = 0;
-+    arg |= (((uint32_t)*arg_pos++) << 24);
-+    arg |= (((uint32_t)*arg_pos++) << 16);
-+    arg |= (((uint32_t)*arg_pos++) << 8);
-+    arg |= (((uint32_t)*arg_pos++));
-+    return arg;
-+}
-+
-+static void emplace_uint64(uint8_t *buffer, uint64_t d)
-+{
-+    buffer[0] = ((d>>56) & 0xff);
-+    buffer[1] = ((d>>48) & 0xff);
-+    buffer[2] = ((d>>40) & 0xff);
-+    buffer[3] = ((d>>32) & 0xff);
-+    buffer[4] = ((d>>24) & 0xff);
-+    buffer[5] = ((d>>16) & 0xff);
-+    buffer[6] = ((d>>8)  & 0xff);
-+    buffer[7] = ((d>>0)  & 0xff);
-+}
-+
-+static void emplace_uint32(uint8_t *buffer, uint32_t d)
-+{
-+    buffer[0] = ((d>>24) & 0xff);
-+    buffer[1] = ((d>>16) & 0xff);
-+    buffer[2] = ((d>>8)  & 0xff);
-+    buffer[3] = ((d>>0)  & 0xff);
-+}
- 
- size_t rtosc_bundle(char *buffer, size_t len, uint64_t tt, int elms, ...)
- {
-@@ -605,15 +710,15 @@ size_t rtosc_bundle(char *buffer, size_t
-     memset(buffer, 0, len);
-     strcpy(buffer, "#bundle");
-     buffer += 8;
--    (*(uint64_t*)buffer) = tt;
--    buffer +=8;
-+    emplace_uint64((uint8_t*)buffer, tt);
-+    buffer += 8;
-     va_list va;
-     va_start(va, elms);
-     for(int i=0; i<elms; ++i) {
-         const char   *msg  = va_arg(va, const char*);
-         //It is assumed that any passed message/bundle is valid
-         size_t        size = rtosc_message_length(msg, -1);
--        *(uint32_t*)buffer = size;
-+        emplace_uint32((uint8_t*)buffer, size);
-         buffer += 4;
-         memcpy(buffer, msg, size);
-         buffer+=size;
-@@ -623,14 +728,14 @@ size_t rtosc_bundle(char *buffer, size_t
-     return buffer-_buffer;
- }
- 
-+
- #define POS ((size_t)(((const char *)lengths) - buffer))
- size_t rtosc_bundle_elements(const char *buffer, size_t len)
- {
-     const uint32_t *lengths = (const uint32_t*) (buffer+16);
-     size_t elms = 0;
--    //TODO
--    while(POS < len && *lengths) {
--        lengths += *lengths/4+1;
-+    while(POS < len && extract_uint32((const uint8_t*)lengths)) {
-+        lengths += extract_uint32((const uint8_t*)lengths)/4+1;
- 
-         if(POS > len)
-             break;
-@@ -644,7 +749,10 @@ const char *rtosc_bundle_fetch(const cha
- {
-     const uint32_t *lengths = (const uint32_t*) (buffer+16);
-     size_t elm_pos = 0;
--    while(elm_pos!=elm && *lengths) ++elm_pos, lengths+=*lengths/4+1;
-+    while(elm_pos!=elm && extract_uint32((const uint8_t*)lengths)) {
-+        ++elm_pos;
-+        lengths += extract_uint32((const uint8_t*)lengths)/4+1;
-+    }
- 
-     return (const char*) (elm==elm_pos?lengths+1:NULL);
- }
-@@ -654,9 +762,9 @@ size_t rtosc_bundle_size(const char *buf
-     const uint32_t *lengths = (const uint32_t*) (buffer+16);
-     size_t elm_pos = 0;
-     size_t last_len = 0;
--    while(elm_pos!=elm && *lengths) {
--        last_len = *lengths;
--        ++elm_pos, lengths+=*lengths/4+1;
-+    while(elm_pos!=elm && extract_uint32((const uint8_t*)lengths)) {
-+        last_len = extract_uint32((const uint8_t*)lengths);
-+        ++elm_pos, lengths+=extract_uint32((const uint8_t*)lengths)/4+1;
-     }
- 
-     return last_len;
-@@ -669,5 +777,5 @@ int rtosc_bundle_p(const char *msg)
- 
- uint64_t rtosc_bundle_timetag(const char *msg)
- {
--    return *(uint64_t*)(msg+8);
-+    return extract_uint64((const uint8_t*)msg+8);
- }
-Index: zynaddsubfx/rtosc/test/bundles.c
-===================================================================
---- zynaddsubfx.orig/rtosc/test/bundles.c
-+++ zynaddsubfx/rtosc/test/bundles.c
-@@ -1,6 +1,5 @@
--#include <stdio.h>
-+#include "common.h"
- #include <stdlib.h>
--#include <string.h>
- #include <rtosc/rtosc.h>
- 
- char buffer_a[256];
-@@ -11,15 +10,6 @@ size_t len_a;
- size_t len_b;
- size_t len_c;
- 
--
--void check(int b, const char *msg, int loc)
--{
--    if(!b) {
--        fprintf(stderr, "%s:%d\n", msg, loc);
--        exit(1);
--    }
--}
--
- #define MSG1 "/fly" "ing-" "monk" "ey\0\0" ",s\0\0" "bann" "ana\0"
- #define MSG2 "/foo" "bar-" "mess" "age\0" ",iT\0" "\0\0\0\x2a"
- 
-@@ -28,47 +18,55 @@ void check(int b, const char *msg, int l
-                /*size1             size2*/ \
-                "\0\0\0\x1c" MSG1 "\0\0\0\x18" MSG2
- 
--//TODO nested bundles (though I swore those were already done)
- int main()
- {
--    printf("%d %d %d\n", (int)sizeof(MSG1)-1, (int)sizeof(MSG2)-1, (int)sizeof(RESULT)-1);
--    check((len_a = rtosc_message(buffer_a, 256,
--                    "/flying-monkey", "s", "bannana")) == sizeof(MSG1)-1,
--            "bad message", __LINE__);
--    check((len_b = rtosc_message(buffer_b, 256,
--                    "/foobar-message", "iT", 42)) == sizeof(MSG2)-1,
--            "bad message", __LINE__);
--    check(!rtosc_bundle_p(buffer_a),
--            "False positive bundle_p()", __LINE__);
--    check(!rtosc_bundle_p(buffer_b),
--            "False positive bundle_p()", __LINE__);
--    len_c = rtosc_bundle(buffer_c, 256, 0, 2, buffer_a, buffer_b);
--        printf("len_c => '%zd'\n correct is %d\n", len_c, (int)sizeof(RESULT)-1);
--    check((len_c = rtosc_bundle(buffer_c, 256, 0, 2, buffer_a, buffer_b)) == sizeof(RESULT)-1,
--            "bad bundle", __LINE__);
--    check(rtosc_message_length(buffer_c, len_c) == len_c,
--            "bad message length", __LINE__);
--
--    check(rtosc_bundle_p(buffer_c),
--            "Bad bundle detection", __LINE__);
--    check(rtosc_bundle_elements(buffer_c, 256)==2,
--            "Bad bundle_elements length", __LINE__);
--    check(!strcmp("/flying-monkey", rtosc_bundle_fetch(buffer_c, 0)),
--            "Bad bundle_fetch", __LINE__);
--    check(!strcmp("/foobar-message", rtosc_bundle_fetch(buffer_c, 1)),
--            "Bad bundle_fetch", __LINE__);
-+    //Message 1
-+    assert_int_eq(sizeof(MSG1)-1, len_a = rtosc_message(buffer_a, 256,
-+                    "/flying-monkey", "s", "bannana"),
-+            "Creating Simple Message 1", __LINE__);
-+    assert_hex_eq(MSG1, buffer_a, sizeof(MSG1)-1, len_a,
-+            "Verifying Content of Message 1", __LINE__);
-+    assert_int_eq(0, rtosc_bundle_p(buffer_a),
-+            "Simple Message 1 Is Not A Bundle", __LINE__);
-+
-+    //Message 2
-+    assert_int_eq(sizeof(MSG2)-1, len_b = rtosc_message(buffer_b, 256,
-+                    "/foobar-message", "iT", 42),
-+            "Creating Simple Message 2", __LINE__);
-+    assert_hex_eq(MSG2, buffer_b, sizeof(MSG2)-1, len_b,
-+            "Verifying Content of Message 2", __LINE__);
-+    assert_int_eq(0, rtosc_bundle_p(buffer_b),
-+            "Simple Message 2 Is Not A Bundle", __LINE__);
-+
-+    //Bundle 1
-+    assert_int_eq(sizeof(RESULT)-1, len_c = rtosc_bundle(buffer_c, 256, 0, 2, buffer_a, buffer_b),
-+            "Creating Bundle 1", __LINE__);
-+    assert_int_eq(len_c, rtosc_message_length(buffer_c, len_c),
-+            "Verifying Bundle 1's Length", __LINE__);
-+    assert_hex_eq(RESULT, buffer_c, sizeof(RESULT)-1, len_c,
-+            "Verifying Bundle 1's Content", __LINE__);
-+
-+    assert_int_eq(1, rtosc_bundle_p(buffer_c),
-+            "Verifying Bundle 1 Is A Bundle", __LINE__);
-+    assert_int_eq(2, rtosc_bundle_elements(buffer_c, 256),
-+            "Verifying Bundle 2 Has Two Messages", __LINE__);
-+
-+    assert_str_eq("/flying-monkey", rtosc_bundle_fetch(buffer_c, 0),
-+            "Verifying Message 1 Path", __LINE__);
-+    assert_str_eq("/foobar-message", rtosc_bundle_fetch(buffer_c, 1),
-+            "Verifying Message 2 Path", __LINE__);
- 
-     //Check minimum bundle size #bundle + time tag
--    check(rtosc_bundle(buffer_c, 256, 1, 0) == (8+8),
--            "Bad minimum bundle length", __LINE__);
-+    assert_int_eq(8+8, rtosc_bundle(buffer_c, 256, 1, 0),
-+            "Verify Minimum Legal Bundle Size", __LINE__);
- 
-     //check message length support
--    check(rtosc_message_length(buffer_c, 256) == (8+8),
--            "Bad message length", __LINE__);
-+    assert_int_eq(8+8, rtosc_message_length(buffer_c, 256),
-+            "Verify rtosc_message_length() on Minimum Bundle", __LINE__);
- 
-     //Verify that timetag can be fetched
--    check(rtosc_bundle_timetag(buffer_c)==1,
--            "Bad timetag", __LINE__);
-+    assert_int_eq(1, rtosc_bundle_timetag(buffer_c),
-+            "Verify rtosc_bundle_timetag() Works", __LINE__);
- 
--    return 0;
-+    return global_err ? EXIT_FAILURE : EXIT_SUCCESS;
- }
-Index: zynaddsubfx/rtosc/test/liblo.c
-===================================================================
---- zynaddsubfx.orig/rtosc/test/liblo.c
-+++ zynaddsubfx/rtosc/test/liblo.c
-@@ -1,72 +1,77 @@
-+#include "common.h"
- #include <lo/lo.h>
- #include <rtosc/rtosc.h>
- #include <string.h>
- #include <stdio.h>
- 
--char buffer[128];
-+char buffer1[128];
- 
- char buffer2[1024];
- 
- char buffer3[2048];
- 
--int good = 1;
-+char buffer4[2048];
-+char buffer5[2048];
-+
-+
-+int result_var = 0;
- int main()
- {
-     //clean buffer
--    memset(buffer, 0, sizeof(buffer));
-+    memset(buffer1, 0xc3, sizeof(buffer1));
- 
--    //generate liblo message
-+    //generate liblo message 1
-     size_t len = 128;
-     lo_message message = lo_message_new();
-+    assert_non_null(message, "Generating A Liblo Message 1 (int/float)", __LINE__);
-     lo_message_add_float(message, 24.0);
-     lo_message_add_int32(message, 42);
--    lo_message_serialise(message, "/path", buffer, &len);
--    lo_message_free(message);
-+    lo_message_serialise(message, "/path", buffer1, &len);
-+    //lo_message_free(message);
- 
--    printf("Generating a message from liblo '/path\\0\\0\\0,fi\\0iiiiffff'...\n");
-+    assert_str_eq("/path", buffer1, "Verifying Path From Message 1", __LINE__);
-+    assert_f32_eq(24.0f, rtosc_argument(buffer1, 0).f,
-+            "Verifying Float From Message 1", __LINE__);
-+    assert_int_eq(42, rtosc_argument(buffer1, 1).i,
-+            "Verifying Int From Message 1", __LINE__);
-+    assert_int_eq(20, rtosc_message_length(buffer1, 128),
-+            "Verifying Length From Message 1", __LINE__);
-+
-+
-+    //Message 2
-+    size_t len2 = rtosc_message(buffer2, 1024, "/li", "bb", 4, buffer1, 4, buffer1);
-+    assert_int_eq(24, len2, "Generate A Rtosc Message 2 (bb)", __LINE__);
-+    lo_message msg2 = lo_message_deserialise((void*)buffer2, len2, &result_var);
-+    if(assert_non_null(msg2, "Deserialize Message 2 To Liblo", __LINE__))
-+        printf("# Liblo Did Not Accept the Rtosc Message [error '%d']\n", result_var);
-+
-+    //Message 3
-+    size_t len3 = rtosc_message(buffer3+4, 2048, "/close-ui", "");
-+    assert_int_eq(16, len3, "Generate A Rtosc Message 3 ()", __LINE__);
-+    lo_message msg3 = lo_message_deserialise((void*)(buffer3+4), len3, &result_var);
-+    if(assert_non_null(msg2, "Deserialize Message 3 To Liblo", __LINE__))
-+        printf("#Liblo Did Not Accept the Rtosc Message [error '%d']\n", result_var);
-+
-+    //Bundle 4
-+    size_t len4 = rtosc_bundle(buffer4, 2048, 0xdeadbeefcafebaad, 3, buffer1, buffer2, buffer3+4);
-+    assert_int_eq(88, len4, "Generate A Bundle 4", __LINE__);
-+
-+    //Bundle 5
-+    lo_timetag time;
-+    time.sec  = 0xdeadbeef;
-+    time.frac = 0xcafebaad;
-+    lo_bundle ms4 = lo_bundle_new(time);
-+    lo_bundle_add_message(ms4, "/path",     message);
-+    lo_bundle_add_message(ms4, "/li",       msg2);
-+    lo_bundle_add_message(ms4, "/close-ui", msg3);
-+    size_t len5 = 2048;
-+    lo_bundle_serialise(ms4,(void*)buffer5, &len5);
-+
-+    //Verify 4 == 5
-+    assert_non_null(ms4, "Generate A Liblo Bundle 5", __LINE__);
-+    assert_hex_eq(buffer5, buffer4, len5, len4,
-+            "Verify Liblo Style Bundles", __LINE__);
- 
--    good &= !strcmp("/path", buffer);
--    good &= 24.0 == rtosc_argument(buffer, 0).f;
--    good &= 42   == rtosc_argument(buffer, 1).i;
--    good &= len  == rtosc_message_length(buffer, 128);
--    printf("Message sanity is currently '%d'\n", good);
--
--    printf("Generating a message from rtosc '/li\\0\\0,bb\\0iiiibbbbiiiibbbb'...\n");
--    size_t len2 = rtosc_message(buffer2, 1024, "/li", "bb", 4, buffer, 4, buffer);
--    for(size_t i=0; i<len2; i+=4)  {
--        for(size_t j=i; j<len2 && j<i+4; ++j) {
--            printf("%02x", (unsigned char)buffer2[j]);
--        }
--        printf(" ");
--    }
--    printf("\n");
--
--    for(size_t i=0; i<len2; i+=4)  {
--        for(size_t j=i; j<len2 && j<i+4; ++j) {
--            printf("%c", (unsigned char)buffer2[j]);
--        }
--        printf(" ");
--    }
--    printf("\n");
--    printf("message size is '%zd'\n", len2);
--
--    int result = 0;
--    lo_message msg2 = lo_message_deserialise((void*)buffer2, len2, &result);
--    good &= msg2 != NULL;
--    if(msg2 == NULL)
--        printf("Liblo Did Not Accept the Rtosc Message [error '%d']\n", result);
--    else
--        printf("Liblo Accpted The Rtosc Message\n");
--
--    printf("Generating a message from rtosc '/close-ui\\0\\0\\0,\\0\\0\\0'...\n");
--    int len3 = rtosc_message(buffer3+4, 2048, "/close-ui", "");
--    lo_message msg3 = lo_message_deserialise((void*)buffer3+4, len3, &result);
--    printf("len3 = %d\n", len3);
--    good &= msg2 != NULL;
--    if(msg3 == NULL)
--        printf("Liblo Did Not Accept the Rtosc Message [error '%d']\n", result);
--    else
--        printf("Liblo Accpted The Rtosc Message\n");
- 
--    return !good;
-+    return global_err ? EXIT_FAILURE : EXIT_SUCCESS;
- }
-Index: zynaddsubfx/rtosc/test/nested-bundles.c
-===================================================================
---- zynaddsubfx.orig/rtosc/test/nested-bundles.c
-+++ zynaddsubfx/rtosc/test/nested-bundles.c
-@@ -1,6 +1,5 @@
--#include <stdio.h>
-+#include "common.h"
- #include <stdlib.h>
--#include <string.h>
- #include <rtosc/rtosc.h>
- 
- char buffer_a[256];
-@@ -9,122 +8,85 @@ char buffer_c[256];
- char buffer_d[256];
- char buffer_e[256];
- 
--int err = 0;
--void check(int b, const char *msg, int loc)
--{
--    if(!b) {
--        fprintf(stderr, "%s:%d\n", msg, loc);
--        err = 1;
--    }
--}
-+#define TIMETAG_VALUE ((uint64_t)0xdeadbeefcafebaad)
-+#define BUNDLE_ARG "bund" "le\0\0"
-+#define POUND_BUNDLE "#bun" "dle\0"
-+#define TIMETAG "\xde\xad\xbe\xef" "\xca\xfe\xba\xad"
-+#define MSG_A "/bun" "dle\0" ",s\0\0" BUNDLE_ARG
-+#define MSG_B "/bun" "dle-" "bund" "le\0\0" ",ss\0" BUNDLE_ARG BUNDLE_ARG
-+#define LEN_A "\0\0\0\x14"
-+#define LEN_B "\0\0\0\x24"
-+#define LEN_C "\0\0\0\x40"
- 
--#define VERB_BUNDLE \
--good &= (*msg++ == 'b'); \
--good &= (*msg++ == 'u'); \
--good &= (*msg++ == 'n'); \
--good &= (*msg++ == 'd'); \
--good &= (*msg++ == 'l'); \
--good &= (*msg++ == 'e');
--
--#define POUND_BUNDLE \
--good = 1; \
--good &= (*msg++ == '#'); \
--VERB_BUNDLE \
--good &= (*msg++ == '\0'); \
--check(good, "bad bundle start", __LINE__);
--
--#define TIMETAG msg += 8;
--
--#define SKIP_SIZE msg += 4;
--
--#define MSG_A \
--good = 1; \
--good &= (*msg++ == '/'); \
--VERB_BUNDLE \
--good &= (*msg++ == '\0'); \
--\
--good &= (*msg++ == ','); \
--good &= (*msg++ == 's'); \
--good &= (*msg++ == '\0'); \
--good &= (*msg++ == '\0'); \
--\
--VERB_BUNDLE \
--good &= (*msg++ == '\0'); \
--good &= (*msg++ == '\0'); \
--check(good, "bad message 'A'", __LINE__);
--
--#define MSG_B \
--good = 1; \
--good &= (*msg++ == '/'); \
--VERB_BUNDLE \
--good &= (*msg++ == '-'); \
--VERB_BUNDLE \
--good &= (*msg++ == '\0'); \
--good &= (*msg++ == '\0'); \
--\
--good &= (*msg++ == ','); \
--good &= (*msg++ == 's'); \
--good &= (*msg++ == 's'); \
--good &= (*msg++ == '\0'); \
--\
--VERB_BUNDLE \
--good &= (*msg++ == '\0'); \
--good &= (*msg++ == '\0'); \
--VERB_BUNDLE \
--good &= (*msg++ == '\0'); \
--good &= (*msg++ == '\0'); \
--check(good, "bad message 'B'", __LINE__);
-+#define BAD_SIZE "\xba\xad\xca\xfe"
- 
- #define BUNDLE_C \
- POUND_BUNDLE \
- TIMETAG \
--SKIP_SIZE \
-+LEN_A \
- MSG_A \
--SKIP_SIZE \
-+LEN_A \
- MSG_A
--
-+    
-+#define BUNDLE_D \
-+POUND_BUNDLE \
-+TIMETAG \
-+LEN_C \
-+BUNDLE_C \
-+LEN_C \
-+BUNDLE_C \
-+LEN_B \
-+MSG_B
-+
-+const int La = sizeof(MSG_A)-1;
-+const int Lb = sizeof(MSG_B)-1;
-+const int Lc = sizeof(BUNDLE_C)-1;
-+const int Ld = sizeof(BUNDLE_D)-1;
- 
- int main()
- {
--    check(rtosc_message(buffer_a, 256, "/bundle", "s", "bundle"),
--            "bad message", __LINE__);
--    check(rtosc_message(buffer_b, 256, "/bundle-bundle", "ss", "bundle", "bundle"),
--            "bad message", __LINE__);
--    int len;
--    check(rtosc_bundle(buffer_c, 256, 0, 2, buffer_a, buffer_a) == 64,
--            "bad bundle", __LINE__);
--    check(rtosc_message_length(buffer_c, 256) == 64,
--            "bad bundle length", __LINE__);
--    check((len = rtosc_bundle(buffer_d, 256, 0, 3, buffer_c, buffer_c, buffer_b)) == 192,
--            "bad bundle", __LINE__);
--    check(rtosc_message_length(buffer_d, 256) == 192,
--            "bad bundle length", __LINE__);
--    check(rtosc_message_length(buffer_d, len) == 192,
--            "bad bundle length", __LINE__);
--
--    //now to verify the bundle
--    const char *msg = buffer_d;
--    int good;
--    POUND_BUNDLE
--    TIMETAG
--    SKIP_SIZE
--    BUNDLE_C
--    SKIP_SIZE
--    BUNDLE_C
--    SKIP_SIZE
--    MSG_B
-+    //Message 1
-+    assert_int_eq(La, rtosc_message(buffer_a, 256, "/bundle", "s", "bundle"),
-+            "Create Message 1", __LINE__);
-+    assert_hex_eq(MSG_A, buffer_a, La, La,
-+            "Verifying Contents Of Message 1", __LINE__);
-+
-+    //Message 2
-+    assert_int_eq(Lb, rtosc_message(buffer_b, 256, "/bundle-bundle", "ss", "bundle", "bundle"),
-+            "Create Message 2", __LINE__);
-+    assert_hex_eq(MSG_B, buffer_b, Lb, Lb,
-+            "Verifying Contents Of Message 2", __LINE__);
- 
--    check(rtosc_bundle_elements(buffer_d, len) == 3,
--            "bad bundle elements", __LINE__);
--    
--    check(!strcmp("bundle",
--                rtosc_argument(rtosc_bundle_fetch(rtosc_bundle_fetch(buffer_d, 1), 1), 0).s),
--            "bad data retreival", __LINE__);
-+    int len;
-+    //Bundle 1
-+    assert_int_eq(64, rtosc_bundle(buffer_c, 256, TIMETAG_VALUE, 2, buffer_a, buffer_a),
-+            "Create Bundle 1", __LINE__);
-+    assert_hex_eq(BUNDLE_C, buffer_c, Lc, Lc,
-+            "Verifying Bundle 1's Content", __LINE__);
-+    assert_int_eq(64, rtosc_message_length(buffer_c, 256),
-+            "Verify Bundle 1's Length", __LINE__);
-+
-+    //Bundle 2
-+    assert_int_eq(192, len = rtosc_bundle(buffer_d, 256, TIMETAG_VALUE, 3, buffer_c, buffer_c, buffer_b),
-+            "Create Bundle 2", __LINE__);
-+    assert_hex_eq(BUNDLE_D, buffer_d, Ld, Ld,
-+            "Verifying Bundle 2's Content", __LINE__);
-+    assert_int_eq(192, rtosc_message_length(buffer_d, 256),
-+            "Verify Bundle 2's Length", __LINE__);
-+    assert_int_eq(192, rtosc_message_length(buffer_d, len),
-+            "Verify Bundle 2's Length With Tight Bounds", __LINE__);
-+
-+
-+    assert_int_eq(3, rtosc_bundle_elements(buffer_d, len),
-+            "Verify Bundle 2's Subelements", __LINE__);
-+    assert_str_eq("bundle", rtosc_argument(rtosc_bundle_fetch(rtosc_bundle_fetch(buffer_d, 1), 1), 0).s,
-+            "Verify Nested Message's Integrety", __LINE__);
-     
-     //Verify the failure behavior when a bad length is provided
--    check(rtosc_bundle_elements(buffer_d, len-1) == 2,
--            "bad truncated bundle elements", __LINE__);
--    check(rtosc_message_length(buffer_d, len-1) == 0,
--            "bad truncated bundle length", __LINE__);
--    return err;
-+    assert_int_eq(2, rtosc_bundle_elements(buffer_d, len-1),
-+            "Verify Aparent Bundles With Truncated Length", __LINE__);
-+    assert_int_eq(0, rtosc_message_length(buffer_d, len-1),
-+            "Verify Bad Message Is Detected With Truncation", __LINE__);
-+
-+    return global_err ? EXIT_FAILURE : EXIT_SUCCESS;
- }
-Index: zynaddsubfx/rtosc/test/common.h
-===================================================================
---- /dev/null
-+++ zynaddsubfx/rtosc/test/common.h
-@@ -0,0 +1,160 @@
-+#include <stdio.h>
-+#include <string.h>
-+#include <ctype.h>
-+#include <stdlib.h>
-+
-+int global_err = 0;
-+int test_counter = 0;
-+//expect a
-+//actual b
-+int assert_int_eq(int a, int b, const char *testcase, int line)
-+{
-+    test_counter++;
-+    int err = a!=b;
-+    if(err) {
-+        printf("not ok %d - %s...\n", test_counter, testcase);
-+        printf("# Expected %d, but observed %d instead (line %d)\n", a, b, line);
-+        global_err++;
-+    } else
-+        printf("ok %d - %s...\n", test_counter, testcase);
-+    return err;
-+}
-+
-+int assert_str_eq(const char *a, const char *b, const char *testcase, int line)
-+{
-+    test_counter++;
-+    int err = strcmp(a,b);
-+    if(err) {
-+        printf("not ok %d - %s...\n", test_counter, testcase);
-+        printf("# Expected '%s', but observed '%s' instead (line %d)\n", a, b, line);
-+        global_err++;
-+    } else
-+        printf("ok %d - %s...\n", test_counter, testcase);
-+    return err;
-+}
-+
-+int assert_non_null(void *v, const char *testcase, int line)
-+{
-+    test_counter++;
-+    int err = !v;
-+    if(err) {
-+        printf("not ok %d - %s...\n", test_counter, testcase);
-+        printf("# Expected Non-NULL value, but observed NULL instead (line %d)\n", line);
-+        global_err++;
-+    } else
-+        printf("ok %d - %s...\n", test_counter, testcase);
-+    return err;
-+}
-+
-+int assert_f32_eq(float a, float b,const char *testcase, int line)
-+{
-+    test_counter++;
-+    int err = a!=b;
-+    if(err) {
-+        printf("not ok %d - %s...\n", test_counter, testcase);
-+        printf("# Expected %f, but observed %f instead (line %d)\n", a, b, line);
-+        global_err++;
-+    } else
-+        printf("ok %d - %s...\n", test_counter, testcase);
-+    return err;
-+}
-+
-+//produce a xxd style hexdump with sections highlighted using escape sequences
-+//
-+//e.g.
-+//0000000: 2369 6e63 6c75 6465 203c 7374 6469 6f2e  #include <stdio.
-+//0000010: 683e 0a23 696e 636c 7564 6520 3c73 7472  h>.#include <str
-+//0000020: 696e 672e 683e 0a0a 696e 7420 676c 6f62  ing.h>..int glob
-+//0000030: 616c 5f65 7272 203d 2030 3b0a 696e 7420  al_err = 0;.int 
-+//0000040: 7465 7374 5f63 6f75 6e74 6572 203d 2030  test_counter = 0
-+//0000050: 3b0a 2f2f 6578 7065 6374 2061 0a2f 2f61  ;.//expect a.//a
-+//
-+void hexdump(const char *data, const char *mask, size_t len)
-+{
-+    const char *bold_gray = "\x1b[30;1m";
-+    const char *reset      = "\x1b[0m";
-+    int offset = 0;
-+    while(1)
-+    {
-+        //print line
-+        printf("#%07x: ", offset);
-+
-+        int char_covered = 0;
-+        
-+        //print hex groups (8)
-+        for(int i=0; i<8; ++i) {
-+        
-+            //print doublet
-+            for(int j=0; j<2; ++j) {
-+                int loffset = offset + 2*i + j;
-+                if(loffset >= (int)len)
-+                    goto escape;
-+        
-+                //print hex
-+                {
-+                    //start highlight
-+                    if(mask && mask[loffset]){printf("%s", bold_gray);}
-+
-+                    //print chars
-+                    printf("%02x", 0xff&data[loffset]);
-+                    
-+                    //end highlight
-+                    if(mask && mask[loffset]){printf("%s", reset);}
-+                    char_covered += 2;
-+                }
-+            }
-+            printf(" ");
-+            char_covered += 1;
-+        }
-+escape:
-+
-+        //print filler if needed
-+        for(int i=char_covered; i<41; ++i)
-+            printf(" ");
-+
-+        //print ascii (16)
-+        for(int i=0; i<16; ++i) {
-+            if(isprint(data[offset+i]))
-+                printf("%c", data[offset+i]);
-+            else
-+                printf(".");
-+        }
-+        printf("\n");
-+        offset += 16;
-+        if(offset >= len)
-+            return;
-+    }
-+}
-+
-+
-+int assert_hex_eq(const char *a, const char *b, size_t size_a, size_t size_b,
-+                  const char *testcase, int line)
-+{
-+    test_counter++;
-+    int err = (size_a != size_b) || memcmp(a, b, size_a);
-+    if(err) {
-+        printf("not ok %d - %s...\n", test_counter, testcase);
-+        printf("# Error on line %d\n", line);
-+        //printf("# Expected '%s', but observed '%s' instead (line %d)\n", a, b, line);
-+        
-+        //create difference mask
-+        const int longer  = size_a > size_b ? size_a : size_b;
-+        const int shorter = size_a < size_b ? size_a : size_b;
-+        char mask[longer];
-+        memset(mask, 0, longer);
-+        for(int i=0; i<shorter; ++i)
-+            if(a[i] != b[i])
-+                mask[i] = 1;
-+
-+        printf("#\n");
-+        printf("# Expected:\n");
-+        hexdump(a, mask, size_a);
-+        printf("#\n");
-+        printf("# Observed:\n");
-+        hexdump(b, mask, size_b);
-+
-+        global_err++;
-+    } else
-+        printf("ok %d - %s...\n", test_counter, testcase);
-+    return err;
-+}
-Index: zynaddsubfx/rtosc/include/rtosc/rtosc.h
-===================================================================
---- zynaddsubfx.orig/rtosc/include/rtosc/rtosc.h
-+++ zynaddsubfx/rtosc/include/rtosc/rtosc.h
-@@ -115,6 +115,37 @@ unsigned rtosc_narguments(const char *ms
-  */
- char rtosc_type(const char *msg, unsigned i);
- 
-+typedef struct {
-+    const char    *type_pos;
-+    const uint8_t *value_pos;
-+} rtosc_arg_itr_t;
-+
-+typedef struct {
-+    char type;
-+    rtosc_arg_t val;
-+} rtosc_arg_val_t;
-+
-+/**
-+ * Create an argument iterator for a message
-+ * @param msg OSC message
-+ * @returns an initialized iterator
-+ */
-+rtosc_arg_itr_t rtosc_itr_begin(const char *msg);
-+
-+/**
-+ * Gets the next argument in a message
-+ * @param itr OSC message iterator
-+ * @returns a type value pair from the message
-+ */
-+rtosc_arg_val_t rtosc_itr_next(rtosc_arg_itr_t *itr);
-+
-+/**
-+ * Determines if the iterator is at the end of the argument list
-+ * @param itr OSC message iterator
-+ * @returns 1 if there are no more elements, 0 otherwise
-+ */
-+int rtosc_itr_end(rtosc_arg_itr_t itr);
-+
- /**
-  * Blob data may be safely written to
-  * @param msg OSC message
diff --git a/debian/patches/05-fix_build_armel.patch b/debian/patches/05-fix_build_armel.patch
deleted file mode 100644
index 365aa74..0000000
--- a/debian/patches/05-fix_build_armel.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-Description: Fix build on armel - from upstream.
-Author: Jaromír Mikeš <mira.mikes at seznam.cz>
-Forwarded: no
-
-Index: zynaddsubfx/src/CMakeLists.txt
-===================================================================
---- zynaddsubfx.orig/src/CMakeLists.txt
-+++ zynaddsubfx/src/CMakeLists.txt
-@@ -4,6 +4,7 @@ message(STATUS "Checking Library Path" $
- 
- #Dependency check
- include(CheckFunctionExists)
-+include(CheckCXXSourceCompiles)
- find_package(PkgConfig REQUIRED)
- find_package(zlib REQUIRED)
- find_package(X11)
-@@ -33,6 +34,15 @@ mark_as_advanced(LIBLO_LIBRARIES)
- 
- CHECK_FUNCTION_EXISTS(sched_setscheduler HAVE_SCHEDULER)
- 
-+set(CMAKE_REQUIRED_FLAGS "-std=c++11")
-+CHECK_CXX_SOURCE_COMPILES(
-+    "#include <future>
-+    #if ATOMIC_INT_LOCK_FREE<2
-+    #error unreliable atomics
-+    #endif
-+    int main(){return 0;}" HAVE_ASYNC)
-+set(CMAKE_REQUIRED_FLAGS "")
-+
- execute_process(COMMAND echo fistpl 0
-                 COMMAND as -
-                 ERROR_VARIABLE AVOID_ASM)
-@@ -75,6 +85,8 @@ if(NOT "Darwin" STREQUAL ${CMAKE_SYSTEM_
-     add_definitions(-DHAVE_SCHEDULER=${HAVE_SCHEDULER})
- endif()
- 
-+add_definitions(-DHAVE_ASYNC=${HAVE_ASYNC})
-+
- 
- # Give a good guess on the best Input/Output default backends
- if (JackEnable)
-@@ -445,4 +457,5 @@ package_status(LIBLO_FOUND      "liblo
- package_status(FLTK_FOUND       "fltk     " "found"   ${Yellow})
- package_status(NTK_FOUND        "ntk      " "found"   ${Yellow})
- package_status(X11_FOUND        "x11      " "found"   ${Yellow})
-+package_status(HAVE_ASYNC       "c++ async" "usable"  ${Yellow})
- message(STATUS "Link libraries: ${ZLIB_LIBRARY} ${FFTW_LIBRARY} ${MXML_LIBRARIES} ${AUDIO_LIBRARIES} ${OS_LIBRARIES}")
-Index: zynaddsubfx/src/Misc/MiddleWare.cpp
-===================================================================
---- zynaddsubfx.orig/src/Misc/MiddleWare.cpp
-+++ zynaddsubfx/src/Misc/MiddleWare.cpp
-@@ -668,6 +668,9 @@ public:
-             return;
-         assert(actual_load[npart] <= pending_load[npart]);
- 
-+        //load part async when possible
-+#if HAVE_ASYNC
-+
-         auto alloc = std::async(std::launch::async,
-                 [master,filename,this,npart](){
-                 Part *p = new Part(*master->memory, synth, &master->microtonal, master->fft);
-@@ -689,6 +692,17 @@ public:
-         }
- 
-         Part *p = alloc.get();
-+#else
-+        Part *p = new Part(*master->memory, synth, &master->microtonal, master->fft);
-+        if(p->loadXMLinstrument(filename))
-+            fprintf(stderr, "Warning: failed to load part<%s>!\n", filename);
-+
-+        auto isLateLoad = [this,npart]{
-+            return actual_load[npart] != pending_load[npart];
-+        };
-+
-+        p->applyparameters(isLateLoad);
-+#endif
- 
-         obj_store.extractPart(p, npart);
-         kits.extractPart(p, npart);
diff --git a/debian/patches/series b/debian/patches/series
index 0eee2b6..a15f616 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,5 +1,3 @@
 0001-no_sse_generic.patch
 0002-misspellings.patch
 03-dont_duplicate_changelog_files.patch
-04-fix_endianess.patch
-05-fix_build_armel.patch

-- 
zynaddsubfx packaging



More information about the pkg-multimedia-commits mailing list