iPod Software, iPod Backup, iTunes Alternative, iPod Copy and iPod Transfer for iPod 1G 2G 3G 4G 5G Generations, iPod mini, iPod shuffle, iPod nano, iPod photo, and iPod video software.
   Saturday, July 5th, 2008 Notmad Explorer  |  Store  |  Support  |  Club Red  |  About Us   


[ Home < Registered User Support < Technical Support < OmniTome ]


The Notmad OmniTome


Prev Contents

Section 11. Xtreamer Skins (formerly known as Xtreamer Skins)

This section explains how to create your own custom skins for Notmad Xtreamer.


11.1 It's Easy!Prev Contents

An Xtreamer skin is simply a bunch of HTML pages grouped together into a folder. That's it. The only difference from normal webpages you would make is a few Xtreamer-specific tags that you mix in to generate content from your Jukebox.

We've specifically redesigned the skin system to be as simple and unintrusive as possible while still being powerful enough to let you express your creativity. If you know how to make a web page using HTML, it should take you less than 5 minutes to create your first skin.


11.2 Hello, World!Prev Contents

Let's start by creating your first Xtreamer skin. First open up the following folder on your harddisk:

C:\Program Files\Red Chair Software\Notmad Explorer\skins
In this folder, create a subfolder called myfirstskin so you'll have:
C:\Program Files\Red Chair Software\Notmad Explorer\skins\myfirstskin

Inside your new folder, create a plain text file called index.html containing the text "Hello, World!". When writing pages for Xtreamer skins, you can use any text or web page editor like Notepad or FrontPage.

Now you're ready to view your new skin! Make sure your Jukebox is connected. Right click on the systray icon and select "Notmad Manager Options...". Go to the "Xtreamer HTTP Options" tab, and in the "Skin" drop-down box, select "myfirstskin", and then click "Ok". Right click on the systray icon again and select "Browse Notmad Xtreamer...". Your browser should now display your first Xtreamer skin, a white page with the words "Hello, World!"! Congratulations!


11.3 Fast Track: From Barebones to Full-Fledged SkinPrev Contents

At this point, you have a choice in how to proceed. If you have experience with HTML or even PHP or ASP, you could immediately begin building a full-fledged skin using our sample skin. Alternatively, you could skip to the next section, "11.4 Introducing Xtreamer Tags" to get a more formal introduction on the Xtreamer skinning system, and then come back to this section later.

If you want to dive right in, go to the Xtreamer skins directory and start poking through the included "Barebones" skin. This skin has minimal formatting, hence the name, but is nontheless a full implementation of all the features of Notmad Xtreamer. This skin serves two purposes:

  1. Because there is essentially no formatting code, you can easily focus on the Xtreamer command tags themselves and quickly figure out how the skin does what it does.
  2. Because there is so little formatting, you can use "Barebones" as a fully-functional skeleton onto which you can immediately begin adding your own formatting and graphical design.

Simply copy the "Barebones" folder and its contents, rename the copy, and begin editing the files in the skin. Remember to use the Xtreamer Options dialog to change the active skin to the one you're working on so that you can view the changes you're making instantly by hitting refresh in your web browser.

With some programming experience, it should not be hard to figure out how the tags work and quickly turn "Barebones" into your own interesting and attractive skin. If you find that you have some "big picture" or technical questions while you're working, see the following two sections. Section 11.4 gives a more formal introduction to Xtreamer tags, while section 11.6 is a technical reference guide. Also, feel free to send us e-mail with any questions you may have.

"Barebones" Skin Browser

File
Click on one of the files in the diagram below.
Description
When you click on a file in the diagram, a detailed description of that file and its role in the skin is displayed here.


11.4 Introducing Xtreamer TagsPrev Contents

This section explains how to add actual Jukebox content to your skin using special Xtreamer tags you insert into your webpages. These tags are processed by the Xtreamer server which replaces them with Jukebox content on the fly. This technique is called server-parsing, is used to generate dynamic content in webservers like Apache or Microsoft IIS.

11.4.1 Tag Basics

