Les Films

----- 22/09/05 -----

Présentation

Le module videos permet de diffuser des films à partir de mon PC : ils sont disponibles soit sur le disque dur, soit sous forme de DVD

Haut de la page

Ce que je veux

Le module videos doit me permettre de :

Haut de la page

Organisation des films stoqués sur disque dur

Les films disponibles sur disque dur sont soit au format divx soit au format DVD (sous forme d'un répertoire VIDEO_TS) et sont situés sur le disque F: (DSS_MEDIA) en suivant cette organisation :
F:\Movies\nom_film1.avi (pour un film encodé en divx)
F:\Movies\nom_film2\VIDEO_TS (pour un film au format DVD)

Haut de la page

 

Création de la base de données des films

Pour que Xlobby puisse afficher les films il a besoin de créer une base de données qui recense toutes les informations concernant ceux-ci. Cette base est un fichier que Xlobby maj à chaque démarrage, c'est le fichier C:\Program Files\Xlobby\databases\movies.xlm.
La création de ce fichier s'appuie sur l'utilisation de la base de données générée par le programme Ant Movie Catalog (AMC) disponible ici :

Son utilisation est intuitive, je l'utilise depuis plusieurs années et c'est vraiment un super produit et gratuit de plus : il permet entre autres de récupérer toutes les informations concernant un film, depuis le Net, affiche comprise.
Il est installé dans C:\Program Files\Ant Movie Catalog et le catalogue de mes films est le fichier C:\Program Files\Ant Movie Catalog\Catalogs\movies.amc. Nous verrons après comment la base amc est convertie en base xml

Quand j'ai commencé à utiliser AMC, Xlobby n'existait pas, et j'ai donc renseigné uniquement les champs qui m'intéressaient dans AMC. Xlobby a besoin de certaines infos pour gérer correctement les films online et offline, afin qu'il puisse fournir les bonnes informations à MPC (Media Player Classic) le lecteur utilisé pour visionner les films. Ainsi pour utiliser la manière dont je gére mes films avec Xlobby les zones suivantes dans AMC vont être utilisées et doivent être renseignées :

Les zones précédentes doivent être renseignées au moment de la saisie du film dans AMC. Les zones suivantes seront renseignées automatiquement par le script AmcToXlobby (cf ci-après) :

A chaque fois que je mets ma base amc à jour, avant d'appeler Xlobby, j'exécute le script AmcToXlobby dans AMC qui renseigne les zones Resolution, Taille et Format Video, comme décrit précédemment

Pour être utilisée avec Xlobby, la base movies.amc doit être convertie en une base Xlobby movies.xlm, pour cela Xlobby va utiliser Xant disponible ici : c'est un plugin pour Xlobby créé par badubo, on trouvera un tutoriel ici ainsi qu'une documentation dans l'archive. Une fois l'archive décompressée, on copie les fichiers Xant.dll et XAnt.ini dans C:\Program Files\Xlobby\plugins

Le fichier XAnt.ini contient les lignes suivantes : ce fichier précise l'emplacement des divers fichiers utilisés pour la conversion, comment les films seront triés et quels films seront exportés. Son contenu initial est indiqué ci-dessous :

[Movies]
input=c:\Program Files\Ant Movie Catalog\Catalogs\movies.amc
output=c:\Program Files\XlobbyFr\databases\movies.xml
images=c:\Program Files\Ant Movie Catalog\Pochettes movies\
sort=$$ITEM_ORIGINALTITLE
template=c:\Program Files\XlobbyFr\plugins\moviestemplate.xml
filters=

[Cdaudio]
input=c:\Program Files\Ant Movie Catalog\Catalogs\cdaudio.amc,audio
output=c:\Program Files\XlobbyFr\databases\cdaudio.xml
images=c:\Program Files\Ant Movie Catalog\Pochettes cdaudio\
sort=$$ITEM_ORIGINALTITLE
template=c:\Program Files\XlobbyFr\plugins\cdaudiotemplate.xml
filters=
cdrom=f:\

[Games]
input=c:\Program Files\Ant Movie Catalog\Catalogs\games.amc
output=c:\Program Files\XlobbyFr\databases\games.xml
images=c:\Program Files\Ant Movie Catalog\Pochettes games\
sort=$$ITEM_ORIGINALTITLE
template=c:\Program Files\XlobbyFr\plugins\gamestemplate.xml
filters=

[BD]
input=c:\Program Files\Ant Movie Catalog\Catalogs\bd.amc
output=c:\Program Files\XlobbyFr\databases\bd.xml
images=c:\Program Files\Ant Movie Catalog\Pochettes bd\
sort=$$ITEM_ORIGINALTITLE
template=c:\Program Files\XlobbyFr\plugins\bdtemplate.xml
filters=

Pour ma part je ne gère que mes films avec AMC, donc seule la première section m'intéresse :

[Movies]
input=c:\Program Files\Ant Movie Catalog\Catalogs\movies.amc
output=c:\Program Files\Xlobby\databases\movies.xml
images=c:\Program Files\Ant Movie Catalog\Pochettes movies\
sort=$$ITEM_ORIGINALTITLE
template=c:\Program Files\Xlobby\plugins\moviestemplate.xml
filters=
separator=/

La clef sort précise la manière dont sera triée la base movies.xml créée : par défaut elle est triée suivant le titre original du film ce qui me convient
La clef filters permet de n'inclure que ceratins films suivant des critères précisés : la laisser vide permet d'inclure tous les films
La clef separator va permettre une gestion hiérachisée des Séries TV en saisons et épisodes : on indique ici le caractère qui sera utilisé pour organiser cette hiérarchie (cf Les Séries TV)

On a une référence à un fichier moviestemplate.xml qui provient également de l'archive XAnt et qui doit aussi être copié dans C:\Program Files\Xlobby\plugins. Ce fichier précise l'association entre les champs de la base AMC (nom précédé de $$) et les champs de la base Xlobby (les balises <nom_balise>...</nom_balise>). Son contenu intial est indiqué ci-dessous :

<database>
    <sortorder>sorttitle</sortorder>
    <sortable>
        <sort>actors</sort>
        <sort>title</sort>
        <sort>sorttitle</sort>
        <sort>genre</sort>
        <sort>director</sort>
        <sort>year</sort>
        <sort>rating</sort>
        <sort>name</sort>
    </sortable>
    <template/>
    <paths>
        <path/>
    </paths>
    <item>
        <parameter>"%$$ITEM_TYPE $$ITEM_MEDIA" "$$ITEM_URL"</parameter>
        <coverart>$$ITEM_PICTUREFILENAME</coverart>
        <display>$$ITEM_TRANSLATEDTITLE</display>
        <information>
            <name>$$ITEM_ORIGINALTITLE</name>
            <title>$$ITEM_ORIGINALTITLE</title>
            <sorttitle>$$ITEM_TRANSLATEDTITLE</sorttitle>
            <director>$$ITEM_DIRECTOR</director>
            <runtime>$$ITEM_LENGTH</runtime>
            <plot>$$ITEM_DESCRIPTION</plot>
            <actors>$$ITEM_ACTORS</actors>
            <year>$$ITEM_YEAR</year>
            <genre>$$ITEM_CATEGORY</genre>
            <rating>$$ITEM_RATING/10</rating>
        </information>
    </item>
</database>

Je l'ai modifié pour l'adapter à mes besoins : cela correspond aux zones citées précédemment

<database>
    <sortorder>sorttitle</sortorder>
    <sortable>
        <sort>actors</sort>
        <sort>title</sort>
        <sort>sorttitle</sort>
        <sort>genre</sort>
        <sort>director</sort>
        <sort>year</sort>
        <sort>rating</sort>
        <sort>name</sort>
    </sortable>
    <template/>
    <paths>
        <path/>
    </paths>
    <item>
        
<parameter>$$ITEM_RESOLUTION$$ITEM_URL$$ITEM_VIDEOFORMAT</parameter>
        <coverart>$$ITEM_PICTUREFILENAME</coverart>
        
<display>$$ITEM_ORIGINALTITLE</display>
        <offline>$$ITEM_SIZE<offline>

        <information>
            <name>$$ITEM_ORIGINALTITLE</name>
            <title>$$ITEM_ORIGINALTITLE</title>
            
<sorttitle>$$ITEM_ORIGINALTITLE</sorttitle>
            <director>$$ITEM_DIRECTOR</director>
            <runtime>$$ITEM_LENGTH</runtime>
            <plot>$$ITEM_DESCRIPTION</plot>
            <actors>$$ITEM_ACTORS</actors>
            <year>$$ITEM_YEAR</year>
            <genre>$$ITEM_CATEGORY</genre>
            
<label>$$ITEM_MEDIA</label>
            <support>$$ITEM_TYPE</type>

        </information>
    </item>
</database>

Avant de continuer on prendra soin de supprimer le fichier C:\Program Files\Xlobby\databases\templates\movies.xml

Haut de la page

Utilisation et personnalisation

La gestion des films telle que le réalise le skin Xmedia2 de sagitaz ne me convient pas tout à fait surtout en ce qui concerne la gestion des films offline (ceux stockés sur CD ou DVD). Dans ce qui suit je décrirais ce que j'ai modifié pour correspondre à ma manière de gérer les films : ceci permettra ainsi de voir l'utilisation de l'éditeur de skins et la gestion des évènements

Quand on sélectionne videos à partir du menu principal, on obtient l'écran suivant :

On choisit videos dans le sous-menu qui apparait pour afficher la liste des films :

Un cadre vide correspond à une pochette manquante
Le petit rond rouge dans le coin inférieur gauche de la pochette indique un film offline
Un petit rond vert indique un film online (stocké sur le disque dur local), comme ci-dessous :

Si on sélectionne une pochette, l'écran de description du film s'affiche :

Avant de continuer je précise comment j'utilise Xlobby pour regarder mes films : quand je demande la lecture du film (avec le bouton lecture), Xlobby demande à MPC (Media Player Classic) de lire le film, qui est alors affiché dans une fenêtre incrustée dans un écran de Xlobby comme on va le voir après, mais ceci ne sert que de contrôle, le visionnage du film se faisant sur la télé ou le vidéoprojecteur de par la configuration de la carte graphique décrite ici. Ainsi, par exemple, je ne passe jamais en mode plein écran sur mon moniteur.

Le problème qui se pose quand je lance la lecture d'un film c'est comment réagir suivant que l'on a affaire à un film online ou un film offline : Xlobby (à cette date du 13/10/09) n'est pas capable de réaliser une action ou une autre en fonction d'une condition donnée (ici online/offline). J'ai donc fait le choix suivant : quand je lance la lecture du film (avec le bouton lecture) il s'affiche un écran overlay qui précise le titre du film et son support :

Puis après avoir insérer si besoin est, le CD ou le DVD, on valide, ce qui ferme l'écran overlay, et affiche l'écran contenat la fenêtre d'incrustationde MPC, celui-ci est démarré et commence la lecture du film

Dans le cas d'un film offline cela laisse le temps d'insérer le support, dans le cas d'un film online on a une validation supplémentaire à faire ce qui n'est pas une grosse contrainte, d'un autre côté cela donne une chance d'annuler la lecture du film si on s'est trompé

Voyons les modifications nécessaires pour que cela fonctionne (un bon tutorial sur le Skin Editor par M51)

Le bouton lecture est lié à un évènement comme on le voit ci-dessous (on appuie sur la touche clavier Pause/Break) dans la fenêtre du Skin Editor (Item>Event)  :

L'évènement s'appelle moviesdetails:play lié à Click Event : on va se rendre dans la fenêtre Setup (touche clavier F2) pour voir la description de cet évènement : on sélectionne Events, puis on déroule l'arborescence SKIN, puis le groupe moviesdetails, puis l'évènement play

C'est l'évènement utilisé par Xmedia2 tel que définit par sagitaz, analysons les commandes qui le composent :

goto screen

Cette commande affiche l'écran où sera incrustée la fenêtre de MPC : cet écran s'appelle moviesplay (zone Screen Name)

execute file

Cette commande lance l'exécution de MPC dont le chemin est indiqué dans la zone File : on indique à MPC de lire (argument /play) le film passé en paramètre ("%movies>parameter%") et de se fermer une fois la lecture terminée (/close), ceci est indiqué dans la zone Arguments

show overlay

Cette commande affiche l'écran overlay-moviesoffline (zone Overlay Screen Name) qui contient un message qui indique d'insérer le CD/DVD pour les films offline

wait

Cette commande permet une attente de 10 s (zone Wait (ms)) avant d'exécuter la commande suivante

close global overlay

Cette commande ferme l'écran overlay précédent

Avec cette logique, dès que l'on a appuyé sur le bouton lecture, il n'y a plus qu'à attendre le démarrage du film (en ayant insérer le CD/DVD si nécessaire à temps) : pour un film offline, si vous n'avez pas eu le temps d'insérer le CD/DVD, MPC ne trouve pas le film et indique une erreur et là on entre dans un cycle d'utilisation d'un programme informatique, ce qui n'est pas le but recherché. Pour correspondre à la logique que je veux mettre en place voici les modifications que je vais apporter à cet évènement :

L'évènement moviesdetails:play ne comporte plus que la commande show overlay qui affiche l'écran overlay-moviesoffline

Quand on appuie sur le bouton lecture voici ce que l' on obtient :

On a bien l'affichage de l'écran overlay, mais comme aucun fond ne lui a été affecté, il est transparent ce qui n'est pas très lisible. On va donc modifier cet écran pour avoir un affichage plus lisible. Pour cela on ferme l'overlay (on ne pas pas appeler le Skin Editor quand un écran overlay est affiché) et on appelle le Skin Editor (touche clavier Pause/Break) : signet Goto, on sélectionne overlay-moviesoffline

L'écran suivant est affiché :

----- 01/1005 -----

A partir d'ici j'ai fait évoluer le skin de sagitaz d'une manière personnelle

Nous allons réaliser plusieurs modifications sur cet écran : on supprime les trois boutons à gauche, ainsi que l'icône, ajout d'un fond noir sous la zone d'informations : onglet Screen/Add Button, on sélectionne une image utilisable pour un fond, j'ai choisi fond-14.png, on l'envoie en arrière-plan (Item/Default : on clique sur back), on l'ajuste à la taille de la zone :

   

Voyons ce que cela donne :

C'est mieux, mais les informations affichées ne sont pas complètes à mon goût, on ne sait pas si c'est un film online ou offline, et dans ce dernier cas où il se situe. Après avoir fermé l'overlay, on appelle le Skin Editor (touche clavier Pause/Break) pour afficher l'écran overlay-moviesoffline, on va modifier la première zone de texte pour qu'elle affiche une première ligne affichant le titre et une seconde ligne affichant le support (DD pour le disque dur local, CD pour un CD ou un DVD contenant le film au format avi et DVD pour un film au format DVD). Pour cela on sélectionne la zone, puis onglet Item/Text, dans la zone de saisie du texte on inscrit :

%movies>title%
Situé sur le %movies>support% %movies>label%

J'ai modifié la deuxième zone avec le texte ci-dessous :

Insérer si nécessaire le CD/DVD avant de faire OK

J'ai supprimé la dernière zone et j'ai modifié les labels des boutons, j'ai réarrangé l'ensemble. Voici le résultat final pour un film sur DVD :

Pour un film au format avi sur CD/DVD :

Pour un film situé sur disque dur local :

Voyons ce qui se passe quand on fait OK. Prenons le cas d'un film situé sur le disque dur local :

L'écran de visionnage du film s'affiche et MPC démarre, mais manifestement le film n'est pas lu. On va revenir sur l'écran overlay-moviesoffline et voir quel évènement est lié au bouton OK :  dans Skin Editor onglet Goto, sélection de overlay-moviesoffline, puis onglet Item/Event, dans la zone Click Event on voit l'évènement associé : moviesdetails:play offline

Voyons ce que fait cet évènement :

La commande close overlay ferme l'écran overlay-moviesoffline
La commande goto screen affiche l'écran moviesplay (dans la zone Screen Name) de visionnage du film

La commande execute file lance l'exécution de MPC (zone File)

La zone Arguments indique à MPC quel film il doit lire : dans notre cas c'est la variable parameter, telle qu'on l'a définie dans le fichier moviestemplate.xml : cette variable contient le chemin vers le film, on va donc modifier la zone en conséquence. Le paramètre /close indique à MPC de se fermer quand il a fini de lire le film : cela ne marche que pour la lecture d'un film de type avi (ou autre extension), pas pour un DVD car en fin de film il revient au menu et donc il n'y a jamais de fin. Voici la commande modifiée :

Si on fait maintenant OK, MPC s'exécute et démarre le visionnage du film : la capture d'écran ci-dessous n'est pas très révélatrice du fait mais le film se déroule bien (la vidéo n'est pas capturée), et MPC s'affiche dans une fenêtre par dessus Xlobby

