9#define LOC QString("Transition: ")
13 : m_duration(
gCoreContext->GetDurSetting<
std::chrono::milliseconds>(
"GalleryTransitionTime", 1s))
35 result =
m_map.value(value--,
nullptr);
40 LOG(VB_GENERAL, LOG_CRIT,
41 LOC + QString(
"No transitions found for setting %1").arg(setting));
58 if (includeAnimations)
81 bool forwards,
float speed)
83 LOG(VB_FILE, LOG_DEBUG,
LOC +
84 QString(
"Starting transition %1 -> %2 (forwards= %3, speed= %4)")
85 .arg(from.objectName(), to.objectName()).arg(forwards).arg(speed));
114 LOG(VB_FILE, LOG_DEBUG,
LOC +
115 QString(
"Finished transition to %1").arg(
m_new->objectName()));
129 bool forwards,
float speed)
170 bool forwards,
float speed)
209 oldPic->Set(255, 0,
m_duration, QEasingCurve::InOutQuad);
214 newPic->Set(0, 255,
m_duration, QEasingCurve::InOutQuad);
239 oldPic->Set(1.0, 0.0,
m_duration / 2, QEasingCurve::InQuart);
244 newPic->Set(0.0, 1.0,
m_duration / 2, QEasingCurve::OutQuart);
272 oldPic->Set(QPoint(0, 0), QPoint(-width, 0),
m_duration, QEasingCurve::InOutQuart);
277 newPic->Set(QPoint(width, 0), QPoint(0, 0),
m_duration, QEasingCurve::InOutQuart);
305 oldZoom->Set(1.0, 0.0,
m_duration, QEasingCurve::OutQuad);
309 oldMove->Set(QPoint(0, 0), QPoint(-width / 2, 0),
m_duration,
310 QEasingCurve::InQuad);
315 newZoom->Set(0.0, 1.0,
m_duration, QEasingCurve::InQuad);
319 newMove->Set(QPoint(width / 2, 0), QPoint(0, 0),
m_duration,
320 QEasingCurve::OutQuad);
350 an->Set(0.0, 360.1,
m_duration, QEasingCurve::InOutQuad);
354 an->Set(0.0, 360.1,
m_duration, QEasingCurve::InOutQuad);
362 an->Set(1.0, 0.5,
m_duration / 2, QEasingCurve::InOutQuad);
366 an->Set(0.5, 1.0,
m_duration / 2, QEasingCurve::InOutQuad);
374 an->Set(1.0, 0.5,
m_duration / 2, QEasingCurve::InOutQuad);
378 an->Set(0.5, 1.0,
m_duration / 2, QEasingCurve::InOutQuad);
422 disconnect(
m_current,
nullptr,
nullptr,
nullptr);
void finished()
Signals animation has finished.
A single animation controlling alpha, zoom, rotation and position.
Abstract class for groups of animations.
void SetSpeed(float speed) override
void Clear() override
Delete all child animations.
void Start(bool forwards, float speed=1.0) override
Initialise & start base animation.
virtual void Add(AbstractAnimation *child)
Add child animation to group.
void Start(Slide &from, Slide &to, bool forwards, float speed=1.0) override
Start group transition.
void Pulse() override
Update group transition.
void SetSpeed(float speed) override
Change transition speed.
GroupTransition(GroupAnimation *animation, const QString &name)
Create group transition.
~GroupTransition() override
Destroy group transition.
GroupAnimation * m_animation
virtual void SetVisible(bool visible)
void SetAngle(float angle)
virtual MythRect GetArea(void) const
If the object has a minimum area defined, return it, other wise return the default area.
void SetPosition(int x, int y)
Convenience method, calls SetPosition(const MythPoint&) Override that instead to change functionality...
void SetAlpha(int newalpha)
void SetHorizontalZoom(float zoom)
A group of animations to be played sequentially.
A specialised image for slideshows.
void SetZoom(float zoom)
Sets slide zoom.
Image blends into the next by fading.
void Finalise() override
Reset Blend transition.
void Initialise() override
Set up Blend transition.
Switches images instantly with no effects.
void Start(Slide &from, Slide &to, bool forwards, float speed=1.0) override
Switch images.
Invokes random transitions.
void Finished() override
Invoked when peer transition completes.
Transition * m_current
Selected transition.
void Start(Slide &from, Slide &to, bool forwards, float speed=1.0) override
Starts a random transition from a set of its peer transitions,.
QList< Transition * > m_peers
Set of distinct transitions.
Transition & Select(int setting)
Returns the requested transition or an alternative if it is not suitable for the painter.
TransitionRegistry(bool includeAnimations)
Constructor.
TransitionNone m_immediate
A transition that updates instantly.
TransitionMap m_map
All possible transitions.
Slide on from right, then off to left.
void Initialise() override
Set up Slide transition.
void Finalise() override
Reset Slide transition.
Images blend whilst rotating.
void Initialise() override
Set up Spin transition.
void Finalise() override
Reset Spin transition.
Image twists into the next.
void Finalise() override
Reset Twist transition.
void Initialise() override
Set up Twist transition.
Zooms from right, then away to left.
void Finalise() override
Reset Zoom transition.
void Initialise() override
Set up Zoom transition.
Base class of an animated transition that can be accelerated & reversed.
virtual void Finished()
Transition has completed.
virtual void Start(Slide &from, Slide &to, bool forwards, float speed=1.0)
Start base transition.
virtual void Initialise()
Transition(const QString &name)
Slide * m_next
The image occurring later in the slideshow sequence.
Slide * m_prev
The image occurring earlier in the slideshow sequence.
std::chrono::milliseconds m_duration
Seconds transition will last.
Slide * m_new
The new image that will replace the current one (whatever the transition direction)
Slide * m_old
The image currently displayed, which will be replaced (whatever the transition direction)
Provides transitions for slideshows.
MythCoreContext * gCoreContext
This global variable contains the MythCoreContext instance for the app.
#define LOG(_MASK_, _LEVEL_, _QSTRING_)
Convenience inline random number generator functions.
uint32_t MythRandom()
generate 32 random bits