예제 #1
0
/* Initialises GL preview state and creates the dispmanx native window.
 * @param state Pointer to the GL preview state.
 * @return Zero if successful.
 */
int raspitex_init(RASPITEX_STATE *state)
{
   VCOS_STATUS_T status;
   int rc;
   vcos_init();

   vcos_log_register("RaspiTex", VCOS_LOG_CATEGORY);
   vcos_log_set_level(VCOS_LOG_CATEGORY,
         state->verbose ? VCOS_LOG_INFO : VCOS_LOG_WARN);
   vcos_log_trace("%s", VCOS_FUNCTION);

   status = vcos_semaphore_create(&state->capture.start_sem,
         "glcap_start_sem", 1);
   if (status != VCOS_SUCCESS)
      goto error;

   status = vcos_semaphore_create(&state->capture.completed_sem,
         "glcap_completed_sem", 0);
   if (status != VCOS_SUCCESS)
      goto error;

   switch (state->scene_id)
   {
      case RASPITEX_SCENE_SQUARE:
         rc = square_open(state);
         break;
      case RASPITEX_SCENE_MIRROR:
         rc = mirror_open(state);
         break;
      case RASPITEX_SCENE_TEAPOT:
         rc = teapot_open(state);
         break;
      case RASPITEX_SCENE_YUV:
         rc = yuv_open(state);
         break;
      case RASPITEX_SCENE_SOBEL:
         rc = sobel_open(state);
         break;

     case RASPITEXT_SCENE_BGS_SIMPLE:
         rc = gl_simple_open(state);
         break;
	  
      default:
         rc = -1;
         break;
   }
   if (rc != 0)
      goto error;

   return 0;

error:
   vcos_log_error("%s: failed", VCOS_FUNCTION);
   return -1;
}
예제 #2
0
파일: reflektor.c 프로젝트: guyou/reflektor
int		main	(int argc, char *argv[]) {

    Mirror	*m;
    VEvent	*vh;

    print_privs();
    m				=	mirror_open(NULL);

    while( (vh = mirror_get_event(m)) ) {

        printf("Received event:\n");
        vevent_print(vh);
        printf("\n");

        switch(vh->cmd) {
        case V_MIRRORID:
            mirror_setid(m,vh->data);
            report_mirror_id(m);
            break;
        case V_ORIENTATION_UP:
        case V_ORIENTATION_DOWN:
            m->state	=	vh->cmd;
            report_mirror_state(m);
            break;
        case V_SHOW_TAG:
        case V_HIDE_TAG:
            report_tag(vh);
            break;
        case V_APPLVERSION:
        case V_CHOREO_DATA:
        case V_USB_UPDATE:
        case V_BOOTLOADERVERSION:
        default:
            break;
        }
    }

    printf("mir:ror disconnected\n");
    return 0;
}