Cet affichage n'est pas très satisfaisant, car on aimerait avoir l'impression d'être toujours sous Xlobby et non pas d'avoir une deuxième application à gérer : la solution existe, c'est XMoveWindow un plugin créé par badubo et qui permet l'intégration d'une fenêtre dans une zone définie de Xlobby. Après avoir téléchargé l'archive, on copie XMoveWindow.dll dans le dossier plugins de Xlobby.

Si on lance de nouveau la lecture d'un film rien n'a changé : pour déterminer où est l'erreur il faut comprendre comment fonctionne XMoveWindow avec Xlobby (cf la doc qui accompagne l'archive, le tutoriel de C-moi, celui de badubo intégrée dans le tutoriel Xlobby). On crée une zone text (onglet Screen/Add, zone Text) dans laquelle on saisie :

plugin>XMoveWindow>MediaPlayerClassicA

On va vérifier si on a le bon texte, pour cela on affiche l'écran qui contient la zone dans laquelle on va incruster la fenêtre de MPC, c'est-à-dire l'écran moviesplay : puis dans le Skin Editor, onglet Item/Text et on sélectionne la zone qui doit contenir la fenêtre de MPC :

  

On voit que la zone text contient MediaPlayerClassicW au lieu de MediaPlayerClassicA : à vrai ce n'est pas une erreur, cela dépend de la version de MPC et il se trouve que dans mon cas c'est la version MediaPlayerClassicA qui fonctionne : cette donnée c'est la classe de la fenêtre de MPC, pour la connaître on peut utiliser un produit comme Winspector ou utiliser Girder (cf ici pour voir comment récupérer cette info)

