diff options
Diffstat (limited to 'include/media')
-rw-r--r-- | include/media/ir-common.h | 141 | ||||
-rw-r--r-- | include/media/ir-kbd-i2c.h | 5 |
2 files changed, 75 insertions, 71 deletions
diff --git a/include/media/ir-common.h b/include/media/ir-common.h index 74a7e55734f0..29f0e53cff94 100644 --- a/include/media/ir-common.h +++ b/include/media/ir-common.h | |||
@@ -31,8 +31,18 @@ | |||
31 | #define IR_TYPE_PD 2 /* Pulse distance encoded IR */ | 31 | #define IR_TYPE_PD 2 /* Pulse distance encoded IR */ |
32 | #define IR_TYPE_OTHER 99 | 32 | #define IR_TYPE_OTHER 99 |
33 | 33 | ||
34 | #define IR_KEYTAB_TYPE u32 | 34 | #define IR_KEYTAB_TYPE u32 |
35 | #define IR_KEYTAB_SIZE 128 // enougth for rc5, probably need more some day ... | 35 | #define IR_KEYTAB_SIZE 128 /* enougth for rc5, probably need more some day */ |
36 | |||
37 | struct ir_scancode { | ||
38 | u16 scancode; | ||
39 | u32 keycode; | ||
40 | }; | ||
41 | |||
42 | struct ir_scancode_table { | ||
43 | struct ir_scancode *scan; | ||
44 | int size; | ||
45 | }; | ||
36 | 46 | ||
37 | #define IR_KEYCODE(tab,code) (((unsigned)code < IR_KEYTAB_SIZE) \ | 47 | #define IR_KEYCODE(tab,code) (((unsigned)code < IR_KEYTAB_SIZE) \ |
38 | ? tab[code] : KEY_RESERVED) | 48 | ? tab[code] : KEY_RESERVED) |
@@ -93,7 +103,7 @@ struct card_ir { | |||
93 | }; | 103 | }; |
94 | 104 | ||
95 | void ir_input_init(struct input_dev *dev, struct ir_input_state *ir, | 105 | void ir_input_init(struct input_dev *dev, struct ir_input_state *ir, |
96 | int ir_type, IR_KEYTAB_TYPE *ir_codes); | 106 | int ir_type, struct ir_scancode_table *ir_codes); |
97 | void ir_input_nokey(struct input_dev *dev, struct ir_input_state *ir); | 107 | void ir_input_nokey(struct input_dev *dev, struct ir_input_state *ir); |
98 | void ir_input_keydown(struct input_dev *dev, struct ir_input_state *ir, | 108 | void ir_input_keydown(struct input_dev *dev, struct ir_input_state *ir, |
99 | u32 ir_key, u32 ir_raw); | 109 | u32 ir_key, u32 ir_raw); |
@@ -107,70 +117,63 @@ void ir_rc5_timer_keyup(unsigned long data); | |||
107 | 117 | ||
108 | /* Keymaps to be used by other modules */ | 118 | /* Keymaps to be used by other modules */ |
109 | 119 | ||
110 | extern IR_KEYTAB_TYPE ir_codes_empty[IR_KEYTAB_SIZE]; | 120 | extern struct ir_scancode_table ir_codes_empty_table; |
111 | extern IR_KEYTAB_TYPE ir_codes_avermedia[IR_KEYTAB_SIZE]; | 121 | extern struct ir_scancode_table ir_codes_avermedia_table; |
112 | extern IR_KEYTAB_TYPE ir_codes_avermedia_dvbt[IR_KEYTAB_SIZE]; | 122 | extern struct ir_scancode_table ir_codes_avermedia_dvbt_table; |
113 | extern IR_KEYTAB_TYPE ir_codes_avermedia_m135a[IR_KEYTAB_SIZE]; | 123 | extern struct ir_scancode_table ir_codes_avermedia_m135a_table; |
114 | extern IR_KEYTAB_TYPE ir_codes_avermedia_cardbus[IR_KEYTAB_SIZE]; | 124 | extern struct ir_scancode_table ir_codes_avermedia_cardbus_table; |
115 | extern IR_KEYTAB_TYPE ir_codes_apac_viewcomp[IR_KEYTAB_SIZE]; | 125 | extern struct ir_scancode_table ir_codes_apac_viewcomp_table; |
116 | extern IR_KEYTAB_TYPE ir_codes_pixelview[IR_KEYTAB_SIZE]; | 126 | extern struct ir_scancode_table ir_codes_pixelview_table; |
117 | extern IR_KEYTAB_TYPE ir_codes_pixelview_new[IR_KEYTAB_SIZE]; | 127 | extern struct ir_scancode_table ir_codes_pixelview_new_table; |
118 | extern IR_KEYTAB_TYPE ir_codes_nebula[IR_KEYTAB_SIZE]; | 128 | extern struct ir_scancode_table ir_codes_nebula_table; |
119 | extern IR_KEYTAB_TYPE ir_codes_dntv_live_dvb_t[IR_KEYTAB_SIZE]; | 129 | extern struct ir_scancode_table ir_codes_dntv_live_dvb_t_table; |
120 | extern IR_KEYTAB_TYPE ir_codes_iodata_bctv7e[IR_KEYTAB_SIZE]; | 130 | extern struct ir_scancode_table ir_codes_iodata_bctv7e_table; |
121 | extern IR_KEYTAB_TYPE ir_codes_adstech_dvb_t_pci[IR_KEYTAB_SIZE]; | 131 | extern struct ir_scancode_table ir_codes_adstech_dvb_t_pci_table; |
122 | extern IR_KEYTAB_TYPE ir_codes_msi_tvanywhere[IR_KEYTAB_SIZE]; | 132 | extern struct ir_scancode_table ir_codes_msi_tvanywhere_table; |
123 | extern IR_KEYTAB_TYPE ir_codes_cinergy_1400[IR_KEYTAB_SIZE]; | 133 | extern struct ir_scancode_table ir_codes_cinergy_1400_table; |
124 | extern IR_KEYTAB_TYPE ir_codes_avertv_303[IR_KEYTAB_SIZE]; | 134 | extern struct ir_scancode_table ir_codes_avertv_303_table; |
125 | extern IR_KEYTAB_TYPE ir_codes_dntv_live_dvbt_pro[IR_KEYTAB_SIZE]; | 135 | extern struct ir_scancode_table ir_codes_dntv_live_dvbt_pro_table; |
126 | extern IR_KEYTAB_TYPE ir_codes_em_terratec[IR_KEYTAB_SIZE]; | 136 | extern struct ir_scancode_table ir_codes_em_terratec_table; |
127 | extern IR_KEYTAB_TYPE ir_codes_pinnacle_grey[IR_KEYTAB_SIZE]; | 137 | extern struct ir_scancode_table ir_codes_pinnacle_grey_table; |
128 | extern IR_KEYTAB_TYPE ir_codes_flyvideo[IR_KEYTAB_SIZE]; | 138 | extern struct ir_scancode_table ir_codes_flyvideo_table; |
129 | extern IR_KEYTAB_TYPE ir_codes_flydvb[IR_KEYTAB_SIZE]; | 139 | extern struct ir_scancode_table ir_codes_flydvb_table; |
130 | extern IR_KEYTAB_TYPE ir_codes_cinergy[IR_KEYTAB_SIZE]; | 140 | extern struct ir_scancode_table ir_codes_cinergy_table; |
131 | extern IR_KEYTAB_TYPE ir_codes_eztv[IR_KEYTAB_SIZE]; | 141 | extern struct ir_scancode_table ir_codes_eztv_table; |
132 | extern IR_KEYTAB_TYPE ir_codes_avermedia[IR_KEYTAB_SIZE]; | 142 | extern struct ir_scancode_table ir_codes_avermedia_table; |
133 | extern IR_KEYTAB_TYPE ir_codes_videomate_tv_pvr[IR_KEYTAB_SIZE]; | 143 | extern struct ir_scancode_table ir_codes_videomate_tv_pvr_table; |
134 | extern IR_KEYTAB_TYPE ir_codes_manli[IR_KEYTAB_SIZE]; | 144 | extern struct ir_scancode_table ir_codes_manli_table; |
135 | extern IR_KEYTAB_TYPE ir_codes_gotview7135[IR_KEYTAB_SIZE]; | 145 | extern struct ir_scancode_table ir_codes_gotview7135_table; |
136 | extern IR_KEYTAB_TYPE ir_codes_purpletv[IR_KEYTAB_SIZE]; | 146 | extern struct ir_scancode_table ir_codes_purpletv_table; |
137 | extern IR_KEYTAB_TYPE ir_codes_pctv_sedna[IR_KEYTAB_SIZE]; | 147 | extern struct ir_scancode_table ir_codes_pctv_sedna_table; |
138 | extern IR_KEYTAB_TYPE ir_codes_pv951[IR_KEYTAB_SIZE]; | 148 | extern struct ir_scancode_table ir_codes_pv951_table; |
139 | extern IR_KEYTAB_TYPE ir_codes_rc5_tv[IR_KEYTAB_SIZE]; | 149 | extern struct ir_scancode_table ir_codes_rc5_tv_table; |
140 | extern IR_KEYTAB_TYPE ir_codes_winfast[IR_KEYTAB_SIZE]; | 150 | extern struct ir_scancode_table ir_codes_winfast_table; |
141 | extern IR_KEYTAB_TYPE ir_codes_pinnacle_color[IR_KEYTAB_SIZE]; | 151 | extern struct ir_scancode_table ir_codes_pinnacle_color_table; |
142 | extern IR_KEYTAB_TYPE ir_codes_hauppauge_new[IR_KEYTAB_SIZE]; | 152 | extern struct ir_scancode_table ir_codes_hauppauge_new_table; |
143 | extern IR_KEYTAB_TYPE ir_codes_npgtech[IR_KEYTAB_SIZE]; | 153 | extern struct ir_scancode_table ir_codes_npgtech_table; |
144 | extern IR_KEYTAB_TYPE ir_codes_norwood[IR_KEYTAB_SIZE]; | 154 | extern struct ir_scancode_table ir_codes_norwood_table; |
145 | extern IR_KEYTAB_TYPE ir_codes_proteus_2309[IR_KEYTAB_SIZE]; | 155 | extern struct ir_scancode_table ir_codes_proteus_2309_table; |
146 | extern IR_KEYTAB_TYPE ir_codes_budget_ci_old[IR_KEYTAB_SIZE]; | 156 | extern struct ir_scancode_table ir_codes_budget_ci_old_table; |
147 | extern IR_KEYTAB_TYPE ir_codes_asus_pc39[IR_KEYTAB_SIZE]; | 157 | extern struct ir_scancode_table ir_codes_asus_pc39_table; |
148 | extern IR_KEYTAB_TYPE ir_codes_encore_enltv[IR_KEYTAB_SIZE]; | 158 | extern struct ir_scancode_table ir_codes_encore_enltv_table; |
149 | extern IR_KEYTAB_TYPE ir_codes_encore_enltv2[IR_KEYTAB_SIZE]; | 159 | extern struct ir_scancode_table ir_codes_encore_enltv2_table; |
150 | extern IR_KEYTAB_TYPE ir_codes_tt_1500[IR_KEYTAB_SIZE]; | 160 | extern struct ir_scancode_table ir_codes_tt_1500_table; |
151 | extern IR_KEYTAB_TYPE ir_codes_fusionhdtv_mce[IR_KEYTAB_SIZE]; | 161 | extern struct ir_scancode_table ir_codes_fusionhdtv_mce_table; |
152 | extern IR_KEYTAB_TYPE ir_codes_behold[IR_KEYTAB_SIZE]; | 162 | extern struct ir_scancode_table ir_codes_behold_table; |
153 | extern IR_KEYTAB_TYPE ir_codes_behold_columbus[IR_KEYTAB_SIZE]; | 163 | extern struct ir_scancode_table ir_codes_behold_columbus_table; |
154 | extern IR_KEYTAB_TYPE ir_codes_pinnacle_pctv_hd[IR_KEYTAB_SIZE]; | 164 | extern struct ir_scancode_table ir_codes_pinnacle_pctv_hd_table; |
155 | extern IR_KEYTAB_TYPE ir_codes_genius_tvgo_a11mce[IR_KEYTAB_SIZE]; | 165 | extern struct ir_scancode_table ir_codes_genius_tvgo_a11mce_table; |
156 | extern IR_KEYTAB_TYPE ir_codes_powercolor_real_angel[IR_KEYTAB_SIZE]; | 166 | extern struct ir_scancode_table ir_codes_powercolor_real_angel_table; |
157 | extern IR_KEYTAB_TYPE ir_codes_avermedia_a16d[IR_KEYTAB_SIZE]; | 167 | extern struct ir_scancode_table ir_codes_avermedia_a16d_table; |
158 | extern IR_KEYTAB_TYPE ir_codes_encore_enltv_fm53[IR_KEYTAB_SIZE]; | 168 | extern struct ir_scancode_table ir_codes_encore_enltv_fm53_table; |
159 | extern IR_KEYTAB_TYPE ir_codes_real_audio_220_32_keys[IR_KEYTAB_SIZE]; | 169 | extern struct ir_scancode_table ir_codes_real_audio_220_32_keys_table; |
160 | extern IR_KEYTAB_TYPE ir_codes_msi_tvanywhere_plus[IR_KEYTAB_SIZE]; | 170 | extern struct ir_scancode_table ir_codes_msi_tvanywhere_plus_table; |
161 | extern IR_KEYTAB_TYPE ir_codes_ati_tv_wonder_hd_600[IR_KEYTAB_SIZE]; | 171 | extern struct ir_scancode_table ir_codes_ati_tv_wonder_hd_600_table; |
162 | extern IR_KEYTAB_TYPE ir_codes_kworld_plus_tv_analog[IR_KEYTAB_SIZE]; | 172 | extern struct ir_scancode_table ir_codes_kworld_plus_tv_analog_table; |
163 | extern IR_KEYTAB_TYPE ir_codes_kaiomy[IR_KEYTAB_SIZE]; | 173 | extern struct ir_scancode_table ir_codes_kaiomy_table; |
164 | extern IR_KEYTAB_TYPE ir_codes_dm1105_nec[IR_KEYTAB_SIZE]; | 174 | extern struct ir_scancode_table ir_codes_dm1105_nec_table; |
165 | extern IR_KEYTAB_TYPE ir_codes_evga_indtube[IR_KEYTAB_SIZE]; | 175 | extern struct ir_scancode_table ir_codes_evga_indtube_table; |
166 | extern IR_KEYTAB_TYPE ir_codes_terratec_cinergy_xs[IR_KEYTAB_SIZE]; | 176 | extern struct ir_scancode_table ir_codes_terratec_cinergy_xs_table; |
167 | extern IR_KEYTAB_TYPE ir_codes_videomate_s350[IR_KEYTAB_SIZE]; | 177 | extern struct ir_scancode_table ir_codes_videomate_s350_table; |
168 | extern IR_KEYTAB_TYPE ir_codes_gadmei_rm008z[IR_KEYTAB_SIZE]; | 178 | extern struct ir_scancode_table ir_codes_gadmei_rm008z_table; |
169 | |||
170 | #endif | 179 | #endif |
171 | |||
172 | /* | ||
173 | * Local variables: | ||
174 | * c-basic-offset: 8 | ||
175 | * End: | ||
176 | */ | ||
diff --git a/include/media/ir-kbd-i2c.h b/include/media/ir-kbd-i2c.h index defef3b18dfd..aaf65e8b1a40 100644 --- a/include/media/ir-kbd-i2c.h +++ b/include/media/ir-kbd-i2c.h | |||
@@ -6,7 +6,8 @@ | |||
6 | struct IR_i2c; | 6 | struct IR_i2c; |
7 | 7 | ||
8 | struct IR_i2c { | 8 | struct IR_i2c { |
9 | IR_KEYTAB_TYPE *ir_codes; | 9 | struct ir_scancode_table *ir_codes; |
10 | |||
10 | struct i2c_client *c; | 11 | struct i2c_client *c; |
11 | struct input_dev *input; | 12 | struct input_dev *input; |
12 | struct ir_input_state ir; | 13 | struct ir_input_state ir; |
@@ -33,7 +34,7 @@ enum ir_kbd_get_key_fn { | |||
33 | 34 | ||
34 | /* Can be passed when instantiating an ir_video i2c device */ | 35 | /* Can be passed when instantiating an ir_video i2c device */ |
35 | struct IR_i2c_init_data { | 36 | struct IR_i2c_init_data { |
36 | IR_KEYTAB_TYPE *ir_codes; | 37 | struct ir_scancode_table *ir_codes; |
37 | const char *name; | 38 | const char *name; |
38 | int type; /* IR_TYPE_RC5, IR_TYPE_PD, etc */ | 39 | int type; /* IR_TYPE_RC5, IR_TYPE_PD, etc */ |
39 | /* | 40 | /* |