result = tbm_surface_queue_set_modes(queue, TBM_SURFACE_QUEUE_MODE_GUARANTEE_CYCLE);
EXPECT_EQ(tbm_error_str(TBM_SURFACE_QUEUE_ERROR_NONE), tbm_error_str(result));
}
-
-/* tbm_surface_queue_set_sync_count() */
-TEST_F(TBMSurfaceQueue, SetSyncCountFailNull)
-{
- result = tbm_surface_queue_set_sync_count(NULL, 1);
- EXPECT_NE(tbm_error_str(TBM_SURFACE_QUEUE_ERROR_NONE), tbm_error_str(result));
-}
-
-TEST_F(TBMSurfaceQueue, SetSyncCountFailInvalidInput)
-{
- result = tbm_surface_queue_set_sync_count(invalid_queue, 1);
- EXPECT_NE(tbm_error_str(TBM_SURFACE_QUEUE_ERROR_NONE), tbm_error_str(result));
-}
-
-TEST_F(TBMSurfaceQueue, SetSyncCountSuccess)
-{
- result = tbm_surface_queue_dequeue(queue, &surface);
- EXPECT_EQ(tbm_error_str(TBM_SURFACE_QUEUE_ERROR_NONE), tbm_error_str(result));
-
- /* test: map after enqueue */
- result = tbm_surface_queue_set_sync_count(queue, 0);
- EXPECT_EQ(tbm_error_str(TBM_SURFACE_QUEUE_ERROR_NONE), tbm_error_str(result));
-
- result = tbm_surface_queue_enqueue(queue, surface);
- EXPECT_EQ(tbm_error_str(TBM_SURFACE_QUEUE_ERROR_NONE), tbm_error_str(result));
-
- /* test: map after acquire */
- result = tbm_surface_queue_set_sync_count(queue, 0);
- EXPECT_EQ(tbm_error_str(TBM_SURFACE_QUEUE_ERROR_NONE), tbm_error_str(result));
-
- result = tbm_surface_queue_acquire(queue, &surface);
- EXPECT_EQ(tbm_error_str(TBM_SURFACE_QUEUE_ERROR_NONE), tbm_error_str(result));
-}
\ No newline at end of file
tbm_surface_queue_error_e tbm_surface_queue_get_trace_surface_num(
tbm_surface_queue_h surface_queue, tbm_surface_queue_trace trace, int *num);
-tbm_surface_queue_error_e tbm_surface_queue_set_sync_count(
- tbm_surface_queue_h surface_queue, unsigned int sync_count);
-
tbm_surface_queue_error_e tbm_surface_queue_notify_reset(tbm_surface_queue_h surface_queue);
#ifdef __cplusplus
tbm_surface_queue_error_e tbm_surface_queue_set_size(
tbm_surface_queue_h surface_queue, int queue_size, int flush);
-/**
- * @brief Sets sync count of the tbm_surface_queue.
- *
- * @param[in] surface_queue The #tbm_surface_queue_h
- * @param[in] sync_count The sync count
- *
- * @return #TBM_SURFACE_ERROR_NONE on success,
- * otherwise an error status value
- */
-tbm_surface_queue_error_e tbm_surface_queue_set_sync_count(
- tbm_surface_queue_h surface_queue, unsigned int sync_count);
-
/**
* @brief Notify reset of the tbm_surface_queue.
*
return TBM_SURFACE_QUEUE_ERROR_NONE;
}
-tbm_surface_queue_error_e
-tbm_surface_queue_set_sync_count(tbm_surface_queue_h surface_queue,
- unsigned int sync_count)
-{
- int dequeue_num, enqueue_num;
-
- _tbm_surf_queue_mutex_lock();
- _tbm_set_last_result(TBM_ERROR_NONE);
-
- TBM_SURF_QUEUE_RETURN_VAL_IF_FAIL(_tbm_surface_queue_is_valid(surface_queue),
- TBM_SURFACE_QUEUE_ERROR_INVALID_QUEUE);
-
- pthread_mutex_lock(&surface_queue->lock);
-
- dequeue_num = _tbm_surface_queue_get_node_count(surface_queue, QUEUE_NODE_TYPE_DEQUEUE);
- enqueue_num = _tbm_surface_queue_get_node_count(surface_queue, QUEUE_NODE_TYPE_ENQUEUE);
-
- if (dequeue_num + sync_count == 0)
- surface_queue->acquire_sync_count = enqueue_num;
- else
- surface_queue->enqueue_sync_count = dequeue_num + sync_count;
-
- TBM_TRACE_SURFACE_QUEUE("tbm_surface_queue(%p) enqueue_sync_count:(%d) acquire_sync_count:(%d)",
- surface_queue, surface_queue->enqueue_sync_count, surface_queue->acquire_sync_count);
-
- pthread_mutex_unlock(&surface_queue->lock);
-
- _tbm_surf_queue_mutex_unlock();
-
- return TBM_SURFACE_QUEUE_ERROR_NONE;
-}
-
tbm_surface_queue_error_e
tbm_surface_queue_get_next_dequeue(tbm_surface_queue_h surface_queue, tbm_surface_h *surface)
{