Toujours dans le Skin Editor onglet Item/Default, vérifions le contenu de la zone ID :

Elle contient moviesplay_MediaPlayerClassicW : cela correspond au nom de l'écran (moviesplay) suivi du caractère '_' puis le nom de la classe de la fenêtre MPC, qui dans mon cas doit être MediaPlayerClassicA

Il n'y a plus qu'à essayer : si les modifications n'ont pas l'air de marcher, supprimez la zone et créé la à partir de zéro. Le démarrage de la lecture du film donne maintenant l'écran suivant :

La fenêtre de MPC s'est bien incrustée dans la zone qu'on lui a réservée : il reste encore des affichages incorrectes, au-dessus (affichage du titre) de la zone et au-dessous (affichage du temps passé, du temps restant et de la barre de progression), ceci est rélalisé par le plugin Xmpc de badubo (infos ici et doc ici). Après décompression on copie mpcinfo.dll et XMpc.dll dans le dossier plugins de Xlobby, on a également les deux images xmpc.png et xmpc_bkgrnd.png à copier pour la barre de progression (on peut en choisir d'autres, mais en les nommant pareil). Maintenant les données s'affichent correctement :

Il convient de noter que la version que j'utilise de MPC (version 6.4.8.4 au moment où j'écris ces lignes) ne retournent pas ces infos quand il s'agit de la lecture d'un DVD.
Je suis également intervenu sur les paramètres de MPC pour qu'il n'affiche que la zone de visionnage (cf la page MPC pour sa configuration)

