コード例 #1
0
ファイル: exporter.py プロジェクト: jnurmine/quneo-linux
def reload_preset(num):
    s = SyxEncoder()

    s.start()
    for magic in syx_ident_magic:
        s.write(magic)
    s.start_packet()
    s.crc_init()
    s.chunk_init()

    # preamble
    s.encode_crc(0x00)
    s.encode_crc(0x02)
    # 0x1110 = firmware, 0x2220 = preset
    # 30xx = load preset xx
    s.encode_crc(0x30)
    s.encode_crc(0x00 + num)
    s.encode_crc_int()
    s.flush()
    s.stop()

    return ''.join(struct.pack("B", x) for x in s._buf)
コード例 #2
0
ファイル: exporter.py プロジェクト: jnurmine/quneo-linux
def json2syx(preset, num):
    """ Encode json-format preset to SysEx dump for preset number 'num'.
    """
    rotaries = structs.build_rotaries()
    longsliders = structs.build_longsliders()
    hsliders = structs.build_hsliders()
    vsliders = structs.build_vsliders()

    #
    # Preamble
    #
    data = SyxEncoder()
    data.start()
    for magic in syx_ident_magic:
        data.write(magic)
    # pad with zeroes until offset 0x21
    for i in range(13*2):
        data.write(0)

    data.start_packet()
    data.crc_init()
    data.chunk_init()

    data.encode_crc(0x00)   # TYPE_MSB
    data.encode_crc(0x02)   # TYPE_LSB
    # ID: 0x1110 = firmware, 0x2220 = preset data
    # 30xx = load preset
    data.encode_crc(0x22)
    data.encode_crc(0x20)

    data.encode_crc_int()
    data.flush()

    #
    # Preset header
    #
    data.reset_sum_byte()
    data.encode(syx_preset_start)
    data.encode(num)
    data_length = build_data(preset, encoder=None)

    syx_preset_length_msb = (data_length >> 8) & 0xff
    syx_preset_length_lsb = data_length & 0xff
    data.encode(syx_preset_length_msb)
    data.encode(syx_preset_length_lsb)
    data.crc_init()

    #
    # Preset data
    #
    build_data(preset, encoder=data)

    data.encode(num) # index of this preset
    data.encode(num) # index of last preset in this SysEx
    data.encode_sum_byte()
    data.flush()

    data.stop()

    #print "data_length=%s, msb=%s, lsb=%s" % (data_length, hex(syx_preset_length_msb), hex(syx_preset_length_lsb))

    return ''.join(struct.pack("B", x) for x in data._buf)