Exemplo funcional de jukebox.xml, com apenas dois filmes para facilitar a visualização:
<?xml version="1.0" encoding="UTF-8"?>
<Jukebox>
<Path></Path>
<Temp>/tmp/</Temp>
<Category>
<background>/usr/local/etc/srjg/background.jpg</background>
<title>JUKEBOX</title>
<link>Jukebox.rss</link>
<alt_background>"background.jpg"</alt_background>
<alt_title>"Kids Movies"</alt_title>
<alt_link>"Jukebox.rss"</alt_link>
<MovieInfo_Template>MovieInfo_Template.rss</MovieInfo_Template>
<MovieInfo_RSS>MovieInfo.rss</MovieInfo_RSS>
</Category>
<Movie>
<id>1</id>
<title>filme1</title>
<poster>/tmp/hdd/volumes/HDD1/filmes/Primeiro Filme/folder.jpg</poster>
<info>/tmp/hdd/volumes/HDD1/filmes/Primeiro Filme/about.jpg</info>
<file>/tmp/hdd/volumes/HDD1/filmes/Primeiro Filme/filme1.avi</file>
</Movie>
<Movie>
<id>2</id>
<title>filme2</title>
<poster>/tmp/hdd/volumes/HDD1/filmes/SegundoFilme/folder.jpg</poster>
<info>/tmp/hdd/volumes/HDD1/filmes/SegundoFilme/about.jpg</info>
<file>/tmp/hdd/volumes/HDD1/filmes/SegundoFilme/filme2.avi</file>
</Movie>
</Jukebox>
O conteúdo de TITLE é extraído do nome do AVI e é o que será exibido na parte inferior da tela quando o respectivo thumbnail estiver selecionado na MovieWall.
Eu não lembro de onde vem <alt_title>"Kids Movies"</alt_title>
Exemplo de arquivo Jukebox.rss que funciona:
(aparentemente a única coisa que precisa ser editada é a sexta linha)
<?xml version="1.0" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<onEnter>showIdle();</onEnter>
<script>
Jukebox = "/tmp/hdd/volumes/HDD1/filmes/jukebox.xml";
Jukebox_ok = loadXMLFile(Jukebox);
if (Jukebox_ok == null) {
Jukebox_itemSize = 0;
print("Load Jukebox fail ", Jukebox);
}
else {
Jukebox_itemSize = getXMLElementCount("Jukebox", "Movie");
print("Jukebox Item Size = ", Jukebox_itemSize);
}
if (Jukebox_itemSize > 0) {
Jukebox_Path = getXMLText("Jukebox", "Path");
Jukebox_Temp = getXMLText("Jukebox", "Temp");
Category_Title = getXMLText("Jukebox", "Category", "title");
Category_Background =Jukebox_Path + getXMLText("Jukebox", "Category", "background");
Category_RSS =Jukebox_Path + getXMLText("Jukebox", "Category", "link");
MovieInfo_Template =Jukebox_Path + getXMLText("Jukebox", "Category", "MovieInfo_Template");
MovieInfo_RSS = Jukebox_Temp + getXMLText("Jukebox", "Category", "MovieInfo_RSS");
count=0;
while(1) {
Movie_ID = getXMLText("Jukebox", "Movie", count, "id");
Movie_Title = getXMLText("Jukebox", "Movie", count, "title");
Movie_Poster = Jukebox_Path + getXMLText("Jukebox", "Movie", count, "poster");
Movie_Info = Jukebox_Path + getXMLText("Jukebox", "Movie", count, "info");
Movie_File = Jukebox_Path + getXMLText("Jukebox", "Movie", count, "file");
Movie_ID_Array = pushBackStringArray(Movie_ID_Array, Movie_ID);
Movie_Title_Array = pushBackStringArray(Movie_Title_Array, Movie_Title);
Movie_Poster_Array = pushBackStringArray(Movie_Poster_Array, Movie_Poster);
Movie_Info_Array = pushBackStringArray(Movie_Info_Array, Movie_Info);
Movie_File_Array = pushBackStringArray(Movie_File_Array, Movie_File);
count += 1;
if (count > Jukebox_itemSize) {
break;
}
}
}
setFocusItemIndex(0);
Current_Item_index=0;
</script>
<mediaDisplay
name=photoView
rowCount=2
columnCount=6
imageFocus=null
showHeader=no
showDefaultInfo=no
drawItemBorder=no
viewAreaXPC=0
viewAreaYPC=0
viewAreaWidthPC=100
viewAreaHeightPC=100
itemGapXPC=0.7
itemGapYPC=1
itemWidthPC=14.06
itemHeightPC=35.42
itemOffsetXPC=5.5
itemOffsetYPC=12.75
itemBorderPC=0
itemBorderColor=7:99:176
itemBackgroundColor=-1:-1:-1
sideTopHeightPC=0
sideBottomHeightPC=0
bottomYPC=100
idleImageXPC=67.81
idleImageYPC=89.17
idleImageWidthPC=4.69
idleImageHeightPC=4.17
backgroundColor=-1:-1:-1
>
<idleImage> image/POPUP_LOADING_01.png </idleImage>
<idleImage> image/POPUP_LOADING_02.png </idleImage>
<idleImage> image/POPUP_LOADING_03.png </idleImage>
<idleImage> image/POPUP_LOADING_04.png </idleImage>
<idleImage> image/POPUP_LOADING_05.png </idleImage>
<idleImage> image/POPUP_LOADING_06.png </idleImage>
<idleImage> image/POPUP_LOADING_07.png </idleImage>
<idleImage> image/POPUP_LOADING_08.png </idleImage>
<backgroundDisplay>
<image redraw="no" offsetXPC="0" offsetYPC="0" widthPC="100" heightPC="100">
<script>
print(Category_Background);
</script>
</image>
</backgroundDisplay>
<text redraw="no" align="center" offsetXPC="2.5" offsetYPC="3" widthPC="90" heightPC="10" fontSize="20" backgroundColor="-1:-1:-1" foregroundColor="192:192:192">
<script>
print(Category_Title);
</script>
</text>
<onUserInput>
<script>
userInput = currentUserInput();
Current_Item_index=getFocusItemIndex();
Max_index = (-1 + Jukebox_itemSize);
Prev_index = (-1 + Current_Item_index);
Next_index = (1 + Current_Item_index);
Prev10_index = (-10 + Current_Item_index);
Next10_index = (10 + Current_Item_index);
if (userInput == "pageup" && Current_Item_index > 9) {
setFocusItemIndex(Prev10_index);
"true";
redrawDisplay();
} else if (userInput == "pagedown" && Current_Item_index < (Max_index - 9)) {
setFocusItemIndex(Next10_index);
"true";
redrawDisplay();
} else if (userInput == "left") {
"false";
} else if (userInput == "right" && Current_Item_index > (Max_index - 5)) {
"true";
redrawDisplay();
} else if (userInput == "enter") {
Current_Movie_Link=getStringArrayAt(Movie_rss_Array , Current_Item_index);
writeStringToFile(Jukebox_Temp+"Current_Movie_Link", Current_Item_index);
Current_Movie_Title=getStringArrayAt(Movie_Title_Array , Current_Item_index);
writeStringToFile(Jukebox_Temp+"Current_Movie_Title", Current_Movie_Title);
Current_Movie_File=getStringArrayAt(Movie_File_Array , Current_Item_index);
writeStringToFile(Jukebox_Temp+"Current_Movie_File", Current_Movie_File);
Current_Movie_Info=getStringArrayAt(Movie_Info_Array , Current_Item_index);
writeStringToFile(Jukebox_Temp+"Current_Movie_Info", Current_Movie_Info);
MovieInfo="";
MovieInfo=pushBackStringArray(MovieInfo, "<?xml version='1.0' encoding='UTF-8' ?>");
MovieInfo=pushBackStringArray(MovieInfo, "<rss version='2.0' xmlns:dc='http://purl.org/dc/elements/1.1/' > ");
MovieInfo=pushBackStringArray(MovieInfo, "<onEnter>showIdle();</onEnter> ");
MovieInfo=pushBackStringArray(MovieInfo, "<mediaDisplay name='onePartView' ");
MovieInfo=pushBackStringArray(MovieInfo, "itemBackgroundColor='0:0:0' ");
MovieInfo=pushBackStringArray(MovieInfo, "backgroundColor='0:0:0' ");
MovieInfo=pushBackStringArray(MovieInfo, "sideColorBottom='0:0:0' ");
MovieInfo=pushBackStringArray(MovieInfo, "sideColorTop='0:0:0' ");
MovieInfo=pushBackStringArray(MovieInfo, "sideTopHeightPC='0' ");
MovieInfo=pushBackStringArray(MovieInfo, "sideBottomHeightPC='0' ");
MovieInfo=pushBackStringArray(MovieInfo, "itemGap='0' ");
MovieInfo=pushBackStringArray(MovieInfo, "itemGapXPC='0' ");
MovieInfo=pushBackStringArray(MovieInfo, "itemGapYPC='0' ");
MovieInfo=pushBackStringArray(MovieInfo, "itemWidthPC='9' ");
MovieInfo=pushBackStringArray(MovieInfo, "itemHeightPC='5.7' ");
MovieInfo=pushBackStringArray(MovieInfo, "itemBorderPC='0' ");
MovieInfo=pushBackStringArray(MovieInfo, "rowCount='1' ");
MovieInfo=pushBackStringArray(MovieInfo, "columnCount='1' ");
MovieInfo=pushBackStringArray(MovieInfo, "itemPerPage='1' ");
MovieInfo=pushBackStringArray(MovieInfo, "imageBorderPC='0' ");
MovieInfo=pushBackStringArray(MovieInfo, "itemBorderColor='-1:-1:-1' ");
MovieInfo=pushBackStringArray(MovieInfo, "itemImageWidthPC='0' ");
MovieInfo=pushBackStringArray(MovieInfo, "itemImageHeightPC='0' ");
MovieInfo=pushBackStringArray(MovieInfo, "itemXPC='100' ");
MovieInfo=pushBackStringArray(MovieInfo, "itemYPC='100' ");
MovieInfo=pushBackStringArray(MovieInfo, "centerHeightPC='100' ");
MovieInfo=pushBackStringArray(MovieInfo, "showHeader='no' ");
MovieInfo=pushBackStringArray(MovieInfo, "showDefaultInfo='no' ");
MovieInfo=pushBackStringArray(MovieInfo, "idleImageWidthPC='9' ");
MovieInfo=pushBackStringArray(MovieInfo, "idleImageHeightPC='16' ");
MovieInfo=pushBackStringArray(MovieInfo, "> ");
MovieInfo=pushBackStringArray(MovieInfo, "<idleImage> image/POPUP_LOADING_01.png </idleImage> ");
MovieInfo=pushBackStringArray(MovieInfo, "<idleImage> image/POPUP_LOADING_02.png </idleImage> ");
MovieInfo=pushBackStringArray(MovieInfo, "<idleImage> image/POPUP_LOADING_03.png </idleImage> ");
MovieInfo=pushBackStringArray(MovieInfo, "<idleImage> image/POPUP_LOADING_04.png </idleImage> ");
MovieInfo=pushBackStringArray(MovieInfo, "<idleImage> image/POPUP_LOADING_05.png </idleImage> ");
MovieInfo=pushBackStringArray(MovieInfo, "<idleImage> image/POPUP_LOADING_06.png </idleImage> ");
MovieInfo=pushBackStringArray(MovieInfo, "<idleImage> image/POPUP_LOADING_07.png </idleImage> ");
MovieInfo=pushBackStringArray(MovieInfo, "<idleImage> image/POPUP_LOADING_08.png </idleImage> ");
MovieInfo=pushBackStringArray(MovieInfo, "<backgroundDisplay> ");
MovieInfo=pushBackStringArray(MovieInfo, "<image offsetXPC='0' offsetYPC='0' widthPC='100' heightPC='100' > ");
MovieInfo=pushBackStringArray(MovieInfo, Current_Movie_Info);
MovieInfo=pushBackStringArray(MovieInfo, "</image> ");
MovieInfo=pushBackStringArray(MovieInfo, "</backgroundDisplay> ");
MovieInfo=pushBackStringArray(MovieInfo, "<onUserInput>");
MovieInfo=pushBackStringArray(MovieInfo, "<script> ");
MovieInfo=pushBackStringArray(MovieInfo, "userInput = currentUserInput();");
MovieInfo=pushBackStringArray(MovieInfo, "if (userInput == &quot;left&quot;) {&quot;true&quot;; } else if (userInput == &quot;right&quot;) {&quot;true&quot;; }");
MovieInfo=pushBackStringArray(MovieInfo, "</script> ");
MovieInfo=pushBackStringArray(MovieInfo, "</onUserInput>");
MovieInfo=pushBackStringArray(MovieInfo, "<itemDisplay> ");
MovieInfo=pushBackStringArray(MovieInfo, "<image offsetXPC='0' offsetYPC='0' widthPC='100' heightPC='100' > ");
MovieInfo=pushBackStringArray(MovieInfo, "<script> ");
MovieInfo=pushBackStringArray(MovieInfo, "if(getItemInfo(&quot;Info&quot;) == &quot;PLAY&quot;) ");
MovieInfo=pushBackStringArray(MovieInfo, "if(getDrawingItemState() == &quot;focus&quot;) { ");
MovieInfo=pushBackStringArray(MovieInfo, "&quot;" + Jukebox_Path + "Yamj_play_selected.png" + "&quot;; ");
MovieInfo=pushBackStringArray(MovieInfo, "} else { ");
MovieInfo=pushBackStringArray(MovieInfo, "&quot;" + Jukebox_Path + "Yamj_play_selected.png" + "&quot;; ");
MovieInfo=pushBackStringArray(MovieInfo, "} ");
MovieInfo=pushBackStringArray(MovieInfo, "</script> ");
MovieInfo=pushBackStringArray(MovieInfo, "</image> ");
MovieInfo=pushBackStringArray(MovieInfo, "<text offsetXPC='20' offsetYPC='0' widthPC='100' heightPC='100' backgroundColor='-1:-1:-1' fontSize='15'> ");
MovieInfo=pushBackStringArray(MovieInfo, "<script>getItemInfo(&quot;Info&quot;);</script> ");
MovieInfo=pushBackStringArray(MovieInfo, "<foregroundColor> ");
MovieInfo=pushBackStringArray(MovieInfo, "<script> ");
MovieInfo=pushBackStringArray(MovieInfo, "if(getDrawingItemState() == &quot;focus&quot;) &quot;192:192:0&quot;; else &quot;101:101:101&quot;; ");
MovieInfo=pushBackStringArray(MovieInfo, "</script> ");
MovieInfo=pushBackStringArray(MovieInfo, "</foregroundColor> ");
MovieInfo=pushBackStringArray(MovieInfo, "</text> ");
MovieInfo=pushBackStringArray(MovieInfo, "</itemDisplay> ");
MovieInfo=pushBackStringArray(MovieInfo, "</mediaDisplay> ");
MovieInfo=pushBackStringArray(MovieInfo, "<channel> ");
MovieInfo=pushBackStringArray(MovieInfo, "<title>Movies</title> ");
MovieInfo=pushBackStringArray(MovieInfo, "<link>rss_file://" + MovieInfo_RSS+"</link> ");
MovieInfo=pushBackStringArray(MovieInfo, "<menu>main menu</menu> ");
MovieInfo=pushBackStringArray(MovieInfo, "<item> ");
MovieInfo=pushBackStringArray(MovieInfo, "<title>"+ Current_Movie_Title+ "</title> ");
MovieInfo=pushBackStringArray(MovieInfo, "<Info>PLAY</Info> ");
MovieInfo=pushBackStringArray(MovieInfo, "<media:thumbnail url='" + Jukebox_Path + "Yamj_play_selected.png' width='0' height='0' /> ");
MovieInfo=pushBackStringArray(MovieInfo, "<enclosure url='"+Current_Movie_File + "' /> ");
MovieInfo=pushBackStringArray(MovieInfo, "</item> ");
MovieInfo=pushBackStringArray(MovieInfo, "</channel> ");
MovieInfo=pushBackStringArray(MovieInfo, "</rss> ");
writeStringToFile(MovieInfo_RSS, MovieInfo);
jumpToLink("moviesheet");
"false";
}
</script>
</onUserInput>
<!-- Show Folder Name -->
<text offsetXPC=7 offsetYPC=88.8 widthPC=60 heightPC=5 fontSize=14 useBackgroundSurface=yes foregroundColor=195:196:195 redraw=yes lines=1>
<script>
displayTitle=getStringArrayAt(Movie_Title_Array , -1);
displayTitle;
</script>
</text>
<!-- Show Page Info -->
<text offsetXPC=85 offsetYPC=88.8 widthPC=8 heightPC=5 fontSize=14 foregroundColor=195:196:195 useBackgroundSurface=yes redraw=yes lines=1>
<script>
pageInfo = Add(getFocusItemIndex(),1) + "/" + Jukebox_itemSize;
pageInfo;
</script>
</text>
<itemDisplay>
<!-- Bottom Layer focus/unfocus -->
<image offsetXPC=0 offsetYPC=0 widthPC=100 heightPC=100>
<script>
if (getDrawingItemState() == "focus")
{
"/usr/local/etc/srjg/focus.png";
}
else
{
"/usr/local/etc/srjg/unfocus.png";
}
</script>
</image>
<!-- Top Layer folder.jpg -->
<image offsetXPC=8.2 offsetYPC=5.5 widthPC=84.25 heightPC=89.25>
<script>
thumbnailPath = getStringArrayAt(Movie_Poster_Array , -1);
thumbnailPath;
</script>
</image>
</itemDisplay>
</mediaDisplay>
<moviesheet>
<link>
<script>
print("rss_file://"+MovieInfo_RSS);
</script>
</link>
</moviesheet>
<channel>
<title><script>Category_Title;</script></title>
<link><script>Category_RSS;</script></link>
<itemSize><script> Jukebox_itemSize;</script></itemSize>
</channel>
</rss>