Revenons à l'écran Movies : il comporte un bouton chercher qui fonctionne de la même manière que pour la musique : voir l'utilisation ici pour la musique. On a également trois autres boutons, series tv, mangas et videos : l'évènement associé à series tv est movies:series tv :

Comme on le voit l'évènement consiste à positionner une nouvelle base, serietv, ce qui suppose d'avoir au préalable une base correspondante AMC, de même le bouton mangas positionne la base mangas. Le bouton videos réagit différemment : il affiche un nouvel écran qui affiche la liste des vidéos personnelles situées sur disque dur. Le principe d'avoir plusieurs bases de films ne me convient pas, je préfère n'avoir qu'une seule base et trouver un moyen pour extraire les infos de cette base unique.

Nous allons créer pour chaque catégories de films que nous désirons afficher, un évènement correspondant : personnellement j'ai créé dans un premier temps un évènement pour afficher les séries télé, movies:series tv, et un évènement pour afficher les films d'animations, movies:animation, ceci dans le groupe movies qui correspond aux évènements de l'écran movies :

Cela suppose naturellement que lors de la saisie de ces catégories de films dans AMC on renseigne bien la zone Catégorie avec Serie TV et Animation respectivement. J'en ai profité pour changer le label du bouton mangas en Animation

Voici un exemple d'écran movies après sélection du bouton Animation :

