// SPDX-License-Identifier: GPL-2.0-or-later /* * HID driver for zydacron remote control * * Copyright (c) 2010 Don Prince <dhprince.devel@yahoo.co.uk>
*/
switch (usage->hid & HID_USAGE) { /* report 2 */ case 0x10:
zc_map_key_clear(KEY_MODE); break; case 0x30:
zc_map_key_clear(KEY_SCREEN); break; case 0x70:
zc_map_key_clear(KEY_INFO); break; /* report 3 */ case 0x04:
zc_map_key_clear(KEY_RADIO); break; /* report 4 */ case 0x0d:
zc_map_key_clear(KEY_PVR); break; case 0x25:
zc_map_key_clear(KEY_TV); break; case 0x47:
zc_map_key_clear(KEY_AUDIO); break; case 0x49:
zc_map_key_clear(KEY_AUX); break; case 0x4a:
zc_map_key_clear(KEY_VIDEO); break; case 0x48:
zc_map_key_clear(KEY_DVD); break; case 0x24:
zc_map_key_clear(KEY_MENU); break; case 0x32:
zc_map_key_clear(KEY_TEXT); break; default: return 0;
}
for (i = 0; i < 4; i++)
zc->last_key[i] = 0;
return 1;
}
staticint zc_raw_event(struct hid_device *hdev, struct hid_report *report,
u8 *data, int size)
{ struct zc_device *zc = hid_get_drvdata(hdev); int ret = 0; unsigned key; unsignedshort index;
if (report->id == data[0]) {
/* break keys */ for (index = 0; index < 4; index++) {
key = zc->last_key[index]; if (key) {
input_event(zc->input_ep81, EV_KEY, key, 0);
zc->last_key[index] = 0;
}
}
key = 0; switch (report->id) { case 0x02: case 0x03: switch (data[1]) { case 0x10:
key = KEY_MODE;
index = 0; break; case 0x30:
key = KEY_SCREEN;
index = 1; break; case 0x70:
key = KEY_INFO;
index = 2; break; case 0x04:
key = KEY_RADIO;
index = 3; break;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.