XBMC + GPIO
-
Хочу сделать аппаратные кнопки но не пойму как их прикрутить к xbmc, порыскал в интернете на русском статей не нашёл. Есть ли какое нибудь API?
-
в ходе поиска нащёл веб API Your text to link... , но в процессе поиска догадался похоже что гораздо проще эмулировать нажатия клавиш клавиотуры.
-
Всё верно, нужно эмулировать нажатия клавиш.
Нужно внести изменения в файл bcm2708.c и потом пересобрать ядро.
#if defined(CONFIG_KEYBOARD_GPIO_POLLED)|| defined(CONFIG_KEYBOARD_GPIO_MODULE)
#include
#include
#define BCM2708_KEYS_DEBOUNCE 5static struct gpio_keys_button bcm2708_gpio_keys_table[] = {
{ .type = EV_KEY, .code = Код клвавиши (например KEY_ENTER), .gpio = #пина, на котором висит кнопка, .active_low = 1, .desc = "gpio-keys: enter", .debounce_interval = BCM2708_KEYS_DEBOUNCE, }
};
static struct gpio_keys_platform_data bcm2708_gpio_keys_data = {
.buttons = bcm2708_gpio_keys_table,
.nbuttons = ARRAY_SIZE(bcm2708_gpio_keys_table),
.poll_interval = 20
};static struct platform_device bcm2708_device_gpio_keys = {
.name = "gpio-keys-polled",
.dev = {
.platform_data = &bcm2708_gpio_keys_data,
},
};static void __init bcm2708_init_gpio_keys(void)
{
platform_device_register(&bcm2708_device_gpio_keys);
}
#else
static inline void bcm2708_init_gpio_keys(void)
{
}
#endif -
Можно весь файл bcm2708.c а то я не понял куда что вставлять и где изменять, и наверно вы имели ввиду скомпилировать bcm2708.c а не пересобирать ядро linux?
-
Он лежит в папке исходников ядра - linux/arch/arm/mach-bcm2708/bcm2708.c
Перекомпилировать нужно всё ядро, не забыв в конфиге выбрать KEYBOARD_GPIO_POLLED и KEYBOARD_GPIO_MODULE