MizookLcd Documentation

MizookLCD is no longer maintained.

I switched to an extender, so no longer have PC to put my LCD in. I have made the source code available if anyone would like to continue the project. It is written in VB.NET; I have included a Visual Studio 2010 Project file, but the code itself it probably back-compatible to .NET 2.0 or so. A VB.NET to C# converter would probably have no trouble converting it to C# if you're more comfortable with that language.

With that said, it continues to work for many people, so feel free to give it a shot as-is.

What is MizookLcd

MizookLcd is a plugin for LCDSmartie which allows you to display data from SageTV on an LCD.

Download MizookLcd

Installation and Configuration

  1. Exit LCDSmartie
  2. Unzip to the "plugins" directory for LCDSmartie
  3. If necessary, open MizookLcd.txt and change the IP address to point to the computer that is running nielm's GetStatus plugin. By default it points to the local machine.

Command Reference

Like all LCDSmartie plugins, plugin commands for MizookLcd look something like this: $dll(MizookLcd.dll, command, param1, param2)

Function 1

Playing Type / Recording Device Name
param 1 - Device
0 = now playing, 1 = first recording device, 2 = second recording device, etc.
param 2 - Format
0 = text, 1 = status code where 1 = device is active, 0 = inactive.

Examples:

Function 2

Show
param 1 - Device
0 = now playing, 1 = first recording device, 2 = second recording device, etc.

Examples:

Function 3

Episode
param 1 - Device
0 = now playing, 1 = first recording device, 2 = second recording device, etc.

Examples:

Function 4

Artist
param 1 - Device
0 = now playing, 1 = first recording device, 2 = second recording device, etc.

Examples:

Function 5

Channel
param 1 - Device
0 = now playing, 1 = first recording device, 2 = second recording device, etc.

Examples:

Function 6

Time (Start and End)
param 1 - Device#OutputChoice
0 = now playing, 1 = first recording device, 2 = second recording device, etc. then # then s = start date/time, e = end date/time
param 2 - Format
See date section of http://blog.stevex.net/index.php/string-formatting-in-csharp/

Examples:

Function 7

Duration / Position
param 1 - Device#OutputChoice
0 = now playing, 1 = first recording device, 2 = second recording device, etc. then # then d = duration, cp = cursor position
param 2 - Format
0 as string, 1 as number

Examples:

Function 8

Get Most Important Function
param 1 - format
a = as a letter. any other values = as a number

This function is designed to return to me what the most important thing is that SageTV is currently doing. I use it to determine which LCDSmartie screen to display. If I'm watching something, I have my LCD display the name of the show I'm watching and a progress bar of how far through it I am. If I'm not watching something, but it is recording, I have it display what it is recording. If it isn't doing either, I have the LCD show the date and time.

The function works like this (depending on format):

Function 9

Constantly Trigger Action
param 1 - Value#AlternateValue
value usually comes from some other number returing function # alternate value to flip flop to
param 2 - key
any unique string of characters, make sure you make this something different every time you use this function.

I use this function to continuously trigger an action in order to keep a screen locked on. So far I have only used it in conjuction with function 8 like so: $dll(MizookLcd.dll, 9, $dll(MizookLcd.dll, 8, ,),-1)

For the above example, if SageTV was playing something it would alternate between 0 and -1. If it wasn't doing anything, it would stay -1. If it was recording on Tuner #1 it would alternate between 1 and -1. I then have two actions setup in LCDSmartie using that expression. The first says if the expression = 0 Then GoToScreen(4) the 2nd says if the expression > 0 Then GoToScreen(5). Screen 4 is my Now Playing screen. Screen 5 is my Now Recording Screen.

My Setup

Date and Time Screen

This is the only screen that I leave "Enabled". It is what LCDSmartie shows when SageTV isn't doing anything.

Now Playing Screen

Any time I'm watching a show or listening to music in SageTV, this is the screen that is shown on the LCD. It shows what Show is being played and displays a progress bar.

Now Recording Screen

This screen is shown whenever one of my 2 tuners is recording something - but only if I'm not watching something.

Actions

It is the 'actions' that cause LCDSmartie to actually switch to the appropriate screen. This is accomplished through a combination of function8 of MizookLcd (Get Most Important Function) and function9 of MizookLcd (Constantly Trigger Action). The reason function9 is required is that an action only fires when its condition becomes true. Then it stops firing. So if we just put "Go to Screen 4 when function8 = 1" it would go to Screen 4 when SageTV First started playing something, but then after the screen had display for however long it is set for (usualy 4 seconds or so) it would then return to the standard enabled screen (Date and Time). function9 outputs an alternating value. Since we feed it the output of function8 and -1, it alternates between those two values. So if SageTV is playing something, it'll constantly alternate between 0 and -1 causing the action to be triggered over and over again. This causes LCDSmartie to effectively "lock on" to screen 4 until SageTV stops playing something.

$dll(MizookLcd.dll,9,$dll(MizookLcd.dll,8,,)#-1,b)