Пример #1
0
int MainCanvas::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
    _id = QMainWindow::qt_metacall(_c, _id, _a);
    if (_id < 0)
        return _id;
    if (_c == QMetaObject::InvokeMetaMethod) {
        switch (_id) {
        case 0: tinChanged(); break;
        case 1: hfpChanged(); break;
        case 2: numclustersChanged((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 3: open(); break;
        case 4: save_model(); break;
        case 5: save_scene(); break;
        case 6: closeMesh(); break;
        case 7: properties(); break;
        case 8: runhfp(); break;
        case 9: shuffleColors(); break;
        case 10: increaseNumClusters(); break;
        case 11: decreaseNumClusters(); break;
        case 12: showAllClusters(); break;
        case 13: showOneCluster(); break;
        case 14: about(); break;
        case 15: setSceneGraph(); break;
        case 16: checkNoTIN(); break;
        case 17: checkHFPStatus(); break;
        case 18: updateMatIndexes(); break;
        case 19: setNumClusters((*reinterpret_cast< int(*)>(_a[1]))); break;
        case 20: setNumClusters(); break;
        default: ;
        }
        _id -= 21;
    }
    return _id;
}
Пример #2
0
int	handle_key(int keycode, t_rt *scene)
{
  int	i;

  if (keycode == ESC)
    {
      i = -1;
      while (++i < NTHREAD)
	{
	  my_free_tab((void **)scene[i].objs);
	  my_free_tab((void **)scene[i].spots);
	}
      exit(EXIT_SUCCESS);
    }
  if (keycode == 's' || keycode == 'b')
    save_scene(scene[0].mlx->img);
  return (EXIT_SUCCESS);
}
Пример #3
0
/*****************************************************************************
Função que configura as cenas contidas no cartão sd
*****************************************************************************/
void cmd_scene(char *par) 
{
	char i,addr,erro = __FALSE, str[30];
	
	if(par[0] == '?')	/*Solicitando a alguma cena?*/	
	{
		if(par[1] >= '0' && par[1] <= '3')	/*Cenas de 0 a 3?*/
		{
			if(read_scene(par[1]-48,FILE_DIMMER_SCENE))
				sprintf(buf_tx,"%s%u",aux_scene,par[1]-48);
			else
				sprintf(buf_tx,"ERROR %u",ERROR_SD); 
		}else
		{
			sprintf(buf_tx,"%s%u", (current_scene[0]==0) ? "SET 0000000000007" : current_scene, current_id_scene);
			if(strcmp(current_scene,scene[current_id_scene])/*strlen(current_scene) < 15*/)
				sprintf(current_scene,"%s%u",scene[current_id_scene], current_id_scene);
		}	
		return;
	}

	memset(str,0,sizeof(str));

	strncpy(str,par,17);	/*Cena ex: 0SET 020020020000*/

	addr = str[0]-48;
	for(i=0;i<20;i++)		/*Loop para eliminar o id da cena da string...Ex: SET 020020020000*/
		str[i] = str[i+1];

	for(i=4;i<16;i++)		/*Loop para verificar possiveis erros de parâmetro*/
	{
		if(str[i] < '0' || str[i] > '9' || addr > 7)	
			erro = __TRUE;	

		if(str[i] == '\r' || str[i] == '\n')	/*Elimina caracteres indesejados da cena*/
			str[i] = 0;
	}

	//printf("str:%s\r",str);
	//fflush(stdout);

	if(strlen(str) != 16 || !strstr(str,"SET") || erro)	/*Há erro?*/
		sprintf(buf_tx,"ERROR %u",ERROR_PARAMETER);
	else
	{
		if(save_scene(str,addr))		/*A cena foi salva no cartão sd?*/
		{
			init_scene(addr);			/*Lê a cena para se certificar que foi escrita no sd*/

			sprintf(buf_tx,"%s%u",scene[addr],addr);
			if(rcv_cmd == RCV_CMD_UART_0)
			{	
				/*Envia imediatamente para o LPC1113 a alteração da cena 'addr' */
				uart_putString(UART_LINK_LPC,scene[addr]);
				uart_putString(UART_LINK_LPC,"!\0");
				strcpy(current_scene,scene[addr]);		/*Copia para a cena atual*/	
				current_id_scene = addr;
			}else
			{
				printf("Cena %u configurada: %s\r",addr,str);
				fflush(stdout);
			}
		}else
			sprintf(buf_tx,"ERROR %u",ERROR_SD);	/*Error permitido para cartão SD*/		
	}
}
Пример #4
0
static void send_codes(vx_display_t * disp, const uint8_t * data, int datalen)
{
    state_t * state = disp->impl;

    vx_code_input_stream_t * cins = vx_code_input_stream_create(data, datalen);
    // Peek at the code type to determine which function to call
    uint32_t code = cins->read_uint32(cins);
    pthread_mutex_lock(&state->mutex);
    switch(code) {
        case OP_BUFFER_RESOURCES:
            vx_resc_manager_buffer_resources(state->mgr, data, datalen);
            break;

        case OP_BUFFER_ENABLED:
            vx_gl_renderer_buffer_enabled(state->glrend, cins);
            break;
        case OP_BUFFER_CODES:
            vx_gl_renderer_set_buffer_render_codes(state->glrend, cins);
            break;
        case OP_LAYER_INFO:
            vx_gl_renderer_update_layer(state->glrend, cins);
            {
                vx_code_input_stream_t * c2 = vx_code_input_stream_create(data, datalen);
                c2->read_uint32(c2); //discard code

                process_layer(state, c2);
                vx_code_input_stream_destroy(c2);
            }
            // XXX Also need to intercept these!
            break;
        case OP_DEALLOC_RESOURCES:
            vx_gl_renderer_remove_resources(state->glrend, cins);
            break;

        case OP_LAYER_VIEWPORT_REL:
            process_viewport_rel(state, cins);
            break;
        case OP_LAYER_VIEWPORT_ABS:
            process_viewport_abs(state, cins);
            break;

        case OP_LAYER_CAMERA:
            process_camera_codes(state, cins);
            break;

        case OP_WINDOW_SCENE: {
            save_scene(state, cins);
            break;
        }

        case OP_WINDOW_SCREENSHOT:
            screen_shot(state, cins);
            break;
        case OP_WINDOW_MOVIE_RECORD:
        case OP_WINDOW_MOVIE_STOP:
            movie(state, cins, code == OP_WINDOW_MOVIE_RECORD);
            break;
        default:
            assert(0);
    }
    pthread_mutex_unlock(&state->mutex);

    // Buffer layer manager, outside the lock
    switch(code) {
        case OP_BUFFER_ENABLED:
            vx_gtk_buffer_manager_codes(state->buffer_manager, data, datalen);
            break;
        case OP_BUFFER_CODES:
            vx_gtk_buffer_manager_codes(state->buffer_manager, data, datalen);
            break;
        case OP_LAYER_INFO:
            vx_gtk_buffer_manager_codes(state->buffer_manager, data, datalen);
            break;
    }


    vx_code_input_stream_destroy(cins);
}
Пример #5
0
int main(void)
{
   Evas *canvas;
   Evas_Object *bg, *r1, *r2, *r3;

   evas_init();

   // create your canvas
   // NOTE: consider using ecore_evas_buffer_new() instead!
   canvas = create_canvas(WIDTH, HEIGHT);
   if (!canvas)
     return -1;

   bg = evas_object_rectangle_add(canvas);
   evas_object_color_set(bg, 255, 255, 255, 255); // white bg
   evas_object_move(bg, 0, 0);                    // at origin
   evas_object_resize(bg, WIDTH, HEIGHT);         // covers full canvas
   evas_object_show(bg);

   puts("initial scene, with just background:");
   draw_scene(canvas);

   r1 = evas_object_rectangle_add(canvas);
   evas_object_color_set(r1, 255, 0, 0, 255); // 100% opaque red
   evas_object_move(r1, 10, 10);
   evas_object_resize(r1, 100, 100);
   evas_object_show(r1);

   // pay attention to transparency! Evas color values are pre-multiplied by
   // alpha, so 50% opaque green is:
   // non-premul: r=0, g=255, b=0    a=128 (50% alpha)
   // premul:
   //         r_premul = r * a / 255 =      0 * 128 / 255 =      0
   //         g_premul = g * a / 255 =    255 * 128 / 255 =    128
   //         b_premul = b * a / 255 =      0 * 128 / 255 =      0
   //
   // this 50% green is over a red background, so it will show in the
   // final output as yellow (green + red = yellow)
   r2 = evas_object_rectangle_add(canvas);
   evas_object_color_set(r2, 0, 128, 0, 128); // 50% opaque green
   evas_object_move(r2, 10, 10);
   evas_object_resize(r2, 50, 50);
   evas_object_show(r2);

   r3 = evas_object_rectangle_add(canvas);
   evas_object_color_set(r3, 0, 128, 0, 255); // 100% opaque dark green
   evas_object_move(r3, 60, 60);
   evas_object_resize(r3, 50, 50);
   evas_object_show(r3);

   puts("final scene (note updates):");
   draw_scene(canvas);
   save_scene(canvas, "/tmp/evas-buffer-simple-render.ppm");

   // NOTE: use ecore_evas_buffer_new() and here ecore_evas_free()
   destroy_canvas(canvas);

   evas_shutdown();

   return 0;
}