architecture: move loop modes to clips

This commit is contained in:
itsmattkc
2022-07-17 15:22:36 -07:00
parent 4c71a33b7b
commit 0d9727b6d2
13 changed files with 179 additions and 79 deletions
+24 -1
View File
@@ -22,6 +22,7 @@
#define CLIPBLOCK_H
#include "audio/audiovisualwaveform.h"
#include "codec/decoder.h"
#include "node/block/block.h"
namespace olive {
@@ -121,17 +122,39 @@ public:
TimeRange media_range() const;
/**
* @brief Get currently set loop mode
*/
Decoder::LoopMode loop_mode() const
{
return static_cast<Decoder::LoopMode>(GetStandardValue(kLoopModeInput).toInt());
}
void set_loop_mode(Decoder::LoopMode l)
{
SetStandardValue(kLoopModeInput, int(l));
}
static const QString kBufferIn;
static const QString kMediaInInput;
static const QString kSpeedInput;
static const QString kReverseInput;
static const QString kMaintainAudioPitchInput;
static const QString kLoopModeInput;
protected:
virtual void LinkChangeEvent() override;
private:
rational SequenceToMediaTime(const rational& sequence_time, bool ignore_reverse = false, bool ignore_speed = false) const;
enum SequenceToMediaTimeFlag
{
kSTMNone,
kSTMIgnoreReverse,
kSTMIgnoreSpeed,
kSTMIgnoreLoop
};
rational SequenceToMediaTime(const rational& sequence_time, uint64_t flags = kSTMNone) const;
rational MediaToSequenceTime(const rational& media_time) const;