67 sound->
tags &= ~SOUND_TAGS_WAVEFORM_LOADING;
81 task->wm_job->processed++;
109 task->preview_job_audio = previewjb;
131 if (current_progress != worker_status->
progress) {
132 worker_status->
progress = current_progress;
145 if (worker_status->
stop ||
G.is_break) {
211 pj = MEM_cnew<PreviewJob>(
"preview rebuild job");
224 PreviewJobAudio *audiojob = MEM_cnew<PreviewJobAudio>(
"preview_audio");
ScrArea * CTX_wm_area(const bContext *C)
wmWindow * CTX_wm_window(const bContext *C)
Scene * CTX_data_scene(const bContext *C)
Main * CTX_data_main(const bContext *C)
wmWindowManager * CTX_wm_manager(const bContext *C)
void BKE_sound_read_waveform(struct Main *bmain, struct bSound *sound, bool *stop)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define LISTBASE_FOREACH(type, var, list)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
bool BLI_task_pool_current_canceled(TaskPool *pool)
void BLI_task_pool_work_and_wait(TaskPool *pool)
void BLI_task_pool_cancel(TaskPool *pool)
TaskPool * BLI_task_pool_create(void *userdata, eTaskPriority priority)
void BLI_task_pool_free(TaskPool *pool)
void BLI_task_pool_push(TaskPool *pool, TaskRunFunction run, void *taskdata, bool free_taskdata, TaskFreeFunction freedata)
pthread_spinlock_t SpinLock
void BLI_mutex_free(ThreadMutex *mutex)
ThreadMutex * BLI_mutex_alloc(void)
void BLI_condition_wait(ThreadCondition *cond, ThreadMutex *mutex)
pthread_cond_t ThreadCondition
void BLI_condition_notify_one(ThreadCondition *cond)
void BLI_condition_init(ThreadCondition *cond)
void BLI_mutex_lock(ThreadMutex *mutex)
void BLI_mutex_unlock(ThreadMutex *mutex)
void BLI_spin_unlock(SpinLock *spin)
void BLI_spin_lock(SpinLock *spin)
pthread_mutex_t ThreadMutex
void ED_area_tag_redraw(ScrArea *area)
Read Guarded memory(de)allocation.
@ WM_JOB_TYPE_SEQ_BUILD_PREVIEW
#define ND_SPACE_SEQUENCER
draw_view in_light_buf[] float
void MEM_freeN(void *vmemh)
static void preview_startjob(void *data, wmJobWorkerStatus *worker_status)
static void clear_sound_waveform_loading_tag(bSound *sound)
static void free_read_sound_waveform_task(TaskPool *__restrict task_pool, void *data)
static void preview_endjob(void *data)
static void execute_read_sound_waveform_task(TaskPool *__restrict task_pool, void *task_data)
static void push_preview_job_audio_task(TaskPool *__restrict task_pool, PreviewJob *pj, PreviewJobAudio *previewjb, bool *stop)
static void free_preview_job(void *data)
void sequencer_preview_add_sound(const bContext *C, const Sequence *seq)
ThreadCondition preview_suspend_cond
void WM_main_add_notifier(uint type, void *reference)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
bool WM_jobs_is_running(const wmJob *wm_job)
void WM_jobs_timer(wmJob *wm_job, double time_step, uint note, uint endnote)
void WM_jobs_start(wmWindowManager *wm, wmJob *wm_job)
void * WM_jobs_customdata_get(wmJob *wm_job)
wmJob * WM_jobs_get(wmWindowManager *wm, wmWindow *win, const void *owner, const char *name, const eWM_JobFlag flag, const eWM_JobType job_type)
void WM_jobs_callbacks(wmJob *wm_job, wm_jobs_start_callback startjob, void(*initjob)(void *), void(*update)(void *), void(*endjob)(void *))
void WM_jobs_customdata_set(wmJob *wm_job, void *customdata, void(*free)(void *customdata))