Esempio n. 1
0
static int32_t mm_camera_poll_proc_msm(mm_camera_poll_thread_t *poll_cb, struct pollfd *fds)
{
   int i;

    for(i = 0; i < poll_cb->data.num_fds-1; i++) {
        /*Checking for data events*/
        if((poll_cb->data.poll_type == MM_CAMERA_POLL_TYPE_CH) &&
           (fds[i].revents & POLLIN) &&
           (fds[i].revents & POLLRDNORM)) {
            if(poll_cb->data.used) {
                mm_camera_msm_data_notify(poll_cb->data.my_obj,
                                        fds[i].fd,
                                        poll_cb->data.poll_streams[i]->stream_type);
            }

        }
        /*Checking for ctrl events*/
        if((poll_cb->data.poll_type == MM_CAMERA_POLL_TYPE_EVT) &&
           (fds[i].revents & POLLPRI)) {
          CDBG("%s: mm_camera_msm_evt_notify\n", __func__);
          mm_camera_msm_evt_notify(poll_cb->data.my_obj, fds[i].fd);
        }

    }
    return 0;
}
Esempio n. 2
0
static int32_t mm_camera_poll_task_fn_poll_proc_msm(mm_camera_obj_t * my_obj, 
																						 struct pollfd *fds, int num_fds, 
																						 mm_camera_stream_type_t *type)
{
	int i;

	for(i = 1; i < num_fds; i++) {
		if((fds[i].revents & POLLIN) && (fds[i].revents & POLLRDNORM)) {
			CDBG("%s:data stream type=%d,fd=%d\n",__func__, type[i], fds[i].fd); 
			mm_camera_msm_data_notify(my_obj, fds[i].fd, type[i]);
		}
	}
	return 0;
}