27#ifndef LMMS_AUTOMATION_CLIP_H
28#define LMMS_AUTOMATION_CLIP_H
62 using timeMap = QMap<int, AutomationNode>;
80 void setProgressionType( ProgressionType _new_progression_type );
86 void setTension( QString _new_tension );
89 void updateLength()
override;
94 const bool quantPos =
true,
95 const bool ignoreSurroundingPoints =
true
101 const float outValue,
102 const bool quantPos =
true,
103 const bool ignoreSurroundingPoints =
true
106 void removeNode(
const TimePos & time);
107 void removeNodes(
const int tick0,
const int tick1);
109 void resetNodes(
const int tick0,
const int tick1);
116 void resetTangents(
const int tick0,
const int tick1);
122 const bool quantPos =
true,
123 const bool controlKey =
false );
125 void applyDragValue();
169 float valueAt(
const TimePos & _time )
const;
170 float *valuesAfter(
const TimePos & _time )
const;
172 QString
name()
const;
175 void saveSettings( QDomDocument & _doc, QDomElement & _parent )
override;
176 void loadSettings(
const QDomElement & _this )
override;
185 static std::vector<AutomationClip*> clipsForModel(
const AutomatableModel* _m);
187 static void resolveAllIDs();
205 void flipY(
int min,
int max );
207 void flipX(
int start = -1,
int end = -1);
214 void generateTangents();
215 void generateTangents(timeMap::iterator it,
int numToGenerate);
216 float valueAt( timeMap::const_iterator
v,
int offset )
const;
225 static std::vector<Track*> combineAllTracks();
266 return it->getInValue();
271 return it->getOutValue();
276 return it->getValueOffset();
281 return it->getInTangent();
286 return it->getOutTangent();
291 return it->lockedTangents();
Definition AutomatableModel.h:77
Definition AutomationClip.h:52
static const float DEFAULT_MAX_VALUE
Definition AutomationClip.h:253
bool m_dragLockedTan
Definition AutomationClip.h:243
QRecursiveMutex m_clipMutex
Definition AutomationClip.h:229
bool addObject(AutomatableModel *_obj, bool _search_dup=true)
Definition AutomationClip.cpp:88
std::vector< jo_id_t > m_idsToResolve
Definition AutomationClip.h:232
QString nodeName() const override
Definition AutomationClip.h:179
~AutomationClip() override=default
AutomationTrack * m_autoTrack
Definition AutomationClip.h:231
timeMap m_oldTimeMap
Definition AutomationClip.h:235
bool isRecording() const
Definition AutomationClip.h:189
static int quantization()
Definition AutomationClip.h:192
static int s_quantization
Definition AutomationClip.h:250
AutomationClip * clone() override
Definition AutomationClip.h:195
bool canEditTangents() const
Definition AutomationClip.h:164
static void setQuantization(int q)
Definition AutomationClip.h:193
float m_lastRecordedValue
Definition AutomationClip.h:248
void clearObjects()
Definition AutomationClip.h:200
timeMap::const_iterator TimemapIterator
Definition AutomationClip.h:65
void setRecording(const bool b)
Definition AutomationClip.h:190
bool isDragging() const
Definition AutomationClip.h:128
timeMap m_timeMap
Definition AutomationClip.h:234
friend class AutomationNode
Definition AutomationClip.h:256
ProgressionType progressionType() const
Definition AutomationClip.h:76
AutomationClip(AutomationTrack *_auto_track)
Definition AutomationClip.cpp:48
bool m_dragging
Definition AutomationClip.h:240
static const QString classNodeName()
Definition AutomationClip.h:178
timeMap & getTimeMap()
Definition AutomationClip.h:138
float m_dragOutTan
Definition AutomationClip.h:245
float getMax() const
Definition AutomationClip.h:148
const timeMap & getTimeMap() const
Definition AutomationClip.h:133
const AutomatableModel * firstObject() const
Definition AutomationClip.cpp:151
std::vector< QPointer< AutomatableModel > > objectVector
Definition AutomationClip.h:63
static const float DEFAULT_MIN_VALUE
Definition AutomationClip.h:252
bool m_hasAutomation
Definition AutomationClip.h:237
QMap< int, AutomationNode > timeMap
Definition AutomationClip.h:62
ProgressionType
Definition AutomationClip.h:56
@ CubicHermite
Definition AutomationClip.h:59
bool m_isRecording
Definition AutomationClip.h:247
float m_dragOutValue
Definition AutomationClip.h:242
const objectVector & objects() const
Definition AutomationClip.cpp:165
bool m_dragKeepOutValue
Definition AutomationClip.h:241
float getMin() const
Definition AutomationClip.h:143
ProgressionType m_progressionType
Definition AutomationClip.h:238
bool hasAutomation() const
Definition AutomationClip.h:153
float getTension() const
Definition AutomationClip.h:82
objectVector m_objects
Definition AutomationClip.h:233
static bool supportsTangentEditing(ProgressionType pType)
Definition AutomationClip.h:158
float m_tension
Definition AutomationClip.h:236
float m_dragInTan
Definition AutomationClip.h:244
Definition AutomationTrack.h:36
Clip(Track *track)
Create a new Clip.
Definition Clip.cpp:47
Definition AutomationClipView.h:42
Definition AutomationEditor.h:59
Definition TrackView.h:60
unsigned v[N_MAX]
Definition inflate.c:1584
static PuglViewHint int value
Definition pugl.h:1708
static const char * name
Definition pugl.h:1582
virtual ASIOError start()=0
Definition AudioPortAudio.cpp:223
Definition AudioAlsa.cpp:35
float INTAN(AutomationClip::TimemapIterator it)
Definition AutomationClip.h:279
float INVAL(AutomationClip::TimemapIterator it)
Definition AutomationClip.h:264
std::uint32_t jo_id_t
Definition LmmsTypes.h:50
float OUTTAN(AutomationClip::TimemapIterator it)
Definition AutomationClip.h:284
float LOCKEDTAN(AutomationClip::TimemapIterator it)
Definition AutomationClip.h:289
float OUTVAL(AutomationClip::TimemapIterator it)
Definition AutomationClip.h:269
float OFFSET(AutomationClip::TimemapIterator it)
Definition AutomationClip.h:274
#define min(x, y)
Definition os.h:74
#define max(x, y)
Definition os.h:78
#define POS
Definition rtosc.c:956
register uch * q
Definition fileio.c:817