10#ifndef __UNDO_UNDO_STACK_H__
11#define __UNDO_UNDO_STACK_H__
14#include "actions/channel_send_action.h"
15#include "actions/chord_action.h"
16#include "actions/midi_mapping_action.h"
17#include "actions/mixer_selections_action.h"
18#include "actions/port_action.h"
19#include "actions/port_connection_action.h"
20#include "actions/range_action.h"
21#include "actions/tracklist_selections.h"
47 size_t num_as_actions;
48 size_t as_actions_size;
51 size_t num_mixer_selections_actions;
52 size_t mixer_selections_actions_size;
55 size_t num_tracklist_selections_actions;
56 size_t tracklist_selections_actions_size;
59 size_t num_channel_send_actions;
60 size_t channel_send_actions_size;
63 size_t num_port_connection_actions;
64 size_t port_connection_actions_size;
67 size_t num_port_actions;
68 size_t port_actions_size;
71 size_t num_midi_mapping_actions;
72 size_t midi_mapping_actions_size;
75 size_t num_range_actions;
76 size_t range_actions_size;
79 size_t num_transport_actions;
80 size_t transport_actions_size;
83 size_t num_chord_actions;
84 size_t chord_actions_size;
116#define undo_stack_size(x) (stack_size ((x)->stack))
118#define undo_stack_is_empty(x) (stack_is_empty ((x)->stack))
120#define undo_stack_is_full(x) (stack_is_full ((x)->stack))
122#define undo_stack_peek(x) ((UndoableAction *) stack_peek ((x)->stack))
124#define undo_stack_peek_last(x) \
125 ((UndoableAction *) stack_peek_last ((x)->stack))
Action for a group of ArrangerObject's.
bool undo_stack_contains_action(UndoStack *self, UndoableAction *ua)
Checks if the undo stack contains the given action pointer.
NONNULL size_t undo_stack_get_total_cached_actions(UndoStack *self)
Returns the total cached actions.
void undo_stack_clear(UndoStack *self, bool free)
Clears the stack, optionally freeing all the elements.
NONNULL void undo_stack_get_plugins(UndoStack *self, GPtrArray *arr)
Returns the plugins referred to in the undo stack.
UndoStack * undo_stack_new(void)
Creates a new stack for undoable actions.
char * undo_stack_get_as_string(UndoStack *self, int limit)
Gets the list of actions as a string.
UndoableAction * undo_stack_pop_last(UndoStack *self)
Pops the last element and moves everything back.
Audio clips for the pool.
Action for channel send changes.
Action for chord pad changes.
Restrict selections to a channel.
Tracklist selections (tracks) action.
Serializable stack for undoable actions.
Stack * stack
Actual stack used at runtime.
Base struct to be inherited by implementing undoable actions.