2020-05-12 11:15:33 -07:00
|
|
|
|
2020-05-18 06:11:46 -07:00
|
|
|
#include <zmk/endpoints.h>
|
|
|
|
#include <zmk/hid.h>
|
|
|
|
#include <zmk/usb_hid.h>
|
|
|
|
#include <zmk/hog.h>
|
2020-05-15 06:41:06 -07:00
|
|
|
|
|
|
|
int zmk_endpoints_init()
|
|
|
|
{
|
|
|
|
int err;
|
|
|
|
|
|
|
|
err = zmk_usb_hid_init();
|
|
|
|
if (err)
|
|
|
|
{
|
|
|
|
printk("USB HID Init Failed\n");
|
|
|
|
return err;
|
|
|
|
}
|
|
|
|
|
2020-05-18 06:11:46 -07:00
|
|
|
#ifdef CONFIG_ZMK_BLE
|
2020-05-15 06:41:06 -07:00
|
|
|
err = zmk_hog_init();
|
|
|
|
if (err)
|
|
|
|
{
|
|
|
|
printk("HOG Init Failed\n");
|
|
|
|
return err;
|
|
|
|
}
|
|
|
|
|
2020-05-18 06:11:46 -07:00
|
|
|
#endif /* CONFIG_ZMK_BLE */
|
|
|
|
|
2020-05-15 06:41:06 -07:00
|
|
|
return 0;
|
|
|
|
}
|
2020-05-12 11:15:33 -07:00
|
|
|
|
|
|
|
int zmk_endpoints_send_key_event(struct zmk_key_event key_event)
|
|
|
|
{
|
2020-05-15 06:41:06 -07:00
|
|
|
struct zmk_hid_report *report;
|
2020-05-15 08:39:16 -07:00
|
|
|
int err;
|
|
|
|
|
2020-05-12 11:15:33 -07:00
|
|
|
if (key_event.pressed)
|
|
|
|
{
|
2020-05-15 06:41:06 -07:00
|
|
|
zmk_hid_press_key(key_event.key);
|
2020-05-12 11:15:33 -07:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2020-05-15 06:41:06 -07:00
|
|
|
zmk_hid_release_key(key_event.key);
|
|
|
|
}
|
|
|
|
|
|
|
|
report = zmk_hid_get_report();
|
|
|
|
|
|
|
|
// if (zmk_usb_hid_send_report(report) != 0)
|
|
|
|
// {
|
|
|
|
// // LOG_DBG("USB Send Failed");
|
|
|
|
// }
|
|
|
|
|
2020-05-18 06:11:46 -07:00
|
|
|
#ifdef CONFIG_ZMK_BLE
|
2020-05-15 08:39:16 -07:00
|
|
|
err = zmk_hog_send_report(report);
|
|
|
|
if (err)
|
2020-05-15 06:41:06 -07:00
|
|
|
{
|
2020-05-15 08:39:16 -07:00
|
|
|
printk("FAILED TO SEND OVER HOG: %d\n", err);
|
2020-05-15 06:41:06 -07:00
|
|
|
// LOG_DBG("HID Over GATTP Send Failed");
|
2020-05-12 11:15:33 -07:00
|
|
|
}
|
2020-05-18 06:11:46 -07:00
|
|
|
#endif /* CONFIG_ZMK_BLE */
|
2020-05-12 11:15:33 -07:00
|
|
|
|
|
|
|
return 0;
|
2020-05-18 06:11:46 -07:00
|
|
|
}
|