Each tag is basically a command to the Xtreamer HTTP engine. Xtreamer supports a number of commands, each of which can take zero or more arguments. The structure of a Xtreamer tag is as follows:

<? command(argument1, argument2, ...) ?>

Each tag can contain only one command. Tags cannot span across lines. Briefly, here are some of the basic commands supported by the Xtreamer engine:

  • set: Set a value for a variable that can be used later on in the page.
  • print: Print out the value of a variable set by the Xtreamer engine or by you.
  • loop: Begins a loop used to enumerate lists of items on your Jukebox like artists or playlists.
  • include: Inserts the contents of another file into the current one. Useful for repeating code.

11.4.2 Setting and Printing Variables

Here is an example of how you can use these command tags to set and print a variable:

<? set(myvariable,thevalue) ?>
<? print(myvariable) ?>

These two commands set a variable named myvariable with the value thevalue, and then prints out that value. Go ahead, try it. Add the tags above to your index.html file and refresh your browser. You'll find that your page now says "Hello, World! thevalue".

In practice, you will find that setting and printing variables yourself is usually not very useful. You could simply write the value directly into the webpage. There are some situations where you want to set variables, and we'll discuss those below, but the more interesting use of the print command is with the preset variables the Xtreamer engine makes available for every page of your skin. There are variables of general utility and variables specific to your Jukebox and its contents. For example:

<? print(date) ?>
<? print(devfw) ?>

These two commands print out today's date and the firmware version on your Jukebox. See the reference section for a complete list of all the preset variables.

Finally, note that when printing variables that are part of a URL in your code, you should use the printu variant of the command, which prints variables in an encoded form that is safe for URLs.

11.4.3 Using Loops to Enumerate Jukebox Content

The most important function of Xtreamer tags is to enumerate your Jukebox contents using the loop command. By passing arguments to the loop command, you can enumerate different lists of Jukebox items such as artists, genres, playlists, and more.

Each loop command must be paired with endloop. The HTML code and commands inside the loop will be repeated for each item in the specified list. And for each item, Xtreamer sets item-specific variables that you can print. So to list the playlists on your Jukebox, you would use the following code:

<? loop(PLAYLISTS) ?>
<? print(name) ?>
<? endloop ?>

The set of variables available inside a loop depends on the type of loop. The reference section below provides a comprehensive list of all loop types and the item variables available in each.

11.4.4 Passing Command Arguments Through the URL

Setting variables is not the only way to pass arguments to the loop command. In fact, it is not even the most useful way. You'll find in the example skins that the more commonly used method is passing arguments to the loop through the URL used to call the page containing a loop. Consider a page containing the following code:

<? loop(from_url,from_url) ?>
<? print(name) ?>
<? endloop ?>

By specifying from_url as the arguments, you tell the loop command to take the arguments from the URL used to call the page. So, assuming you've put the above code into a page called loop.html, to list all tracks by Britney Spears you would use the following URL to call the page:

http://localhost:8045/loop.html?ltype=AUDIOBYARTIST&larg1=Britney+Spears

ltype specifies the loop type and larg1 refers to the first loop argument. For a loop that takes two arguments, just add another from_url to the loop command and add larg2=value to the URL. Using this technique, you can create a totally generalized track listing page that can enumerate a variety of different loop types simply by calling the page with different URLs. This is exactly what the tracklist.html page is in our example skins.

11.4.5 Modular Code using Include Files

The include command makes possible more complex skins by allowing you to insert Xtreamer code from one file into another. A typical use is creating page headers and footers that are common across multiple (or all) pages in a skin. For example, you can put your common header code into a file called header.inc and then include it into any other page using the command:

<? include(header.inc) ?>

Include files are technically no different from the files into which they are included, so you can name them anything. However, it maybe helpful to you to give them a different extension like .inc.

Include files can themselves contain Xtreamer command tags. For example, a header include file might contain a print command to display the date the top of your pages. For even more flexibility, you can set variables that will be available to files included into a page. Consider the following code:

<? set(itemname,Beef) ?>
<? include(menuitem.inc) ?>
<? set(itemname,Chicken) ?>
<? include(menuitem.inc) ?>

