Exemple #1
0
int		input_interface(t_interface *in, char *dst)
{
  static char	buf[4096] = {0};
  static int	index = 0;
  int		key;

  key = wgetch(WIN(w_root));
  if ( ' ' <= key && key <= '~' && index < 4096)
    return (key_insert(buf, key, &index, in));
  else if ((key == 263 || key == 127) && index > 0)
    return (key_delete(buf, &index, in));
  else if (key == '\n' && index > 0)
    return (key_send(buf, dst, &index, in));
  else if (key == KEY_LEFT)
  {
    memcpy(dst, "/window left\0", 13);
    return (1);
  }
  else if (key == KEY_RIGHT)
  {
    memcpy(dst, "/window right\0", 14);
    return (1);
  }
  return (0);
}
Exemple #2
0
void keys()
{
	char oldkey, newkey;
	int stat = 0;
	__u16 keycode;
	sem_t * sem_id;
	int ret = 0;
	struct timeval oldtv, newtv;
	struct timezone tz;
	int temp;

	sem_id = sem_open(UX400_SEM_CPLD, O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH, 1);
	if(sem_id == SEM_FAILED) {
		perror("UX400 KEY sem_open");
		exit(1);
	}

	fancontrol(0x33);
	
	gettimeofday(&oldtv, &tz);
	
	for(;;){
		if(sem_wait(sem_id) < 0) {
			perror("UX400 KEY sem_wait");
			exit(1);
		}

		ret = powerkey();

		if(sem_post(sem_id) < 0) {
			perror("UX400 KEY sem_post");
		}
		
		if( ret == 1){
			key_send(KEY_POWER, 1 );
			usleep(50000);
			key_send(KEY_POWER, 0 );

			sleep(1);

			key_send(KEY_POWER, 1 );
			usleep(50000);
			key_send(KEY_POWER, 0 );

			sleep(1);

			key_send(KEY_POWER, 1 );
			usleep(50000);
			key_send(KEY_POWER, 0 );
		}

		if(sem_wait(sem_id) < 0) {
			perror("UX400 KEY sem_wait");
			exit(1);
		}
		
		newkey = keyscan();

		if(sem_post(sem_id) < 0) {
			perror("UX400 KEY sem_post");
		}

//		if(newkey != 0x1F)  printf("key read: 0x%x\n", newkey);
		
		gettimeofday(&newtv, &tz);
				
//		printf("sec: %d, usec: %d\n", newtv.tv_sec, newtv.tv_usec);
		
		if((oldkey == newkey)&&(newkey != 0x1F)){
			if(newtv.tv_sec == oldtv.tv_sec){
				temp = newtv.tv_usec - oldtv.tv_sec;
			}else{
				temp = newtv.tv_usec + 1000000 - oldtv.tv_sec;
			}
			
			oldtv = newtv;
//			printf("temp = %d\n", temp);

			if( temp < KEY_INTERVAL)
				continue;
		}
		
		oldtv = newtv;
		oldkey = newkey;
		
		switch(newkey){
			case 0x1F:
			case 0x00:

			break;

			case VEEX_KEY_BACKLIGHT:
				key_send(KEY_F5, 1 );
				usleep(50000);
				key_send(KEY_F5, 0 );
			break;
			case VEEX_KEY_SUMARY:
//				printf("SUMARY!\n");
				key_send(KEY_F6, 1 );
				usleep(50000);
				key_send(KEY_F6, 0 );
			break;
			case VEEX_KEY_HELP:
				key_send(KEY_F3, 1 );
				usleep(50000);
				key_send(KEY_F3, 0 );
			
			break;
			case VEEX_KEY_FILE:
				key_send(KEY_F1, 1 );
				usleep(50000);
				key_send(KEY_F1, 0 );
			break;
			case VEEX_KEY_HISTORY:
				key_send(KEY_F4, 1 );
				usleep(50000);
				key_send(KEY_F4, 0 );
			
			break;
			default:

			break;
		}
		usleep(50000);
	}
}
Exemple #3
0
void keys()
{
	char temp;
	int stat = 0;
	__u16 keycode;
	sem_t * sem_id;

	fancontrol(0x33);

	sem_id = sem_open(UX400_SEM_CPLD, O_CREAT, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH, 1);
	if(sem_id == SEM_FAILED) {
		perror("UX400 KEY sem_open");
		exit(1);
	}
	
	system("/usr/bin/ux400-vga");

	for(;;){
		if(sem_wait(sem_id) < 0) {
			perror("UX400 KEY sem_wait");
			exit(1);
		}

		if(powerkey() == 1){
			key_send(KEY_POWER, 1 );
			key_send(KEY_POWER, 0 );

			key_send(KEY_POWER, 1 );
			key_send(KEY_POWER, 0 );
		}
		temp = keyscan();

		if(sem_post(sem_id) < 0) {
			perror("UX400 KEY sem_post");
		}

		switch(temp){
			case 0x1F:
			case 0x00:
				if(stat == 1){
					key_send(keycode, 0);
				}
				stat = 0;
			break;
			case VEEX_KEY_BACKLIGHT:
				if(stat != 1) key_send(KEY_F5, 1);
				stat = 1;
				keycode = KEY_F5;
			break;
			case VEEX_KEY_SUMARY:
				if(stat != 1) key_send(KEY_F6, 1 );
				stat = 1;
				keycode = KEY_F6;
			break;
			case VEEX_KEY_HELP:
				if(stat != 1) key_send(KEY_F3, 1);
				stat = 1;
				keycode = KEY_F3;
			break;
			case VEEX_KEY_FILE:
				if(stat != 1) key_send(KEY_F1, 1);
				stat = 1;
				keycode = KEY_F1;
			break;
			case VEEX_KEY_HISTORY:
				if(stat != 1) key_send(KEY_F4, 1);
				stat = 1;
				keycode = KEY_F4;
			break;
			default:
				if(stat == 1){
					key_send(keycode, 0);
				}
				stat = 0;
			break;
		}
		usleep(100000);
	}
}