86 строки
2.1 KiB
C
86 строки
2.1 KiB
C
/*
|
|
* (c) 2010, SWD Embedded Systems Limited, http://www.kpda.ru
|
|
*/
|
|
|
|
/*
|
|
* Предостережение:
|
|
*
|
|
* Предоставленный исходный код драйвера devi-hid рекомендуется использовать
|
|
* только для отладочных целей при разработке HID-драйверов. Для всех остальных
|
|
* задач следует использовать штатный системный драйвер devi-hid.
|
|
*
|
|
* В общем случае не существует задач, которые требуется решать в этом драйвере
|
|
* при поддержке нового оборудования (для этого должен быть написан/модифицирован
|
|
* отдельный драйвер ввода или HID-драйвер).
|
|
*/
|
|
|
|
/*
|
|
* main.c
|
|
*
|
|
* Main resourse manager module.
|
|
*
|
|
*/
|
|
|
|
|
|
#include <sys/devi.h>
|
|
#include "hid.h"
|
|
|
|
extern input_module_t mouse;
|
|
extern input_module_t kbd;
|
|
extern input_module_t touch;
|
|
extern input_module_t joystick;
|
|
extern input_module_t control;
|
|
|
|
static int post_init();
|
|
static int post_shutdown();
|
|
|
|
|
|
input_module_t *modules[] = {
|
|
&kbd,
|
|
&mouse,
|
|
&touch,
|
|
&joystick,
|
|
&control,
|
|
NULL
|
|
};
|
|
|
|
common_callbacks_t callbacks = {
|
|
4,
|
|
NULL, // Pre-init
|
|
post_init, // Post-init
|
|
NULL, // Pre-shutdown
|
|
post_shutdown // Post-shutdown
|
|
};
|
|
|
|
|
|
int
|
|
main(int argc, char *argv[])
|
|
{
|
|
devi_init(&callbacks); // Set driver callback function
|
|
|
|
devi_hid_init(); // Initialize USB interface
|
|
|
|
pServ_name = NULL; // Optional HID server name ( may be reassign in command line)
|
|
|
|
return begin(argc, argv);
|
|
}
|
|
|
|
|
|
int post_init()
|
|
{
|
|
// We cannot connect to USB stack until initialization is finished
|
|
// because as soon as connection established, input data may come to
|
|
// input channel, and processing bus must be ready to this event.
|
|
devi_hid_server_connect(pServ_name); // Connect to USB server
|
|
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
int post_shutdown()
|
|
{
|
|
devi_hid_server_disconnect();
|
|
return 0;
|
|
}
|