- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
switch(event->touch_point) {
case 5:
input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->pressure);
input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->x5);
input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->y5);
input_report_abs(data->input_dev, ABS_MT_WIDTH_MAJOR, 1);
input_mt_sync(data->input_dev);
// printk("===x2 = %d,y2 = %d ====\n",event->x2,event->y2);
case 4:
input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->pressure);
input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->x4);
input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->y4);
input_report_abs(data->input_dev, ABS_MT_WIDTH_MAJOR, 1);
input_mt_sync(data->input_dev);
// printk("===x2 = %d,y2 = %d ====\n",event->x2,event->y2);
case 3:
input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->pressure);
input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->x3);
input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->y3);
input_report_abs(data->input_dev, ABS_MT_WIDTH_MAJOR, 1);
input_mt_sync(data->input_dev);
// printk("===x2 = %d,y2 = %d ====\n",event->x2,event->y2);
case 2:
input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->pressure);
input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->x2);
input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->y2);
input_report_abs(data->input_dev, ABS_MT_WIDTH_MAJOR, 1);
input_mt_sync(data->input_dev);
// printk("===x2 = %d,y2 = %d ====\n",event->x2,event->y2);
case 1:
input_report_abs(data->input_dev, ABS_MT_TOUCH_MAJOR, event->pressure);
input_report_abs(data->input_dev, ABS_MT_POSITION_X, event->x1);
input_report_abs(data->input_dev, ABS_MT_POSITION_Y, event->y1);
input_report_abs(data->input_dev, ABS_MT_WIDTH_MAJOR, 1);
input_mt_sync(data->input_dev);
printk("===x1 = %d,y1 = %d ====\n",event->x1,event->y1);
default:
// printk("==touch_point default =\n");
break;
}
Qwertiy 28.06.2014 21:27 # 0
guest 28.06.2014 21:47 # 0
bormand 28.06.2014 22:06 # +4
Ядрёный логгер в линухе.
> что же оно делает
Упихивает координаты касаний в какой-то массив ивентов, вестимо. Т.е. если 5 точек касания - то упихает туда 5 наборов координат, если 4 - то 4. Поэтому бряков нет. Ну это так, предположение.
Xom94ok 28.06.2014 22:07 # +2
printk аналогичен printf, только пишет в системный лог, а не на stdout log level проебали...
> что же оно делает?
делает вид, что умеет мультитач в пять точек
алсо, копипаст детектед
bormand 28.06.2014 22:10 # +1
Судя по ABS_MT_WIDTH_MAJOR = 1 именно что делает вид. Хуй руку от пальца не отличит ;(
Хотя тачскрину это не особо и надо, в отличие от тачпада...
Pythoner 28.06.2014 22:33 # 0
bormand 28.06.2014 22:43 # +1
Да поди сам контроллер ёмкостного тача больше джвух точек не распознает и не отправляет. А драйвер, возможно, рассчитан на всю линейку - и где 5 распознаются, и где всего 2. Поэтому и switch на 5 точек.
Pythoner 28.06.2014 22:54 # 0
Xom94ok 28.06.2014 22:50 # 0
Судя по строкам 8, 15, 22 и 29, я бы в первую очередь грешил на драйвер :)
Гуглеж дал ссылку, тут выглядит чуть поаккуратней:
http://preview.tinyurl.com/ft5x0x-drv
brutushafens 28.06.2014 23:41 # −3
bormand 29.06.2014 00:01 # +2
Боже упаси... Давным-давно уже не пишут ;) На асме нынче пишут только небольшие кусочки, которые компилятор либо не сможет сгенерить вообще, либо они получатся слишком медленными.
brutushafens 29.06.2014 00:02 # −3
bormand 29.06.2014 00:09 # +5
А ты уверен, что ты сможешь писать на асме лучше нынешних компиляторов сишечки?
brutushafens 29.06.2014 00:14 # −2
bormand 29.06.2014 00:15 # 0
brutushafens 29.06.2014 00:16 # 0
kegdan 29.06.2014 00:45 # −1
myaut 29.06.2014 10:06 # +1
myaut 29.06.2014 10:06 # +3
chtulhu 29.06.2014 11:05 # +2
kegdan 29.06.2014 12:35 # +2
2. да
остался один вопрос
chtulhu 29.06.2014 05:28 # +3
brutushafens 29.06.2014 14:58 # −2
Webius 30.06.2014 18:00 # 0
kegdan 30.06.2014 18:08 # 0
байткод может быть гораздо более высокоуровневым, чем асм.
TarasB 30.06.2014 18:16 # −1
bormand 30.06.2014 19:13 # 0
TarasB 30.06.2014 19:34 # +2