Beispiel #1
0
void app_gl_motion(int x,int y)
{
	t_app *app = app_get();

	app->mouse->is_moving=1;

	set_mouse_delta(app,x,app->window->height-y);

	app->mouse->x=x;
	app->mouse->y=app->window->height-y;

	if(app->mouse->button_left==button_clic)
	{
		app->mouse->button_left=button_pressed;
	}

	if(app->mouse->button_middle==button_clic)
		app->mouse->button_middle=button_pressed;

	if(app->mouse->button_left==button_pressed)
	{
		gettimeofday(&app->mouse->clic_clock->now,NULL);
	}

	glutPostRedisplay();
}
Beispiel #2
0
void app_gl_passive_motion(int x,int y)
{
	t_app *app = app_get();
	
	app->mouse->x=x;
	app->mouse->y=app->window->height-y;

	glutPostRedisplay();
}
Beispiel #3
0
void recv_set(struct packet_t *packet) {
	uint8_t device_src,device_dst;
	application_t* app;
	uart_putstr_P(PSTR("recv_set()\r\n"));

	while (get_devices(packet,&device_src,&device_dst)) {
		app=app_get(device_dst);
		if (app == NULL) continue; 
		if (app->set == NULL) continue;
		app->set(packet);
	}
}
Beispiel #4
0
void recv_get(struct packet_t *packet) {
	uint8_t device_src,device_dst;
	uint8_t len;
	application_t* app;

	struct packet_t *send_packet = get_tx_packet();

	while (get_devices(packet,&device_src,&device_dst)) {
		app=app_get(device_dst);
		set_devices(send_packet,device_dst,device_src);
		len=app->get(send_packet);
	//	if (len > 0) {
	//		data.remaining_len-=len;
	//	}
	}
	send(packet->network->src,VALUE,send_packet);
}
Beispiel #5
0
void app_gl_reshape(int width,int height)
{
	t_app *app = app_get();

	app->window->width=width;
	app->window->height=height;
	app->window->viewport_width=width;
	app->window->viewport_height=height;

	if(!app->window->fullscreen)
	{
		app->window->width_def=width;
		app->window->height_def=height;
	}

	app->window->change=1;

	//set viewport as window size
	glViewport(0,0,width,height);
}
Beispiel #6
0
int
mpm_runapp(struct iovec *retval, int appid, int ac, char **av)
{
  struct app *appptr;
  int procid;

  if (0 == (appptr = app_get(appid))) {
    cab_error(1, "mpm_runapp(): cannot find appID(%d)\n", appid);
    return -1;
  }
  
  mpm_avdeepcopy(retval, ac, av);

  procid = newprocid();

  if (0 > mpm_proc_new(appptr, procid, ac, (char **)retval->iov_base)) {
    return -1;
  }
  
  return procid;
}
Beispiel #7
0
void app_gl_mouse(int brick,int state,int x,int y)
{
	t_app *app = app_get();

	t_mouse *mouse = app->mouse;
	app_gl_keyboard_special(app); 

	app->mouse->is_moving=0;

	if (brick == GLUT_LEFT_BUTTON )
	{
		if (state == GLUT_DOWN)
		{
			// db clic
			gettimeofday(&mouse->clic_clock->now,NULL); 
			
			mouse->clic_clock->delta = 
				(mouse->clic_clock->now.tv_sec - mouse->clic_clock->before.tv_sec)
				+
				(mouse->clic_clock->now.tv_usec - mouse->clic_clock->before.tv_usec)*0.000001f;
			
			if(mouse->clic_clock->delta < .2)		
			{
				mouse->dbclic=1;
			}
			else mouse->dbclic=0;

			mouse->clic_clock->before = mouse->clic_clock->now;

			// clic
			if(app->mouse->button_left==button_released || app->mouse->button_left==button_idle)
			{
				app->mouse->button_left = button_clic;
				app_mouse_store(app,x,y);
				//##
				app->mouse->button_left=button_pressed;
			}

			
		}
		if (state == GLUT_UP)
		{
			gettimeofday(&mouse->release_clock->now,NULL);
			
			mouse->release_clock->delta = 
				(mouse->release_clock->now.tv_sec - mouse->clic_clock->now.tv_sec)
				+
				(mouse->release_clock->now.tv_usec - mouse->clic_clock->now.tv_usec)*0.000001f;

			if(mouse->release_clock->delta > .6 )		
			{
				mouse->lgclic=1;
			}
			else mouse->lgclic=0;

			mouse->release_clock->before = mouse->release_clock->now;

			app_mouse_reset(app);
			app->mouse->button_left = button_released; //

			// global blocking
			app->mouse->button_left_is_ready=1;
		}
	}

	if (brick == GLUT_MIDDLE_BUTTON)
	{
		if (state == GLUT_DOWN)
		{
			app->mouse->button_middle=button_pressed;
		}
		if (state == GLUT_UP)
		{
			app_mouse_reset(app);
			app->mouse->button_middle=button_released;
		}
	}

	if (brick == GLUT_RIGHT_BUTTON)
	{
		if (state == 0) app->mouse->button_right=button_pressed;
		else app->mouse->button_right=button_released;
	}

	if (brick == 3) // WHEEL UP
	{
		if (state == 0)
		{
			app->mouse->wheel=wheel_up;
		}
	}

	if (brick == 4) // WHELL DOWN
	{
		if (state == 0)
		{
			app->mouse->wheel=wheel_down;
		}
	}

	app->mouse->x = x;
	app->mouse->y = app->window->height - y;

	app_mouse_store(app,x,y);

	glutPostRedisplay();
}