Haut de la page

Les Séries TV : première version

Les informations qui suivent sont décrites dans le tutorial d''ingalls et dans la doc de XAnt, je n'ai fait que mettre en oeuvre la procédure en l'adaptant à mes choix personnels

Dans la gestion actuelle, chaque épisode d'une saison s'affiche avec une pochette : quand on sélectionne le bouton Séries TV on obtient

Ce qui donne pour une série comme Buffy environ 150 pochettes, ce qui ne facilite pas la recherche. On va donc organiser les Séries TV en saisons et épisodes, pour cela on va renseigner dans AMC, le champ Titre original comme suit :

Buffy comtre les vampires/Saison 1/Episode 1 - Bienvenue à Sunnydale 1

et ceci pour chaque épisode (on a pris ici comme exemple l'épisode 1 de la saison 1). D'autre part on crée dans AMC une fiche générale avec dans le champ Titre original le nom de la série, dans notre cas "Buffy contre les vampires", et l'on crée également pour chaque saison une fiche avec dans le champ Titre original :

Buffy comtre les vampires/Saison 1

Le caractère '/' est celui que l'on a défini ici. Après redémarrage de Xlobby (et donc maj de la base xml) on obtient :

L'ensemble de la série se réduit maintenant à une seule pochette (dans l'exemple seules les séries Alias et Buffy ont été organisées). Si on sélectionne la pochette de Buffy on obtient l'affichage des pochettes correspondant aux saisons :

