Page 1 of 1

LCDSmartie control

Posted: March 7th, 2005, 12:14 am
by AllenConquest
I'm just starting work on developing a plugin and was just wondering if someone could point me in the direction of some documentation (if it exists) on how to write a plugin.

I was just wondering if there is a way for an application to trigger an event on the VFD. I know that LCDSmartie can poll a DLL every 300ms, but is it possible that when an application is started it comes up on the VFD with a message to show this ? How can that be done ?

Thanks,

Allen

Posted: March 8th, 2005, 11:41 pm
by AllenConquest
Can this sort of functionality be added for a future release? It would be great if a plugin could control a few things (a bit like jaLCD). People are telling me to stick with LCDSmartie because the CPU overhead is less, so I would love to see this added.

Posted: October 11th, 2005, 11:40 pm
by hamiltonjct
Here's a sample of the code I use to check the status of a process. You will need to know the name of the process node as it would appear in Task Manager.

'-------------------------------------------------------------------
Public Class LCDSmartie

Public Function function2(ByVal param1 As String, ByVal param2 As String) As String
Dim p As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()
Dim result
Dim i
Dim newNode
result = 0
For i = 0 To p.GetUpperBound(0)
' Debug.WriteLine(p(i).ProcessName.ToString)
newNode = p(i).ProcessName
'
'
' Change Amp below to the process you are looking for.
If newNode = "Amp" Then
result = 1
End If
Next
Return result
End Function

Public Function GetMinRefreshInterval() As Integer
Return 300 ' 300 ms (around 3 times a second)
End Function
End Class
'-------------------------------------------------------------------

Then if the Smartie config create an action
$dll(dllname,2,,) = 0 GotoTheme(1)
$dll(dllname,2,,) = 1 GotoTheme(2)

You can replace the GotoTheme with one of the ouput options available.

Hope that helps

Posted: November 28th, 2005, 6:31 am
by cinOxen
My first post here (been lurking for awhile) :)

This looks fairly simple. What are the chances of a plugin that simply confirms the existence of a process? I would try myself to implement the above code but really don't know where to start.

I love LCD smartie but really wish this functionality existed. I primarily use winamp and zoom player on this machine. Unfortunately I can't get the zoom player plugin working but I would be happy to have the ability of making a generic movie screen - i just need to know when zoom player is running.

Posted: November 28th, 2005, 10:54 am
by Workshed
I've added some code to LCD Smartie to check for a couple of processes, if you tell me the String the process shows up with I could add it in as an option in the "Skip this screen if..." dropdown box.

Posted: November 28th, 2005, 9:21 pm
by cinOxen
Wow, Thanks Workshed!

The process I'm interested in is zplayer.exe

But some other useful ones for people might be:
wmplayer.exe
TheaterTek DVD.exe
foobar2000.exe

For HTPCs anyway :)

cheers

[edit]
IMO the best overall functionality of LCD Smartie would be a function like the one above that could accept different strings and be called, for example, like $dll(process_exists,1,"example.exe",0) and then it could be used in conjunction with actions and themes.

I normally don't make suggestions to developers but this program really rocks - definitely the best one out there :)

Posted: November 28th, 2005, 9:40 pm
by Jumpin' Jon
I you're planning to add this functionality, could you consider making it configurable? i.e. you can "Skip this screen if X is/is not running" based on something more than just a set list. Perhaps INI file settings to define a list (much like that shown above), or better still some way for the user to enter their own string in the UI.

Better still, allow plug-in interaction like that available in Actions. i.e. "Skip this screen if X > Y". That would allow cool things like, making a series of screens to show news stories, and have only the appropriate number appear; News screen #2 would show if.. "dll(news, numstories) > 1".

I think this kind of interaction is what makes Smartie so popular. I'm working on a set of Themes / Screens that show information relevant to what I'm currently doing, and it's exactly this kind of thing that is making it hard atm. A theme for Gaming, for example, focuses more on the Temps and CPU performance, and doesn't bother with News and Weather... In this example, a "if DirectX is active" would be a handy thing to know and be able to handle.

Just my 2p.

JJ

Posted: November 28th, 2005, 11:19 pm
by Workshed
Some cracking ideas! Will try and get those processes in as a starter and then add a GUI configurable version :) (when i get chance!)

Posted: December 18th, 2005, 5:54 am
by jonny
I would LOVE to have this function. It is literally the _only_ thing missing from this stellar program. I wish I knew how to program so I can help, but please let me know when this is added!

Posted: December 18th, 2005, 9:41 pm
by AllenConquest
Can you add mediaportal.exe to your list of executables that can be detected ?

Cheers,

Allen

Posted: December 26th, 2005, 8:01 pm
by jonny
i got the zoom player plugin to trigger an action by using the status of the player = playing or stopped or paused, etc. The action can make smartie go to a new theme:

when the status = playing, then goto theme(x) where theme x contains the zoom player screen.

when status = closed, goto theme(n) where theme n is the base set of screens.

That way, the zoom player screen only comes up when it is playing.

IMPORTANT: the case of the status (Playing, Paused, etc) must the same as what the plugin returns.

I am sure this method would work with any other plugin.

Posted: January 26th, 2006, 7:44 pm
by cinOxen
jonny,

after seeing your post I decided to try the zoomplayer plugin again and this time it worked :)

A window popped up from zoomplayer asking if I wanted to enable program access. I never saw this window last time on an older version so maybe it had to be manually enabled before.

Anyhow the idea of a plugin that simply determines the existence of a running process is still a great idea - even if I don't need it anymore ;)