#!/usr/bin/env python
# -*- coding:utf-8 -*-

import pprint
import struct
import argparse

EV_LOG = "ev_double.log"
EV_PIPE = "emu_event"

def gen_ev_from_log_entry(line):
    values = line.split("|")
    return {
        "time": {
            "sec": int(values[3]),
            "usec": int(values[4]),
            },
        "type": int(values[0]),
        "code": int(values[1]),
        "value": int(values[2]),
        }

if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("ev_log", type=str,
            help="event log file to replay")
    args = parser.parse_args()

    # parse ev log into dictionaries
    evs = [gen_ev_from_log_entry(line.strip())
            for line in open(args.ev_log)]
    #pprint.pprint(evs)

    # replay evs
    ev_pipe = open(EV_PIPE, "w")
    for ev in evs:
        #@TODO also simulate timing here  25.02 2013 (houqp)
        ev_pipe.write(
            struct.pack("llHHi", 
                ev["time"]["sec"], ev["time"]["usec"],
                ev["type"],
                ev["code"],
                ev["value"])
            )




add ev_log replay script