![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "gui/gui_throttle.h"#include "common/atomic.h"#include "common/dtpthread.h"#include "control/conf.h"#include "develop/pixelpipe_hb.h"#include <stdint.h>
Include dependency graph for gui_throttle.c:Data Structures | |
| struct | dt_gui_throttle_task_t |
| struct | dt_gui_throttle_state_t |
Macros | |
| #define | DT_GUI_THROTTLE_RUNTIME_CONF "processing/gui_throttle_runtime_us" |
Typedefs | |
| typedef struct dt_gui_throttle_task_t | dt_gui_throttle_task_t |
| typedef struct dt_gui_throttle_state_t | dt_gui_throttle_state_t |
Functions | |
| static dt_gui_throttle_task_t * | _find_task (gpointer source) |
| static guint | _get_user_timeout_ms (void) |
| static guint | _runtime_us_to_ms (const int runtime_us) |
| static guint | _effective_timeout_ms (void) |
| static gboolean | _dispatch_pending_tasks (gpointer user_data) |
| void | dt_gui_throttle_init (void) |
| void | dt_gui_throttle_cleanup (void) |
| void | dt_gui_throttle_record_runtime (const dt_dev_pixelpipe_t *pipe, const gint64 runtime_us) |
| int | dt_gui_throttle_get_runtime_us (void) |
| int | dt_gui_throttle_get_pipe_runtime_us (const dt_dev_pixelpipe_type_t pipe_type) |
| guint | dt_gui_throttle_get_timeout_ms (void) |
| gint64 | dt_gui_throttle_get_timeout_us (void) |
| void | dt_gui_throttle_queue (gpointer source, dt_gui_throttle_callback_t callback, gpointer user_data) |
| void | dt_gui_throttle_cancel (gpointer source) |
Variables | |
| static dt_gui_throttle_state_t | _gui_throttle = { 0 } |
| #define DT_GUI_THROTTLE_RUNTIME_CONF "processing/gui_throttle_runtime_us" |
| typedef struct dt_gui_throttle_state_t dt_gui_throttle_state_t |
| typedef struct dt_gui_throttle_task_t dt_gui_throttle_task_t |
|
static |
|
static |
|
static |
References _gui_throttle, dt_gui_throttle_state_t::pending_tasks, and dt_gui_throttle_task_t::source.
Referenced by dt_gui_throttle_queue().
|
static |
References dt_conf_get_int(), and MAX.
Referenced by _effective_timeout_ms().
|
static |
References MAX.
Referenced by _effective_timeout_ms().
| void dt_gui_throttle_cancel | ( | gpointer | source | ) |
References _gui_throttle, dt_gui_throttle_state_t::pending_tasks, dt_gui_throttle_task_t::source, and dt_gui_throttle_state_t::timeout_source.
Referenced by _combobox_set(), _widget_finalize(), cleanup(), dt_bauhaus_combobox_button_press(), dt_bauhaus_slider_button_release(), dt_bauhaus_slider_set_normalized(), dt_dev_cleanup(), dt_gui_throttle_queue(), gui_cleanup(), gui_cleanup(), gui_update(), gui_update(), and leave().
References _gui_throttle, dt_gui_throttle_state_t::avg_runtime_us, dt_atomic_get_int(), dt_conf_set_int(), DT_GUI_THROTTLE_RUNTIME_CONF, dt_pthread_mutex_destroy(), MAX, dt_gui_throttle_state_t::pending_tasks, dt_gui_throttle_state_t::runtime_mutex, and dt_gui_throttle_state_t::timeout_source.
Referenced by dt_cleanup().
| int dt_gui_throttle_get_pipe_runtime_us | ( | const dt_dev_pixelpipe_type_t | pipe_type | ) |
References _gui_throttle, dt_gui_throttle_state_t::avg_full_runtime_us, dt_gui_throttle_state_t::avg_preview_runtime_us, dt_atomic_get_int(), DT_DEV_PIXELPIPE_EXPORT, DT_DEV_PIXELPIPE_FULL, DT_DEV_PIXELPIPE_NONE, DT_DEV_PIXELPIPE_PREVIEW, DT_DEV_PIXELPIPE_THUMBNAIL, dt_gui_throttle_get_runtime_us(), and MAX.
Referenced by _live_publish_interval_us().
| int dt_gui_throttle_get_runtime_us | ( | void | ) |
References _gui_throttle, dt_gui_throttle_state_t::avg_runtime_us, dt_atomic_get_int(), and MAX.
Referenced by dt_gui_throttle_get_pipe_runtime_us().
| guint dt_gui_throttle_get_timeout_ms | ( | void | ) |
References _effective_timeout_ms().
| gint64 dt_gui_throttle_get_timeout_us | ( | void | ) |
References _effective_timeout_ms().
References _gui_throttle, dt_gui_throttle_state_t::avg_full_runtime_us, dt_gui_throttle_state_t::avg_preview_runtime_us, dt_gui_throttle_state_t::avg_runtime_us, dt_atomic_set_int(), dt_conf_get_int(), DT_GUI_THROTTLE_RUNTIME_CONF, dt_pthread_mutex_init(), i, MAX, dt_gui_throttle_state_t::pending_tasks, dt_gui_throttle_state_t::recent_full_runtime_count, dt_gui_throttle_state_t::recent_full_runtime_pos, dt_gui_throttle_state_t::recent_full_runtime_us, dt_gui_throttle_state_t::recent_preview_runtime_count, dt_gui_throttle_state_t::recent_preview_runtime_pos, dt_gui_throttle_state_t::recent_preview_runtime_us, dt_gui_throttle_state_t::recent_runtime_count, dt_gui_throttle_state_t::recent_runtime_pos, dt_gui_throttle_state_t::recent_runtime_us, and dt_gui_throttle_state_t::runtime_mutex.
Referenced by dt_init().
| void dt_gui_throttle_queue | ( | gpointer | source, |
| dt_gui_throttle_callback_t | callback, | ||
| gpointer | user_data | ||
| ) |
References _dispatch_pending_tasks(), _effective_timeout_ms(), _find_task(), _gui_throttle, dt_gui_throttle_task_t::callback, dt_gui_throttle_cancel(), dt_gui_throttle_state_t::pending_tasks, dt_gui_throttle_task_t::source, dt_gui_throttle_state_t::timeout_source, and dt_gui_throttle_task_t::user_data.
Referenced by _combobox_set(), _move_point_internal(), _move_point_internal(), _move_point_internal(), _move_point_internal(), area_motion_notify(), button_pressed(), button_released(), dt_bauhaus_slider_set_normalized(), key_pressed(), lowlight_motion_notify(), mouse_moved(), rawdenoise_motion_notify(), and scrolled().
| void dt_gui_throttle_record_runtime | ( | const dt_dev_pixelpipe_t * | pipe, |
| const gint64 | runtime_us | ||
| ) |
References _gui_throttle, dt_gui_throttle_state_t::avg_full_runtime_us, dt_gui_throttle_state_t::avg_preview_runtime_us, dt_gui_throttle_state_t::avg_runtime_us, dt_atomic_set_int(), DT_DEV_PIXELPIPE_FULL, DT_DEV_PIXELPIPE_PREVIEW, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), i, MAX, MIN, dt_gui_throttle_state_t::recent_full_runtime_count, dt_gui_throttle_state_t::recent_full_runtime_pos, dt_gui_throttle_state_t::recent_full_runtime_us, dt_gui_throttle_state_t::recent_preview_runtime_count, dt_gui_throttle_state_t::recent_preview_runtime_pos, dt_gui_throttle_state_t::recent_preview_runtime_us, dt_gui_throttle_state_t::recent_runtime_count, dt_gui_throttle_state_t::recent_runtime_pos, dt_gui_throttle_state_t::recent_runtime_us, dt_gui_throttle_state_t::runtime_mutex, and dt_dev_pixelpipe_t::type.
Referenced by dt_dev_darkroom_pipeline().
|
static |