Assuming the menuitem.inc contains code that prints out the value of the itemname variable, you get the advantages of using a common module of code combined with some amount of adaptability.


11.5 Submitting Your Skins to the GalleryPrev Contents

If you would like to share your skins with other Xtreamer users, you can submit them to our online Gallery. Before you do, please run through the following checklists of do's, don'ts, and instructions.

11.5.1 Recommended Optimizations

There are a number of optimizations you should perform to make your skin pages load up faster in Xtreamer, take up less space, and download more quickly.

  1. Empty the Garbage
    Remove scratch or temporary image and HTML files in your skin folder that aren't actually used in the final product.

  2. Use CSS Stylesheets
    Intelligent use of stylesheets minimizes redundant formatting tags in your HTML pages. You should not have to use FONT tags in your HTML code. Using CSS stylesheets can improve the load times on your skin pages considerably and make the skin itself more compact.

  3. Use Include Files
    Use include files to separate out common chunks of code that are used repeatedly in the pages of your skin. Obvious uses are for headers, footers, and navigation bars. Remember that include files can themselves contain Xtreamer command tags, so they are quite flexible. Try to include as much common code as possible in your include files to minimize the size of your skin. See the Default XP-style skin in Xtreamer for examples of how to use include files effectively.

  4. Include Convenience Elements
    To make your skin play well with the rest of the Xtreamer skins, you should include several convenience elements. Most important is a form with a drop-down and button to dynamically switch skins. You can simply copy the form code from the index.html page of the Default and Barebones skins. In your skin you should also include on every page links to Red Chair resources. Use the HTML code below:

    <a href="http://www.redchairsoftware.com/">Red Chair Software</a>
    <a href="http://www.redchairsoftware.com/notmad/support">Notmad Support</a>
    <a href="http://www.redchairsoftware.com/clubred/notwebskins/">Skins Gallery</a>

11.5.2 Design Limitations

In the interest of everyone's safety, skins submitted for the Gallery may not contain:

  1. Java applets.
  2. Links to other websites.
  3. References to image, style sheet, or other resource files that are not bundled in the skin itself.
  4. Client-side script or other code that attempts unauthorized or malicious access to local resources.
  5. Unauthorized use of copyrighted or trademarked material.

11.5.3 Submission Instructions

Once you've created your skin and tested it with Notmad Xtreamer, follow these steps for submission:

  1. Zip Your Skin: Use any standard zip utility to create a .zip archive of the files that comprise your skin. If you have created a skin in a folder named BarebonesModified, for example, zip up the files and subfolders inside the BarebonesModified folder, not the folder itself.

    Please use the maximum compression setting (for minimum size) allowable by your zip utility.

    Make sure to also delete any Thumbs.db files that get zipped into your skin file. Thumbs.db files are generated by Windows when you view folders in 'Thumbnails' view. They are usually quite large are not needed in the zip file.

  2. Generate a Screenshot: Take a screenshot of your skin running in a browser and reduce it to 160x100 pixels in GIF format. The screenshot should show only the page contents, and should not include any portion of your browser or desktop. See the gallery for examples. Do not include the screenshot in your zip file, keep it separate.

  3. Provide Entry Information:
    • Name: Short name for your skin. Limit to two words, please.
    • Author: Your name or a pseudonym, if you like.
    • Author E-mail: An e-mail address where people can contact you about your skin.
    • Description: Brief description of your skin. Omit obvious things like "this is a Xtreamer skin". Limit to 65 words, please.

  4. Submission Agreement: By submitting a skin to our e-mail address, you agree to the following:
    • We reserve the right to decline submissions and remove gallery items for any reason.
    • You grant Red Chair Software, without consideration, a perpetual, unrestricted license to use, modify, and redistribute the materials contained in your skin.

  5. Send It: Send the entry information to submit-skin@redchairsoftware.com along with the zip and screenshot files as attachments. Pending approval, we will post your skin to the gallery as soon as we can.

After we post your skin in the gallery, you can check on it to see how many people have downloaded your handiwork, updated in real-time!


