1999d6bc9SAnssi Hannula /* 2999d6bc9SAnssi Hannula * SnapStream Firefly X10 RF remote keytable 3999d6bc9SAnssi Hannula * 4999d6bc9SAnssi Hannula * Copyright (C) 2011 Anssi Hannula <anssi.hannula@?ki.fi> 5999d6bc9SAnssi Hannula * 6999d6bc9SAnssi Hannula * This program is free software; you can redistribute it and/or modify 7999d6bc9SAnssi Hannula * it under the terms of the GNU General Public License as published by 8999d6bc9SAnssi Hannula * the Free Software Foundation; either version 2 of the License, or 9999d6bc9SAnssi Hannula * (at your option) any later version. 10999d6bc9SAnssi Hannula * 11999d6bc9SAnssi Hannula * This program is distributed in the hope that it will be useful, 12999d6bc9SAnssi Hannula * but WITHOUT ANY WARRANTY; without even the implied warranty of 13999d6bc9SAnssi Hannula * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14999d6bc9SAnssi Hannula * GNU General Public License for more details. 15999d6bc9SAnssi Hannula * 16999d6bc9SAnssi Hannula * You should have received a copy of the GNU General Public License along 17999d6bc9SAnssi Hannula * with this program; if not, write to the Free Software Foundation, Inc., 18999d6bc9SAnssi Hannula * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 19999d6bc9SAnssi Hannula */ 20999d6bc9SAnssi Hannula 21547d42eaSMauro Carvalho Chehab #include <linux/module.h> 22999d6bc9SAnssi Hannula #include <media/rc-map.h> 23999d6bc9SAnssi Hannula 24999d6bc9SAnssi Hannula static struct rc_map_table snapstream_firefly[] = { 255eefb4f0SAnssi Hannula { 0x2c, KEY_ZOOM }, /* Maximize */ 265eefb4f0SAnssi Hannula { 0x02, KEY_CLOSE }, 27999d6bc9SAnssi Hannula 285eefb4f0SAnssi Hannula { 0x0d, KEY_1 }, 295eefb4f0SAnssi Hannula { 0x0e, KEY_2 }, 305eefb4f0SAnssi Hannula { 0x0f, KEY_3 }, 315eefb4f0SAnssi Hannula { 0x10, KEY_4 }, 325eefb4f0SAnssi Hannula { 0x11, KEY_5 }, 335eefb4f0SAnssi Hannula { 0x12, KEY_6 }, 345eefb4f0SAnssi Hannula { 0x13, KEY_7 }, 355eefb4f0SAnssi Hannula { 0x14, KEY_8 }, 365eefb4f0SAnssi Hannula { 0x15, KEY_9 }, 375eefb4f0SAnssi Hannula { 0x17, KEY_0 }, 385eefb4f0SAnssi Hannula { 0x16, KEY_BACK }, 395eefb4f0SAnssi Hannula { 0x18, KEY_KPENTER }, /* ent */ 40999d6bc9SAnssi Hannula 415eefb4f0SAnssi Hannula { 0x09, KEY_VOLUMEUP }, 425eefb4f0SAnssi Hannula { 0x08, KEY_VOLUMEDOWN }, 435eefb4f0SAnssi Hannula { 0x0a, KEY_MUTE }, 445eefb4f0SAnssi Hannula { 0x0b, KEY_CHANNELUP }, 455eefb4f0SAnssi Hannula { 0x0c, KEY_CHANNELDOWN }, 465eefb4f0SAnssi Hannula { 0x00, KEY_VENDOR }, /* firefly */ 47999d6bc9SAnssi Hannula 485eefb4f0SAnssi Hannula { 0x2e, KEY_INFO }, 495eefb4f0SAnssi Hannula { 0x2f, KEY_OPTION }, 50999d6bc9SAnssi Hannula 515eefb4f0SAnssi Hannula { 0x1d, KEY_LEFT }, 525eefb4f0SAnssi Hannula { 0x1f, KEY_RIGHT }, 535eefb4f0SAnssi Hannula { 0x22, KEY_DOWN }, 545eefb4f0SAnssi Hannula { 0x1a, KEY_UP }, 555eefb4f0SAnssi Hannula { 0x1e, KEY_OK }, 56999d6bc9SAnssi Hannula 575eefb4f0SAnssi Hannula { 0x1c, KEY_MENU }, 585eefb4f0SAnssi Hannula { 0x20, KEY_EXIT }, 59999d6bc9SAnssi Hannula 605eefb4f0SAnssi Hannula { 0x27, KEY_RECORD }, 615eefb4f0SAnssi Hannula { 0x25, KEY_PLAY }, 625eefb4f0SAnssi Hannula { 0x28, KEY_STOP }, 635eefb4f0SAnssi Hannula { 0x24, KEY_REWIND }, 645eefb4f0SAnssi Hannula { 0x26, KEY_FORWARD }, 655eefb4f0SAnssi Hannula { 0x29, KEY_PAUSE }, 665eefb4f0SAnssi Hannula { 0x2b, KEY_PREVIOUS }, 675eefb4f0SAnssi Hannula { 0x2a, KEY_NEXT }, 68999d6bc9SAnssi Hannula 695eefb4f0SAnssi Hannula { 0x06, KEY_AUDIO }, /* Music */ 705eefb4f0SAnssi Hannula { 0x05, KEY_IMAGES }, /* Photos */ 715eefb4f0SAnssi Hannula { 0x04, KEY_DVD }, 725eefb4f0SAnssi Hannula { 0x03, KEY_TV }, 735eefb4f0SAnssi Hannula { 0x07, KEY_VIDEO }, 74999d6bc9SAnssi Hannula 755eefb4f0SAnssi Hannula { 0x01, KEY_HELP }, 765eefb4f0SAnssi Hannula { 0x2d, KEY_MODE }, /* Mouse */ 77999d6bc9SAnssi Hannula 785eefb4f0SAnssi Hannula { 0x19, KEY_A }, 795eefb4f0SAnssi Hannula { 0x1b, KEY_B }, 805eefb4f0SAnssi Hannula { 0x21, KEY_C }, 815eefb4f0SAnssi Hannula { 0x23, KEY_D }, 82999d6bc9SAnssi Hannula }; 83999d6bc9SAnssi Hannula 84999d6bc9SAnssi Hannula static struct rc_map_list snapstream_firefly_map = { 85999d6bc9SAnssi Hannula .map = { 86999d6bc9SAnssi Hannula .scan = snapstream_firefly, 87999d6bc9SAnssi Hannula .size = ARRAY_SIZE(snapstream_firefly), 88999d6bc9SAnssi Hannula .rc_type = RC_TYPE_OTHER, 89999d6bc9SAnssi Hannula .name = RC_MAP_SNAPSTREAM_FIREFLY, 90999d6bc9SAnssi Hannula } 91999d6bc9SAnssi Hannula }; 92999d6bc9SAnssi Hannula 93999d6bc9SAnssi Hannula static int __init init_rc_map_snapstream_firefly(void) 94999d6bc9SAnssi Hannula { 95999d6bc9SAnssi Hannula return rc_map_register(&snapstream_firefly_map); 96999d6bc9SAnssi Hannula } 97999d6bc9SAnssi Hannula 98999d6bc9SAnssi Hannula static void __exit exit_rc_map_snapstream_firefly(void) 99999d6bc9SAnssi Hannula { 100999d6bc9SAnssi Hannula rc_map_unregister(&snapstream_firefly_map); 101999d6bc9SAnssi Hannula } 102999d6bc9SAnssi Hannula 103999d6bc9SAnssi Hannula module_init(init_rc_map_snapstream_firefly) 104999d6bc9SAnssi Hannula module_exit(exit_rc_map_snapstream_firefly) 105999d6bc9SAnssi Hannula 106999d6bc9SAnssi Hannula MODULE_LICENSE("GPL"); 107999d6bc9SAnssi Hannula MODULE_AUTHOR("Anssi Hannula <anssi.hannula@iki.fi>"); 108