/*===========================================================================
 * FUNCTION   : QCameraCmdThread
 *
 * DESCRIPTION: default constructor of QCameraCmdThread
 *
 * PARAMETERS : None
 *
 * RETURN     : None
 *==========================================================================*/
QCameraCmdThread::QCameraCmdThread() :
    cmd_queue()
{
    cmd_pid = 0;
    cam_sem_init(&sync_sem, 0);
    cam_sem_init(&cmd_sem, 0);
}
Beispiel #2
0
int32_t mm_camera_cmd_thread_launch(mm_camera_cmd_thread_t * cmd_thread,
                                    mm_camera_cmd_cb_t cb,
                                    void* user_data)
{
    int32_t rc = 0;

    cam_sem_init(&cmd_thread->cmd_sem, 0);
    cam_queue_init(&cmd_thread->cmd_queue);
    cmd_thread->cb = cb;
    cmd_thread->user_data = user_data;

    /* launch the thread */
    pthread_create(&cmd_thread->cmd_pid,
                   NULL,
                   mm_camera_cmd_thread,
                   (void *)cmd_thread);
    return rc;
}
Beispiel #3
0
int32_t mm_camera_cmd_thread_launch(mm_camera_cmd_thread_t * cmd_thread,
                                    mm_camera_cmd_cb_t cb,
                                    void* user_data)
{
    int32_t rc = 0;

    cam_sem_init(&cmd_thread->cmd_sem, 0);
    cam_queue_init(&cmd_thread->cmd_queue);
    cmd_thread->cb = cb;
    cmd_thread->user_data = user_data;

    /* launch the thread */
    pthread_create(&cmd_thread->cmd_pid,
                   NULL,
                   mm_camera_cmd_thread,
                   (void *)cmd_thread);

    if (!cmd_thread->threadName) {
        pthread_setname_np(cmd_thread->cmd_pid, "CAM_launch");
    } else {
        pthread_setname_np(cmd_thread->cmd_pid, cmd_thread->threadName);
    }
    return rc;
}