11.6 ReferencePrev Contents

This section is a reference for:

  • The commands available in Xtreamer.
  • The queue manipulation functions available in the qcontrol command.
  • The preset variables available for the print command in Xtreamer.
  • The various types of loop lists available and the item-specific variables available within each loop type.

11.6.1 Commands

The following is a list of the commands available in Xtreamer, the arguments they take, and a description of what they do. Note that command arguments are never quoted.

commandinclude
arg1Name of the file to be included.
DescriptionInserts the contents of the file specified in arg1 into the current file. The file to be included may itself contain command tags that have access to the variables set in the current page.
commandset
arg1Name of the variable to be set.
arg2Value to be assigned to the variable specified in arg1.
DescriptionSets a variable with the name specified in arg1 to the value specified in arg2. The variable is available to the rest of the page below the set command. It is also available in any files that are included later in the page using the include command.
commandprint
arg1Name of the variable to be printed.
DescriptionPrints out the value of the variable specified in arg1. The variable may be one that is set using the set command, or a preset variable provided on every page by the Xtreamer server. For a list of preset variables and their contents, see below.
commandprintu
arg1Name of the variable to be printed
DescriptionSame as print except the printed value is encoded for use in URL query strings passed back to the Xtreamer server. For example, the ampersand, plus, and equals characters, which are special tokens in URL query strings, are encoded by this printu. Only use printu for query strings, and do not use it for the main, non-query part of the URL. In particular, do not use this to print out the dl_url variable in the DATAFILES loop.
commandloop
arg1Type of loop to enumerate.
arg2(optional) Depends on loop type.
arg3(optional) Depends on loop type.
arg4(optional) Depends on loop type.
arg5(optional) Depends on loop type.
arg6(optional) Depends on loop type.
DescriptionInitiates a loop that enumerates some list of items on the device. The the specific list of items to be enumerated is determined by the loop type specified in arg1 and the optional loop arguments in arg2, arg3, arg4, arg5, and arg6. Must be paired with an endloop command. See section below for reference on various loop types and how to use them.
commandendloop
DescriptionEnds a loop started by the loop command.
commandqcontrol
arg1Name of queue control command to perform.
arg2(optional) Depends on queue control command.
arg3(optional) Depends on queue control command.
arg4(optional) Depends on queue control command.
DescriptionPerforms an operation related to on-board playback on the device. This can include such operations as starting, stopping, pausing playback, adding tracks to the queue, changing volume, and more. The section below provides more details on the different queue control commands and the arguments they take. When the operation is complete, the qcontrol command sets a variable named qresult with a description of the operation's result. This variable can be displayed immediately following the qcontrol command using the print command. Do not put this command on the same page as a QUEUE loop, as listing the queue and manipulate the queue on the same page can cause a conflict.

11.6.2 Queue Control Commands

The qcontrol command has a sufficient variety of functions to warrant its own section to describe it in more detail. When using a qcontrol command, the first argument to the command is the name of the queue control function to perform. We refer to this as qcmd. There can be up to 3 additional arguments that depend on the specific function specified as qcmd. These arguments are referred to as qarg1, qarg2, and qarg3. Note that qarg1 is actually the second argument to the qcontrol command, and qarg2 is actually the third argument, and so forth. The qcontrol command looks like this:

<? qcontrol(qmcd,qarg1,qarg2,qarg3) ?>

The qcontrol command can also take its arguments from the URL query string To do this, replace the loop type and/or arguments in the command with the string from_url. Then add key-value pairs to the URL query string using the keys qcmd, qarg1, qarg2, and qarg3.

http://localhost:8045/queue.html?qcmd=enqueue&qarg1=blah
<? qcontrol(from_url,from_url) ?>

What follows is a table of the various queue control functions, what they do, the arguments they take, and the result string that is put into the qresult variable.

