Skinning : définir un slideshow en arrière plan

description du manuel

Le slideshow est un contrôle de type mulitiimage. L’exemple donné est suffisant pour mettre en place ce contrôle. Le skin PM3.HD fournit un autre exemple d’utilisation mais je le trouve assez complexe.
Le chemin ‘imagepath’ à placer est un chemin relatif depuis le répertoire media.
Par contre il faut faire attention à bien renseigner la balise ‘info’, à priori avec n’importe quoi. Sinon XBMC n’enregistrera pas le chemin vers les photos.

Quelques explications :
A la lecture le skinner crée l’image :
GUIcontrolFactory.cpp
...
else if (strType == "multiimage")
{
control = new CGUIMultiImage(
parentID, id, posX, posY, width, height, texture, timePerImage, fadeTime, randomized, loop, timeToPauseAtEnd);
((CGUIMultiImage *)control)->SetInfo(texturePath);
...

La fonction setinfo() est celle qui va positionner le path :
void CGUIMultiImage::SetInfo(const CGUIInfoLabel &info)
{ m_texturePath = info;
if (m_texturePath.IsConstant())
m_currentPath = m_texturePath.GetLabel(WINDOW_INVALID);
}

((CGUIMultiImage *)control)->SetAspectRatio(aspect);
}

si la balise info est vide alors m_currentPath sera vide et il n’y aura pas de chargement des images :
void CGUIMultiImage::LoadDirectory()
{... // don't load any images if our path is empty
if (m_currentPath.IsEmpty()) return;
}

À propos de Selso

Salut ! Je m'appelle Selso. Je vis à Saint-Etienne depuis 2005. Je suis ingénieur en informatique embarquée en poste chez CIO Systèmes Embarqués.
Cette entrée a été publiée dans XBMC. Vous pouvez la mettre en favoris avec ce permalien.

Laisser un commentaire