Beispiel #1
0
void button_bad_polling(void)
{
	int btn_pressed = 0;
	int report_key = 0;

	while(bad_polling == 1)
	{
		msleep(50);
		button_value = AOTOMfp_Get_Key_Value();
		if (button_value != INVALID_KEY) {
			dprintk(5, "got button: %X\n", button_value);
			if (mode_digit == DIGIT8 ) VFD_Show_Ico(DOT2,LOG_ON);
			else YWPANEL_VFD_SetLed(1, LOG_ON);
			if (1 == btn_pressed)
			{
				if (report_key != button_value)
				{
					input_report_key(button_dev, report_key, 0);
					input_sync(button_dev);
				}
				else
				{
				    continue;
				}
			}
			report_key = button_value;
			btn_pressed = 1;
			switch(button_value) {
				case KEY_LEFT:
				case KEY_RIGHT:
				case KEY_UP:
				case KEY_DOWN:
				case KEY_OK:
				case KEY_MENU:
				//case KEY_EXIT:
				case KEY_POWER:
					input_report_key(button_dev, button_value, 1);
					input_sync(button_dev);
					break;
				default:
					dprintk(5, "[BTN] unknown button_value?\n");
			}
		}
		else {
			if(btn_pressed) {
				btn_pressed = 0;
				msleep(80);
				if (mode_digit == DIGIT8 ) VFD_Show_Ico(DOT2,LOG_OFF);
				else YWPANEL_VFD_SetLed(1, LOG_OFF);
				input_report_key(button_dev, report_key, 0);
				input_sync(button_dev);
			}
		}
	}
	up(&button_sem);

}
Beispiel #2
0
static void button_bad_polling(struct work_struct *work)
{
	int btn_pressed = 0;

	int report_key = 0;

	while(bad_polling == 1)
	{
		int button_value;
		msleep(50);
		button_value = AOTOMfp_Get_Key_Value();
		if (button_value != INVALID_KEY) {
			dprintk(5, "got button: %X\n", button_value);
			flashLED(LED_GREEN, 100);
			//VFD_Show_Ico(DOT2,LOG_ON);
			//YWPANEL_VFD_SetLed(1, LOG_ON);
			if (1 == btn_pressed) {
				if (report_key == button_value)
					continue;
				input_report_key(button_dev, report_key, 0);
				input_sync(button_dev);
			}
			report_key = button_value;
			btn_pressed = 1;
			switch(button_value) {
				case KEY_LEFT:
				case KEY_RIGHT:
				case KEY_UP:
				case KEY_DOWN:
				case KEY_OK:
				case KEY_MENU:
				case KEY_EXIT:
				case KEY_POWER:
					input_report_key(button_dev, button_value, 1);
					input_sync(button_dev);
					break;
				default:
					dprintk(5, "[BTN] unknown button_value %d\n", button_value);
			}
		}
		else {
			if(btn_pressed) {
				btn_pressed = 0;
				//msleep(80);
				//VFD_Show_Ico(DOT2,LOG_OFF);
				//YWPANEL_VFD_SetLed(1, LOG_OFF);
				input_report_key(button_dev, report_key, 0);
				input_sync(button_dev);
			}
		}
	}
	bad_polling = 2;
}