qcmdenqueue
qarg1Type of loop to enqueue audio tracks from. Use the same loop types from the loop command.
qarg2(optional) Depends on the loop type.
qarg3(optional) Depends on the loop type.
DescriptionAdds audio tracks to the on-board playback queue. You specify what tracks to add by setting qarg1 to one of the loop types from the loop command. Valid types to use here include AUDIOBYARTIST, AUDIOBYALBUM, AUDIOBYGENRE, SEARCHRESULTS, PLAYLIST, and AUDIOSINGLE. See the loop type reference table below for information on what additional arguments must be provided for each loop type.
qresult"<number> track(s) enqueued."
qcmdplay
DescriptionStarts on-board playback.
qresult"Playback started."
qcmdstop
DescriptionStops on-board playback.
qresult"Playback stopped."
qcmdpause
DescriptionPauses or unpauses on-board playback, depending on current pause state.
qresult"Playback paused." or "Playback unpaused."
qcmdprev
DescriptionMoves backward one track in the queue and begins playback.
qresult"Skipped to previous track."
qcmdnext
DescriptionMoves forward one track in the queue and begins playback.
qresult"Skipped to next track."
qcmdskipto
qarg1Position of the track in the queue to which you want to skip.
DescriptionSkips to the position in the queue specified in qarg1 and begins playback.
qresult"Skipped to <name of track>."
qcmdshuffle
DescriptionStops playback and shuffles the contents of the queue.
qresult"Active Queue shuffled."
qcmdclear
DescriptionStops playback and clears the contents of the queue.
qresult"Active Queue cleared."
qcmdvolume
qarg1New on-board volume level as a percentage. 0 is minimum volume and 100 is maximum volume.
DescriptionSets a new volume level for on-board playback as specified in qarg1.
qresult"Volume set to <number>%."

11.6.3 Preset Variables

The following variables are preset by the Xtreamer server and are available to be printed on every page of your skin.

hostname Name of the host and the port number that the Xtreamer server is running on. This can be used to construct a URL to another page in the skin. However, it is preferred that you use relative URLs in your skins.
devname Device model name. For example, "NOMAD Jukebox 3" or "NOMAD Jukebox Zen".
devowner Owner's name that is set on the device.
devhw Device hardware version.
devfw Device firmware version.
stortotal Total capacity of the device in megabytes.
storfree Free space remaining on device in megabytes.
date Current date and time on the computer on which Xtreamer is running.
notwebver Notmad Xtreamer version.
volume Current volume level set on the device, in percentage (0 is lowest and 100 is maximum volume).
paused Text string indicating whether device is in playback pause state. Possible values are "Paused" and "Not Paused".
pausedcode Text string indicating whether device is in playback pause state. Possible values are "q_paused" and "q_notpaused". This string is intended to be used as a class selector in conjunction with CSS styles, giving flexibility in how the pause state is displayed on the page.

11.6.4 Loop Types and Variables

The syntax of a loop command tag is simple, and depends on how many arguments the particular loop type takes:

<? loop(ltype) ?>
<? loop(ltype,larg1) ?>
<? loop(ltype,larg1,larg2) ?>

All loop commands must be followed by an endloop command. All command tags inside the loop have access to the loop-specific variables described in the tables below.

The actual loop type and arguments do not need to be part of the loop command itself, but can be passed from the query string of the URL used to call the current page. To do this, replace the loop type and/or arguments in the command with the string from_url. Then add key-value pairs to the URL query string using the keys ltype, larg1, and larg2. For example:

http://localhost:8045/tracks.html?ltype=AUDIOBYARTIST&larg1=Prince

<? loop(from_url,from_url) ?>
<? print(name) ?>
<? endloop ?>

The tables below list and describe the purpose of all the loop types supported by Xtreamer. If a loop type takes arguments, the meaning of those arguments is explained. Most importantly, for each loop there is a list of the variables that are available to be printed inside that loop, along with explanations of what values those variables contain.

