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(); }
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(); }
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); } }
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); }
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); }
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; }
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(); }