#!/bin/python2 header=''' begin remote name Snapstream_Firefly bits 40 eps 30 aeps 100 one 0 0 zero 0 0 gap 219964 toggle_bit 0 begin codes ''' middle=[ 'MAXI 0x0000001481AC0000', 'MAXI 0x00000014012C0000', 'CLOSE 0x00000014D7020000', 'CLOSE 0x0000001457820000', '1 0x00000014628D0000', '1 0x00000014E20D0000', '2 0x00000014E30E0000', '2 0x00000014638E0000', '3 0x00000014648F0000', '3 0x00000014E40F0000', '4 0x00000014E5100000', '4 0x0000001465900000', '5 0x0000001466910000', '5 0x00000014E6110000', '6 0x00000014E7120000', '6 0x0000001467920000', '7 0x0000001468930000', '7 0x00000014E8130000', '8 0x00000014E9140000', '8 0x0000001469940000', '9 0x000000146A950000', '9 0x00000014EA150000', '0 0x00000014EC170000', '0 0x000000146C970000', 'BACK 0x000000146B960000', 'BACK 0x00000014EB160000', 'ENT 0x00000014ED180000', 'ENT 0x000000146D980000', 'VOL+ 0x000000145E890000', 'VOL+ 0x00000014DE090000', 'VOL- 0x000000145D880000', 'VOL- 0x00000014DD080000', 'MUTE 0x000000145F8A0000', 'MUTE 0x00000014DF0A0000', 'FIREFLY 0x0000001455800000', 'FIREFLY 0x00000014D5000000', 'CH+ 0x00000014608B0000', 'CH+ 0x00000014E00B0000', 'CH- 0x00000014618C0000', 'CH- 0x00000014E10C0000', 'INFO 0x0000001483AE0000', 'INFO 0x00000014032E0000', 'OPTION 0x0000001484AF0000', 'OPTION 0x00000014042F0000', 'UP 0x000000146F9A0000', 'UP 0x00000014EF1A0000', 'LEFT 0x00000014729D0000', 'LEFT 0x00000014F21D0000', 'DOWN 0x0000001477A20000', 'DOWN 0x00000014F7220000', 'RIGHT 0x00000014749F0000', 'RIGHT 0x00000014F41F0000', 'OK 0x00000014739E0000', 'OK 0x00000014F31E0000', 'MENU 0x00000014719C0000', 'MENU 0x00000014F11C0000', 'EXIT 0x0000001475A00000', 'EXIT 0x00000014F5200000', 'REC 0x00000014FC270000', 'REC 0x000000147CA70000', 'PLAY 0x00000014FA250000', 'PLAY 0x000000147AA50000', 'STOP 0x00000014FD280000', 'STOP 0x000000147DA80000', 'REW 0x00000014F9240000', 'REW 0x0000001479A40000', 'FWD 0x00000014FB260000', 'FWD 0x000000147BA60000', 'PREV 0x00000014002B0000', 'PREV 0x0000001480AB0000', 'PAUSE 0x00000014FE290000', 'PAUSE 0x000000147EA90000', 'NEXT 0x00000014FF2A0000', 'NEXT 0x000000147FAA0000', 'MUSIC 0x00000014DB060000', 'MUSIC 0x000000145B860000', 'PHOTOS 0x00000014DA050000', 'PHOTOS 0x000000145A850000', 'DVD 0x00000014D9040000', 'DVD 0x0000001459840000', 'TV 0x00000014D8030000', 'TV 0x0000001458830000', 'VIDEO 0x00000014DC070000', 'VIDEO 0x000000145C870000', 'HELP 0x00000014D6010000', 'HELP 0x0000001456810000', 'MOUSE 0x00000014022D0000', 'MOUSE 0x0000001482AD0000', 'A 0x00000014EE190000', 'A 0x000000146E990000', 'B 0x00000014F01B0000', 'B 0x00000014709B0000', 'C 0x00000014F6210000', 'C 0x0000001476A10000', 'D 0x00000014F8230000', 'D 0x0000001478A30000' ] footer=''' end codes end remote ''' modules_conf=''' #placed here by mv_ir.py blacklist ati_remote install ati_remote /bin/false alias char-major-61 lirc_atiusb options lirc_atiusb unique=1 mask=%s ''' mod_mask=[(1, "0x0001") , (2,"0x0002"), (3,"0x0004"), (4,"0x0008"), (5,"0x0010"), (6,"0x0020"), (7,"0x0040"), (8,"0x0080"), (9,"0x0100"), (10,"0x0200"), (11,"0x0400"), (12,"0x0800"), (13,"0x1000"), (14,"0x2000"), (15,"0x4000"), (16,"0x8000") ] def hex_lookup(code): hcode=str(hex(code)).replace("0x","").upper() #print code, hcode hcode = hcode[-1] return hcode f = open('/tmp/lircd.conf.ff1', 'w') f.write("#Snapstream Firefly Default Channel 1") f.write(header) for i in middle: f.write(" "+ i ) f.write("\n") f.write(footer) loop=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16] for mask in loop: filename="/tmp/lircd.conf.ff%s" %(mask+1) f = open(filename, 'w') f.write("#Snapstream Firefly Channel %s" %(mask+1)) f.write(header) for i in middle: rkey,code=i.split() #print code,rkey #newkey="%s_chan%s" %(rkey,mask) newkey=rkey fourth_code = int(code[-4],16) eight_code = int(code[-8],16) new_forth = fourth_code + mask new_eigth = eight_code + mask new_code=list(code) new_code[-4] = (hex_lookup(new_forth)) new_code[-8] = (hex_lookup(new_eigth)) f.write(" " + newkey +"\t\t" + ''.join(new_code)) f.write("\n") #print fourth_code #print new_forth f.write(footer) f.close() #write out modules.conf for i in mod_mask: filename="/tmp/ir.conf.ff%s" %(i[0]) f = open(filename, 'w') f.write("#Snapstream Firefly Channel %s" %(i[0])) f.write(modules_conf %i[1]) f.close()