ltypeAUDIOALL
DescriptionLists all audio tracks on the device.
Variables
idInternal ID number for the current track. Use this as the argument for the AUDIOSINGLE loop.
displaynameFormatted display name for the current track. Synthesized from the tag fields. You can customize the display format using a template on the Jukebox tab in the Notmad Configuration dialog.
stream_urlRelative URL for streaming the current track.
ltypeAUDIOSINGLE
larg1Internal ID number of a track. These are the ID's generated by the AUDIOALL, AUDIOBYxxx, PLAYLIST, SEARCH, SEARCHRESULTS, and QUEUE loops.
DescriptionProvides detailed information on a single audio track with the ID specified in larg1.
Variables
displaynameFormatted display name for the current track. Synthesized from the tag fields. You can customize the display format using a template on the Jukebox tab in the Notmad Configuration dialog.
stream_urlRelative URL for streaming the current track.
artistArtist tag field.
albumAlbum tag field.
tracknumAlbum track number tag field.
titleTitle tag field.
codecAudio codec, in the form of a file extension such as mp3, wma, or wav.
genreGenre tag field.
yearYear tag field.
commentComment tag field.
length_secsLength of track in seconds.
length_msLength of track formatted as minutes:seconds.
filesizeSize of audio file in megabytes.
ltypeDATAFOLDERS
larg1Internal ID number of the parent folder to be enumerated. If this argument is omitted, the root folder is enumerated.
DescriptionLists all data subfolders contained in the folder whose ID is specified in larg1.
Variables
idInternal ID number for the current folder. Use this as the argument for the DATAFOLDERS loop.
filenameName of the current folder.
ltypeDATAFILES
larg1Internal ID number of the parent folder to be enumerated. If this argument is omitted, the root folder is enumerated.
DescriptionLists all data files contained in the folder whose ID is specified in larg1.
Variables
filenameName of the current file.
extFile extension of the current file.
dl_urlRelative URL for downloading the current file.
filesizeSize of the current file in megabytes.
ltypeSEARCH
larg1Type of search to perform. Possible values are quick, simple, and advanced.
larg2Depends on search type.
larg3(optional) Depends on search type.
larg4(optional) Depends on search type.
larg5(optional) Depends on search type.
DescriptionPerforms an audio track search as specified by the arguments and enumerates the search results. Here are the available search types and the arguments they require:
quickTakes one argument, larg2. Returns tracks that contain larg2 in any of the following fields: artist, album, title, genre.
simpleTakes four arguments, larg2 through larg5. Returns tracks for which larg2 is found in the artist field AND larg3 is found in the album field AND larg4 is found in the title field AND larg5 is found in the genre field. Arguments that are blank are omitted.
advancedTakes one argument, larg2. Returns tracks that match the advanced query specified in larg2. For details on the syntax for this query string, see section 9 in the OmniTome regarding SQL queries.
Variables
idInternal ID number for the current track. Use this as the argument for the AUDIOSINGLE loop.
displaynameFormatted display name for the current track. Synthesized from the tag fields. You can customize the display format using a template on the Jukebox tab in the Notmad Configuration dialog.
stream_urlRelative URL for streaming the current track.
ltypeSEARCHRESULTS
DescriptionLists all the audio tracks found by the last search executed by the SEARCH loop. Unlike the SEARCH loop, this loop does not take arguments and does not actually execute a new search.
Variables
idInternal ID number for the current track. Use this as the argument for the AUDIOSINGLE loop.
displaynameFormatted display name for the current track. Synthesized from the tag fields. You can customize the display format using a template on the Jukebox tab in the Notmad Configuration dialog.
stream_urlRelative URL for streaming the current track.
ltypePLAYLISTS
DescriptionLists all playlists on the device.
Variables
idInternal ID number for the current playlist. Use this as the argument for the PLAYLIST loop.
nameName of the current playlist.
countNumber of tracks contained in the current playlist.
ltypePLAYLIST
larg1Internal ID number of the playlist to be enumerated.
DescriptionLists all the audio tracks contained in the playlist whose ID is specified in larg1.
Variables
idInternal ID number for the current track. Use this as the argument for the AUDIOSINGLE loop.
plnumPosition of the current track in the playlist.
displaynameFormatted display name for the current track. Synthesized from the tag fields. You can customize the display format using a template on the Jukebox tab in the Notmad Configuration dialog.
stream_urlRelative URL for streaming the current track.
ltypeARTISTS
DescriptionLists all artists represented on the device.
Variables
nameName of the current artist. Use this as the argument to the AUDIOBYARTIST loop.
countNumber of tracks that belong to the current artist.
ltypeAUDIOBYARTIST
larg1Name of artist whose tracks are to be enumerated.
DescriptionLists all audio tracks that belong to the artist specified in larg1.
Variables
idInternal ID number for the current track. Use this as the argument for the AUDIOSINGLE loop.
displaynameFormatted display name for the current track. Synthesized from the tag fields. You can customize the display format using a template on the Jukebox tab in the Notmad Configuration dialog.
stream_urlRelative URL for streaming the current track.
ltypeALBUMS
larg1(optional) Name of artist whose albums are to be enumerated. If an artist is specified, only that artist's albums are enumerated. If this argument is omitted, all albums on the device are enumerated.
DescriptionLists all albums represented on the device, or all albums that belong to a specified artist.
Variables
nameName of the current album. Use this as the argument to the AUDIOBYALBUM loop.
countNumber of tracks that belong to the current album.
ltypeAUDIOBYALBUM
larg1Name of album whose tracks are to be enumerated.
larg2(optional) Name of artist to which you also want the enumeration to be restricted. This may be necessary if you have multiple albums with the same name but by different artists.
DescriptionLists all audio tracks that belong to the album specified in larg1. If larg2 is specified, the list will further be restricted to the artist in larg2.
Variables
idInternal ID number for the current track. Use this as the argument for the AUDIOSINGLE loop.
displaynameFormatted display name for the current track. Synthesized from the tag fields. You can customize the display format using a template on the Jukebox tab in the Notmad Configuration dialog.
stream_urlRelative URL for streaming the current track.
ltypeGENRES
DescriptionLists all genres represented on the device.
Variables
nameName of current genre. Use this as the argument to the AUDIOBYGENRE loop.
countNumber of tracks that belong to the current album.
ltypeAUDIOBYGENRE
larg1Name of genre whose tracks are to be enumerated.
DescriptionLists all audio tracks that belong to the genre specified in larg1.
Variables
idInternal ID number for the current track. Use this as the argument for the AUDIOSINGLE loop.
displaynameFormatted display name for the current track. Synthesized from the tag fields. You can customize the display format using a template on the Jukebox tab in the Notmad Configuration dialog.
stream_urlRelative URL for streaming the current track.
ltypeQUEUE
DescriptionLists all audio tracks currently in the on-board playback queue on the device.
Variables
idInternal ID number for the current track. Use this as the argument for the AUDIOSINGLE loop.
aqnumPosition of the current track in the playback queue.
displaynameFormatted display name for the current track. Synthesized from the tag fields. You can customize the display format using a template on the Jukebox tab in the Notmad Configuration dialog.
statusText string indicating the playback state of the current track. Possible values are "Already Played", "Current", and "Not Yet Played".
statuscodeText string indicating the playback state of the current track. Possible values are "q_alreadyplayed", "q_current", and "q_notyetplayed". This string is intended to be used as a class selector in conjunction with CSS styles, giving flexibility in how the playback state is displayed on the page.
ltypeSKINS
DescriptionLists all skins registered and available for use in Notmad Xtreamer.
Variables
nameName of the current skin. You can dynamically change skins by specifying this name as the value paired with the key "newskin" in the query string passed by URL to any page in the skin. For example, the URL "http://localhost:8045/index.html?newskin=Barebones" will switch the current skin to "Barebones".
selectedThis value of this variable is either "selected" or an empty string "" depending on whether the current skin in the loop is the current skin selected in Notmad Xtreamer. This string is suitable for us as an attribute for the OPTION tag inside an HTML SELECT tag element.

Prev Contents

  Notmad | Anapod - iPod Software | Riorad | Deubox | Irivium | Cyclef    Help and Support | Red Chair Software  

Legal Information
Copyright © 2007 Red Chair Software, Inc. All rights reserved.
All trademarks and servicemarks used are the property of their respective owners.
Powered by rcs content management system 3.0.