moved visual waveforms to block

This should be nicer, however it has a bug that I need to fix
This commit is contained in:
itsmattkc
2021-08-01 16:43:53 -07:00
parent 6995ffe015
commit be4a18d7de
13 changed files with 95 additions and 54 deletions
+2
View File
@@ -129,6 +129,8 @@ signals:
void LengthChanged();
void PreviewChanged();
protected:
virtual void InputValueChangedEvent(const QString& input, int element) override;
+13
View File
@@ -196,6 +196,19 @@ void ClipBlock::LinkChangeEvent()
}
}
void ClipBlock::InputValueChangedEvent(const QString &input, int element)
{
super::InputValueChangedEvent(input, element);
if (input == kMediaInInput) {
// Shift waveform in the inverse that the media in moved
rational diff = media_in() - last_media_in_;
waveform_.TrimIn(diff);
last_media_in_ = media_in();
}
}
TimeRange ClipBlock::InputTimeAdjustment(const QString& input, int element, const TimeRange& input_time) const
{
Q_UNUSED(element)
+14
View File
@@ -21,6 +21,7 @@
#ifndef CLIPBLOCK_H
#define CLIPBLOCK_H
#include "audio/audiovisualwaveform.h"
#include "node/block/block.h"
namespace olive {
@@ -95,6 +96,11 @@ public:
return block_links_;
}
AudioVisualWaveform& waveform()
{
return waveform_;
}
static const QString kBufferIn;
static const QString kMediaInInput;
static const QString kSpeedInput;
@@ -103,6 +109,8 @@ public:
protected:
virtual void LinkChangeEvent() override;
virtual void InputValueChangedEvent(const QString &input, int element) override;
private:
rational SequenceToMediaTime(const rational& sequence_time, bool ignore_reverse = false) const;
@@ -113,6 +121,12 @@ private:
TransitionBlock* in_transition_;
TransitionBlock* out_transition_;
private:
AudioVisualWaveform waveform_;
rational last_media_in_;
};
}