Ici seules deux saisons ont été traitées et les pochettes sont identiques (il faudra que j'y remédie). Si on sélectionne la pochette d'une saison il y a affichage des épisodes de la saison :

On a de nouveau un petit problème : comme c'est le même écran qui est utilisé, donc la même catégorie (la zone où s'affiche les pochettes), l'affichage défini au moment de la création de la catégorie reste le même et ne peut être changé, il s'affiche donc pour chaque épisode la pochette qu'on lui a affectée, en générale c'est celle de la saison correspondante. Personnellement je préfèrerai voir s'afficher la liste des épisodes sous forme de texte ce qui facilitera le repérage d'un épisode précis. Quand on sélectionne enfin un épisode donné, on a l'affichage des infos concernant cet épisode comme n'importe quel film :

Haut de la page

Les Séries TV : deuxième version

J'ai modifié le comportement de la gestion des séries TV afin d'être conforme au souhait précédemment exprimé, c'est-à-dire avoir la liste des épisodes sons forme d'une liste. Pour cela on va mettre en oeuvre des écrans différents pour l'affichage des séries TV d'une part et deux bases de films, une pour tous les films sauf les séries TV et une pour les séries TV, d'autre part.
Pour créer ces deux bases j'ai modifé le fichier XAnt.ini comme suit :

[Movies]
input=c:\Program Files\Ant Movie Catalog\Catalogs\movies.amc
output=c:\Program Files\Xlobby\databases\movies.xml
images=c:\Program Files\Ant Movie Catalog\Pochettes movies\
sort=$$ITEM_ORIGINALTITLE
template=c:\Program Files\Xlobby\plugins\moviestemplate.xml
filters=!$$ITEM_CATEGORY(Série TV)

[SeriesTV]
input=c:\Program Files\Ant Movie Catalog\Catalogs\movies.amc
output=c:\Program Files\Xlobby\databases\seriestv.xml
images=c:\Program Files\Ant Movie Catalog\Pochettes movies\
sort=$$ITEM_ORIGINALTITLE
template=c:\Program Files\Xlobby\plugins\seriestemplate.xml
filters=$$ITEM_CATEGORY(Série TV)
separator=/

J'ai créé la section SeriesTV pour créer la base seriestv.xml : dans la section Movies la ligne filter permet d'inclure dans la base movies.xml tous les films sauf (caractère '!' en début) ceux dont le champ Catégorie contient  Série TV. Dans la section SeriesTV la ligne filter permet d'inclure dans la base seriestv.xml tous les films dont le champ Catégorie contient Série TV.
Il est important de respecter l'orthographe : 'Série TV' n'est pas identique à 'Serie TV'. La clé template fait référence au fichier seriestvtemplate.xml

Puis j'ai créé le fichier seriestvtemplate.xml à partir du fichier moviestemplate.xml :

<database>
    <sortorder>sorttitle</sortorder>
    <sortable>
        <sort>actors</sort>
        <sort>title</sort>
        <sort>sorttitle</sort>
        <sort>genre</sort>
        <sort>director</sort>
        <sort>year</sort>
        <sort>rating</sort>
        <sort>name</sort>
    </sortable>
    <template/>
    <paths>
        <path/>
    </paths>
    <item>
        <parameter>$$ITEM_RESOLUTION$$ITEM_URL$$ITEM_VIDEOFORMAT</parameter>
        <coverart>$$ITEM_PICTUREFILENAME</coverart>
        <display>$$ITEM_ORIGINALTITLE</display>
        <offline>$$ITEM_SIZE<offline>
        <information>
            <name>$$ITEM_ORIGINALTITLE</name>
            <title>$$ITEM_ORIGINALTITLE</title>
            <sorttitle>$$ITEM_ORIGINALTITLE</sorttitle>
            
<serie>$$ITEM_TRANSLATEDTITLE</serie>
            <episode>$$ITEM_COMMENTS</episode>

            <director>$$ITEM_DIRECTOR</director>
            <runtime>$$ITEM_LENGTH</runtime>
            <plot>$$ITEM_DESCRIPTION</plot>
            <actors>$$ITEM_ACTORS</actors>
            <year>$$ITEM_YEAR</year>
            <genre>$$ITEM_CATEGORY</genre>
            <label>$$ITEM_MEDIA</label>
            <support>$$ITEM_TYPE</type>
        </information>
    </item>
