#!/usr/bin/env python
# Copyright (C) 2014 Antti Palosaari <crope@iki.fi>
# Usage: 

import os
import sys
import re
import struct
import string

fread = file(sys.argv[1], 'r' )

def get_hex_string(ele, start, length):
    string = '"'
    for i in range(length):
        string = string + '\\x' + ele[start + i]
    string = string + '"'
    return string

for line in fread:
    line = line.strip();
    ele = re.split(' ', line)

    print '// ' + line

    # demod Si2168
    # tuner Si2157

    if (len(ele) > 17 and ele[15] == '>>>' and ele[8] == '02'):
        length = int(ele[13], 16)
        if (ele[11] == 'c8'):
            print 'i2c_master_send_DEMOD(s->client, ' + get_hex_string(ele, 17, length) + ', ' + str(length) + '); //' + ele[5]
        elif (ele[11] == 'c0'):
            print 'i2c_master_send_TUNER(s->client, ' + get_hex_string(ele, 17, length) + ', ' + str(length) + '); //' + ele[5]

    if (len(ele) > 16 and ele[15] == '<<<' and ele[8] == '02'):
        length = int(ele[13], 16)
        if (ele[11] == 'c8'):
            print 'i2c_master_recv_DEMOD(s->client, buf, ' + str(length) + '); //' + ele[5] + ' ' + get_hex_string(ele, 17, length)
        elif (ele[11] == 'c0'):
            print 'i2c_master_recv_TUNER(s->client, buf, ' + str(length) + '); //' + ele[5] + ' ' + get_hex_string(ele, 17, length)
        elif (ele[11] == 'a0'): # eeprom
            continue;
        else:
            print 'i2c_master_recv_UNKNOWN(s->client, buf, ' + str(length) + '); //' + ele[5] + ' ' + get_hex_string(ele, 17, length)

fread.close()

