<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="../stylesheets/mci.xsl"?>
<!-- MCI Smartie Plugin Technical Manual -->
<doc>
    <assembly>
        <name>mci</name>
    </assembly>
    <members>
        <member name="T:mci.LCDSmartie">
            <summary>
            The mci.dll is a plugin for LCDSmartie that displays information from Microsoft Media
             Center Edition.  It gets the information from Media Center Information Server (MCIS)
             and this must be running on the PC running MCE.  Settings are loaded from 
             "LCDSmartie.exe.config". V2.0 supports caching which batches together requests for
             efficiency.
            </summary>
        </member>
        <member name="M:mci.LCDSmartie.#ctor">
            <summary>
            Constructor - Main entry point
            </summary>
            <remarks>
            Main entry point expected by Smartie 5.3 beta 3 and above. 
            Initialisation of mci DLL.  MCIS Pro must be running.
            </remarks>
        </member>
        <member name="M:mci.LCDSmartie.function1(System.String,System.String)">
            <summary>
            Media Information - Display on the LCD information from media center
            </summary>
            <param name="key">The MCIS key (or keys) for the information type(s)</param>
            <param name="format">(optional) If incuded, specifies the output format</param>
            <returns>The text value returned from MCIS formatted as specified.</returns>
            <remarks>
            Usage example is <b><example>$dll(mci,1,track,prefix @ postscript)</example></b>.
            To obtain a full list of valid keys look in MCIS Control or run http://localhost/mci/all
            with MCIS Pro running. From V2.0 multiple keys can be given separated by any non-alphanumeric
            characters.  The separators are included in the output unless "&amp;" is used; to include a single
            "&amp;" use "&amp;&amp;". An example is "<example>track (artist)</example>".  
            See <b><see cref="M:mci.LCDSmartie.function10(System.String,System.String)">function10</see></b> for a description
            of the format parameter.
            </remarks>
        </member>
        <member name="M:mci.LCDSmartie.function2(System.String,System.String)">
            <summary>
            Scrolling Control - Stop scrolling text after a delay
            </summary>
            <param name="inputText">The input string</param>
            <param name="delayFormat">Numeric delay in seconds followed by "@" followed by numeric
            length of display. If the length is omited a default is used from the config file.</param>
            <returns>The full inputText initially and after delay the text truncated to lengtht.</returns>
            <remarks>
            Usage example is <b><example>$dll(mci,2,text,120@16)</example></b>.
            The text is truncated to the specified length after the specified delay from a media
            change event.  The length should be set to the LCD screen width and then this has the
            effect of stopping scrolling at the prescribed time.
            </remarks>
        </member>
        <member name="M:mci.LCDSmartie.function3(System.String,System.String)">
            <summary>
            Postscript - Add a postscript sequence to scrolling text
            </summary>
            <param name="inputText">The input string</param>
            <param name="postscript">Postscript text followed by "@" followed by numeric
            length of display. If the length is omited a default is used from the config file.</param>
            <returns>The full inputText initially and after delay the text truncated to length.</returns>
            <remarks>
            Usage example is <b><example>$dll(mci,3,text,-postscript@16)</example></b>.
            Adds a postscript sequence to text but only if the text is longer than length.  This
            has the effect of separating scrolling text with the postscript but not adding the
            postscript if the text is not scrolling.  The length is the LCD width.
            </remarks>
        </member>
        <member name="M:mci.LCDSmartie.function4(System.String,System.String)">
            <summary>
            TV Channel - Display the name associated channel number
            </summary>
            <param name="channelNum">(numeric) The TV channel number</param>
            <param name="format">(optional) If incuded, specifies the output format</param>
            <returns>The full inputText initially and after delay the text truncated to length.</returns>
            <remarks>
            Usage example is <b><example>$dll(mci,4,22, [@])</example></b>.
            See <b><see cref="M:mci.LCDSmartie.function10(System.String,System.String)">function10</see></b> for a description
            of the format parameter.
            Displays the channel name associated with track number channelnum
            with the format in format.  If a name cannot be found "CH: n" is returned.
            </remarks>
        </member>
        <member name="M:mci.LCDSmartie.function5(System.String,System.String)">
            <summary>
            Play Symbol - Display symbols for play, pause, stop, etc
            </summary>
            <param name="playText">(optional) The status string, eg "Pause"</param>
            <param name="format">(optional) If incuded, specifies the output format</param>
            <returns>A two character sequence representing the play state.</returns>
            <remarks>
            Usage example is <b><example>$dll(mci,5,, )</example></b>.
            See <b><see cref="M:mci.LCDSmartie.function10(System.String,System.String)">function10</see></b> for a description
            of the format parameter.
            Two characters are output from config according to play state in input parameter or 
            the current media center play state if omitted.
            <b>This function is not required at V2.0; use $dll(mci,1,playsym,) instead.</b>
            </remarks>
        </member>
        <member name="M:mci.LCDSmartie.function6(System.String,System.String)">
            <summary>
            Mute Symbol - Display a symbol for mute if muted
            </summary>
            <param name="muteText">(optional) The mute string, eg "Mute"</param>
            <param name="format">(optional) If incuded, specifies the output format</param>
            <returns>A two character sequence representing the play state.</returns>
            <remarks>
            Usage example is <b><example>$dll(mci,6,, )</example></b>.
            See <b><see cref="M:mci.LCDSmartie.function10(System.String,System.String)">function10</see></b> for a description
            of the format parameter.
            One character is output from config according to mute state in input parameter or 
            the current media center mute state if omitted.
            <b>This function is not required at V2.0; use $dll(mci,1,mutesym,) instead.</b>
            </remarks>
        </member>
        <member name="M:mci.LCDSmartie.function7(System.String,System.String)">
            <summary>
            Conditional Display - Display string dependent on conditional test
            </summary>
            <param name="condition"> The condition test, eg "value=1"</param>
            <param name="output"> Specifies the output for true and false separated by "|"</param>
            <returns>Value before the "|" if condition is true or the value after if false.</returns>  
            <remarks>
            Usage example is <b><example>$dll(mci,7,$dll(mci,1,recording,)=1,R|x)</example></b>.
            Displays the value before the "|" if condition is true or the value after if false.  
            If there is no "|" then nothing will be displayed for false.  Valid conditions are 
            =, &lt;, &gt;, &lt;&gt;, &lt;=, &gt;= or none.  If the condition is not included then non-zero
            integer or non-zero length string is considered true.  If both sides are integer numbers
            then this will compare numerically otherwise will compare strings. This function was
            introduced at version 1.1.
            </remarks>
        </member>
        <member name="M:mci.LCDSmartie.function9(System.String,System.String)">
            <summary>
            Track and Artist - Display track (artist)
            </summary>
            <param name="postscript">Postscript text followed by "@" followed by numeric
            length of display. If the length is omited a default is used from the config file.</param>
            <param name="delayFormat">Numeric delay in seconds followed by "@" followed by numeric
            length of display. If the length is omited a default is used from the config file.</param>
            <returns>The track name folowed by the artist (if any) in brackets ( or parenthesis)</returns>
            <remarks>
            Usage example is <b><example>$dll(mci,9,... @16,120@16)</example></b>.  This is included to simplify
            a fairly complex sequence of calls.
            This is the eqivalent of:
            "$dll(mci,2,$dll(mci,3,$dll(mci,1,trackx,)$dll(mci,1,artist, (@)),postscript),delayFormat)"
            or in c#:
            "function2(function3(function1("trackx", "") + function1("artist", " (@)"), postscript), delayFormat);".
            </remarks>
        </member>
        <member name="M:mci.LCDSmartie.function10(System.String,System.String)">
            <summary>
            Format - Surround text with prefix and postscript
            </summary>
            <param name="inputText">The input string</param>
            <param name="format">Prefix text followed by "@" followed postscrip text</param>
            <returns>The prefix, followed by inputText, then postscript, if there is a value in input otherwise returns empty string.</returns>
            <remarks>
            Usage example is <b><example>$dll(mci,10,text,prefix @ postscript)</example></b>.
            Formats text so that separators can be added but only if there is a value.
            This function is not normally called directly since it is included in other functions.
            </remarks>
        </member>
        <member name="M:mci.LCDSmartie.function11(System.String,System.String)">
            <summary>
            Test characters - Sequence through characters
            </summary>
            <param name="fromCharNum">(optional)(numeric) Start sequence number</param>
            <param name="toCharNum">(optional)(numeric) End sequence number</param>
            <returns>Each character with its decimal numeric ANSI code</returns>
            <remarks>
            Usage example is <b><example>$dll(mci,11,1,31)</example></b>.
            Step through the range of characters to test display starting at fromCharNum from and
            ending at toCharNum.  Then recycle from start.
            </remarks>
        </member>
        <member name="M:mci.LCDSmartie.function12(System.String,System.String)">
            <summary>
            Time Formatting - Convert time string to formatted time
            </summary>
            <param name="inputTime">(time) Unformatted Time</param>
            <param name="format">(string) Format</param>
            <returns>Formatted Time</returns>
            <remarks>
            Usage example is <b><example>$dll(mci,12,23:57,hh:nn:ss)</example></b>.
            Convert time in format hh:mm:ss or mm:ss or ss to a fixed format using either the Smartie
            $Time formats or .Net time formats.  The TimeFormat setting determines the formatting standard used.
            This function was added at V2.2.
            </remarks>
        </member>
        <member name="M:mci.LCDSmartie.function20(System.String,System.String)">
            <summary>
            About - Display Version Information
            </summary>
            <param name="param1">Not used</param>
            <param name="param2">Not used</param>
            <returns>The about information, including version</returns>
            <remarks>
            Usage example is <b><example>$dll(mci,20,,)</example></b>.
            </remarks>
        </member>
        <member name="M:mci.LCDSmartie.GetMinRefreshInterval">
            <summary>
            Give refresh interval to Smartie
            </summary>
            <returns>300 ms or the value set in the configuration</returns>
            <remarks>
            Define the minimum interval that a screen should get fresh data from this plugin.
            The actual value used by Smartie will be the higher of this value and of the "dll check interval" setting
            on the Misc tab.
            </remarks>
        </member>
        <member name="P:mci.LCDSmartie.GetVersion">
            <summary>
            Get internal version of MCI
            </summary>
            <returns>Version string</returns>
            <remarks>
            Called by function20 to get the internal version number.
            </remarks>
        </member>
    </members>
</doc>