</database>

Dans le fichier on voit que j'ai associé une première variable Xlobby serie avec l'élément $$ITEM_TRANSLATEDTITLE qui correspond à la zone Titre traduit de AMC : pour les fiches où la zone Titre original contient nom_de_la_série/Saison n° on mettra nom_de_la_série, pour les fiches où la zone Titre original contient nom_de_la_série/Saison n°/nom_épisode on mettra nom_de_la_série/Saison n°. Une seconde variable Xlobby episode est associée à l'élément $$ITEM_COMMENTS qui correspond à la zone Commentaires de AMC : pour les fiches où la zone Titre original contient nom_de_la_série/Saison n°/nom_épisode on mettra nom_episode

On supprime la base movies.xml actuelle, puis on redémarre Xlobby, et on constate la création des deux bases :

Nous allons maintenant créer un nouvel écran seriestv qui sera affiché par la sélection du bouton Séries TV de l'écran movies : pour le réaliser nous allons partir de l'écran movies, puis Skin Editor, onglet Screen/Add, dans la zone New Screen on saisit seriestv, puis on clique sur Clone :

Une fois créé l'écran est affiché (ça ne se voit pas car c'est le même que celui affiché précedemment) : Skin Editor, onglet Item/Text on change la zone texte contenant le titre de l'écran en Séries TV, onglet Item/Category on change le nom de la categorie associée à la zone d'affichage des pochettes en seriestv :

Puis onglet Item/Category/Database on change la database associée en seriestv :

On supprime les zones d'infos au dessus de la zone d'affichage des pochettes : ce qui est affiché est relatif au nombre total d'épisodes de l'ensembles des séries TV ce qui est perturbant. Par contre il faut modifier la zone dessous qui affiche le titre de la série : onglet Item/Text, dans l'expression on remplace movies par seriestv :

De même il faut modifier le texte du bouton indiquant sur quelle page on se situe par rapport au nombre total de page : remplacement de movies par seriestv

On modifie ensuite les évènements associés aux boutons qui permettent d'aller à la page précédente et à la page suivante : on a besoin pour cela de créer les évènements seriestv:page precedente et seriestv:page suivante. On crée d'abord un groupe seriestv correspondant à l'écran seriestv et qui regroupera tous les évènements associés à cet écran :

On peut maintenant associé ces évènements aux boutons de changement de page : Skin Editor, onglet Item/Event zone Click Event

On ne va laisser que les boutons suivant : les boutons de changement de page, un bouton Retour qui permet de revenir à l'écran Films (anciennement Movies) et un bouton Menu qui permet de revenir au menu principal. Il faudra d'abord créer les évènements associés : pour l'évènement seriestv:menu le paramètre de la commande goto screen est menu, pour l'évènement seriestv:retour le paramètre de la commande goto screen est movies, la commande reset avec comme paramètre seriestv permet de réinitialiser le filtrage de la base seriestv pour le prochain affichage, cette commande reset doit également être présente dans l'évènement seriestv:menu :

Dans l'écran Films (anciennement movies) on va modifier l'évènement movies:series tv associé au bouton Séries TV pour qu'il affiche l'écran correspondant, on y associe l'évènement movies:series tv ce qui affiche l'écran :

On a bien affichage d'une pochette correspondant à la série complète. On va créer maintenant l'écran seriestvsaisons qui affiche les saisons d'une série sélectionnée. Pour le réaliser on va partir de l'écran seriestv que l'on va cloner. Cet écran comportera une zone d'affichage des pochettes des saisons de la série et les mêmes type de boutons que sur l'écran précédent.

L'écran seriestvsaisons sera affiché quand on va cliquer sur une pochette de la série sélectionnée : pour cela on va créer l'évènement seriestv:goto seriestvsaisons que l'on va associer à la catégorie seriestv de l'écran seriestv : on a une commande goto screen avec comme paramètre seriestvsaisons

Ensuite on crée les évènements associés aux boutons de l'écran seriestvsaisons en les regroupant dans un groupe seriestvsaisons, puis on associe les boutons aux évènements créés :

La commande back dans l'évènement retour permet de remonter d'un niveau dans le filtrage de la base de données seriestv, ce qui permet de réafficher l'ensemble des séries sur l'écran seriestv.
Une fois tout cela en place l'affichage de l'écran seriestv donne cela :

