10#ifndef __AUDIO_RECORDING_MANAGER_H__
11#define __AUDIO_RECORDING_MANAGER_H__
29#define RECORDING_MANAGER (gZrythm->recording_manager)
63 bool currently_processing;
64 ZixSem processing_sem;
RecordingManager * recording_manager_new()
Creates the event queue and starts the event loop.
int recording_manager_process_events(RecordingManager *self)
GSourceFunc to be added using idle add.
REALTIME void recording_manager_handle_recording(RecordingManager *self, const TrackProcessor *track_processor, const EngineProcessTimeInfo *time_nfo)
Handles the recording logic inside the process cycle.
Common struct to pass around during processing to avoid repeating the data in function arguments.
Multiple Producer Multiple Consumer lock-free queue.
ArrangerSelections * selections_before_start
Cloned selections before starting recording.
guint source_id
Source func ID.
MPMCQueue * event_queue
Event queue.
ObjectPool * event_obj_pool
Memory pool of event structs to avoid real time allocation.
RegionIdentifier recorded_ids[8000]
Recorded region identifiers, to be used for creating the undoable actions.
GPtrArray * pending_aps
Pending recorded automation points.
int num_active_recordings
Number of recordings currently in progress.
Index/identifier for a Region, so we can get Region objects quickly with it without searching by name...
A TrackProcessor is a processor that is used as the first entry point when processing a track.