MythTV
master
|
Provides a queue/pool of slides. More...
#include <galleryslide.h>
Signals | |
void | SlideReady (int count) |
Signals that buffer has (count) loaded slides awaiting display. More... | |
Public Member Functions | |
SlideBuffer ()=default | |
~SlideBuffer () override | |
void | Initialise (MythUIImage &image) |
Construct buffer. More... | |
void | Teardown () |
bool | Load (const ImagePtrK &im, int direction) |
Assign an image to next available slide, start loading and signal when done. More... | |
void | Preload (const ImagePtrK &im) |
Load an image in next available slide. More... | |
void | ReleaseCurrent () |
Move head slide to back of queue and flush waiting slides. More... | |
Slide & | GetCurrent () |
Slide & | GetNext () |
Protected Member Functions | |
QString | BufferState () |
Determines buffer state for debug logging. More... | |
Protected Attributes | |
QRecursiveMutex | m_mutexQ |
Queue protection. More... | |
QQueue< Slide * > | m_queue |
Queue of slides. More... | |
int | m_nextLoad {0} |
Index of first spare slide, (or last slide if none spare) More... | |
Private Slots | |
void | Flush (Slide *slide, const QString &reason) |
Signal if any slides are waiting to be displayed. More... | |
void | Flush (Slide *slide) |
Provides a queue/pool of slides.
Slides are cloned from a theme-provided image definition, so are created at start-up and re-used (a pool). Image requests are assigned to successive slides. When loaded a slide becomes available for display in requested order (a queue). The head slide is the one displayed, its successor is also displayed during a transition. When a transition completes the head slide is removed and returned to the tail for re-use. If a rapid batch of requests fill the buffer then subsequent requests overwrite the last slide, discarding the previous image (jumping behaviour).
Definition at line 215 of file galleryslide.h.
|
default |
|
override |
Definition at line 573 of file galleryslide.cpp.
void SlideBuffer::Initialise | ( | MythUIImage & | image | ) |
Construct buffer.
Slides are cloned from an XML image and become children of it.
image | Parent image used as a template for slides |
Definition at line 593 of file galleryslide.cpp.
Referenced by GallerySlideView::Create().
void SlideBuffer::Teardown | ( | ) |
Definition at line 579 of file galleryslide.cpp.
Referenced by GallerySlideView::Close().
Assign an image to next available slide, start loading and signal when done.
im | Image to load |
direction | Navigation causing the load |
Definition at line 654 of file galleryslide.cpp.
Referenced by GallerySlideView::ShowSlide().
void SlideBuffer::Preload | ( | const ImagePtrK & | im | ) |
Load an image in next available slide.
im | Image to load |
Definition at line 679 of file galleryslide.cpp.
Referenced by GallerySlideView::TransitionComplete().
void SlideBuffer::ReleaseCurrent | ( | ) |
Move head slide to back of queue and flush waiting slides.
Definition at line 701 of file galleryslide.cpp.
Referenced by GallerySlideView::TransitionComplete().
|
inline |
Definition at line 227 of file galleryslide.h.
Referenced by GallerySlideView::MenuMain(), GallerySlideView::MenuTransforms(), GallerySlideView::Pan(), GallerySlideView::PlayVideo(), GallerySlideView::ShowInfo(), GallerySlideView::ShowNextSlide(), GallerySlideView::SlideAvailable(), GallerySlideView::TransitionComplete(), and GallerySlideView::Zoom().
|
inline |
Definition at line 233 of file galleryslide.h.
Referenced by GallerySlideView::SlideAvailable().
|
signal |
Signals that buffer has (count) loaded slides awaiting display.
Referenced by GallerySlideView::Create(), and Flush().
|
privateslot |
Signal if any slides are waiting to be displayed.
slide | The slide that has loaded or being tested |
reason | Debug text describing reason for test |
Definition at line 729 of file galleryslide.cpp.
Referenced by Flush(), Initialise(), and ReleaseCurrent().
|
privateslot |
Definition at line 753 of file galleryslide.cpp.
|
protected |
Determines buffer state for debug logging.
Definition at line 633 of file galleryslide.cpp.
|
protected |
Queue protection.
Definition at line 254 of file galleryslide.h.
Referenced by BufferState(), Flush(), GetCurrent(), GetNext(), Load(), Preload(), ReleaseCurrent(), and Teardown().
|
protected |
Queue of slides.
Definition at line 256 of file galleryslide.h.
Referenced by BufferState(), Flush(), GetCurrent(), GetNext(), Initialise(), Load(), Preload(), ReleaseCurrent(), and Teardown().
|
protected |
Index of first spare slide, (or last slide if none spare)
Definition at line 257 of file galleryslide.h.
Referenced by BufferState(), Initialise(), Load(), Preload(), and ReleaseCurrent().