Les pochettes correspondant aux saisons s'affichent. Au dessus s'affiche le nom de la série : pour cela il faut renseigner cette zone avec le Skin Editor, onglet Item/Text avec le contenu suivant :

category>seriestv>serie

Il s'agit maintenant de réaliser l'étape suivante : quand on sélectionne une saison on va afficher un écran qui liste les épisodes de la saison. On crée un écran seriestvepisodes el clonant l'écran seriestvsaisons : pour cela on va créer l'évènement seriestvsaisons:goto seriestvepisodes que l'on va associer à la catégorie seriestv de l'écran seriestvsaisons : on a une commande goto screen avec comme paramètre seriestvepisodes

Ensuite on crée les évènements associés aux boutons de l'écran seriestvepisodes en les regroupant dans un groupe seriestvepisodes, puis on associe les boutons aux évènements créés : ce sont les mêmes types d'évènements que pour l'écran seriestvsaisons
Quand on sélectionne la pochete d'une saison on obtient l'affichage suivant :

Pour obtenir cet affichage en liste on va apporter les modifications suivantes à la catégorie qui affiche cette liste :

Dans la zone Info Screen on met le nom de l'écran qui va afficher le détail d'un épisode : ici seriestvepisodes
Dans la zone Display : %episode% qui permet l'affichage du nom de l'épisode
Dans la zone Columns : 1
Dans la zone Rows : le plus grand possible pour afficher un maximum de lignes
Onglet Layout : nocover default

 

Onglet Display : on clique sur le bouton Online, dans la fenêtre CategoryDisplay, onglet Image, on clique sur Remove
On fait la même chose en cliquant sur le bouton Offline
Ceci permet de supprimer l'indicateur Online/Offline qui dans un affichage en liste est plutôt perturbant

On crée ensuite l'écran seriestvdetails d'affichage d'un épisode que l'on affiche en sélectionnant un épisode de la liste : on va pour cela cloner l'écran moviesdetails :

Il faut ensuite créer les évènements associés à cet écran dans un groupe seriestvdetails :

L'évènement seriestvdetails:play (associé au bouton lecture de l'écran seriestvdetails) affiche l'écran overlay-seriestvoffline (que l'on va créer en clonant l'écran overlay-moviesoffline)

Ne pas oublier de remplacer movies par seriestv dans la zone d'affichage des informations sur le film dans l'écran overlay_seriestvoffline

La commande goto screen de l'évènement seriestvdetails:play offline associé au bouton OK de l'écran overlay-seriestvoffline, affiche l'écran seriestvplay (que l'on créer en clonant l'écran moviesplay) qui permet le visonnage du film :

La commande execute file de l'évènement seriestvdetails:play offline associé au bouton OK de l'écran overlay-seriestvoffline, lance l'exécution du lecteur vidéo MPC

On a également créé un groupe seriestvplay pour regrouper les évènements associés à l'écran seriestvplay :

La commande send message permet d'envoyer un message à MPC pour qu'il se ferme quand on quitte l'écran seriestvplay

Haut de la page

----- 30/11/2005 -----

Nouvelle présentation de l'écran Films

J'ai modifié l'écran Films afin qu'il présente directement l'accés aux différentes catégories de films qui existent dans ma base AMC d'origine : il se présente comme cela (j'ai mis à droite l'ancien écran)

  

Je trouve cela pratique surtout dans le cadre d'une utilisation avec un écran tactile. Voyons les modifications apportées par rapport à l'écran précédent.
Pour chaque catégorie de films on trouve un bouton qui va afficher les films de la catégorie correspondante. L'évènement associé à chaque bouton est du type :

La commande reset permet de réinitialiser la base de films, sinon lorque l'on change de catégorie on affiche le même numéro de page que la catégorie précédemment affichée, au lieu d'afficher la première page
La commande custom search permet d'indiquer la catégorie en précisant pour le champ Field la valeur genre et pour le champ Value la catégorie
Les deux commandes suivantes next page et previous page sont en réalité un truc qui permet d'afficher la catégorie dans la zone supérieure de l'écran dès que l'on sélectionne le bouton de la catégorie, sinon il faut attendre de passer sur une pochette d'un film pour voir apparaître cette information

La zone supérieure de l'écran comprend deux lignes : sur la première ligne on affiche la catégorie du film sélectionné, elle est constituée de deux zones collées, la première comprend le texte :

Films/

la seconde zone comprend le texte :

category>movies>genre

La deuxième ligne affiche le titre du film sélectionné, elle est constituée d'une zone qui comprend le texte :

category>movies>display

Haut de la page

[Up]