Our new official repo is on github
LCD Smartie version 5.6 is released!
Download it now: https://github.com/LCD-Smartie/LCDSmartie/releases
LCD Smartie version 5.6 is released!
Download it now: https://github.com/LCD-Smartie/LCDSmartie/releases
LCDSmartie control
Moderators: _X7JAY7X_, caesar, IFR, mattcro, limbo
-
- Posts: 32
- Joined: February 26th, 2005, 7:03 pm
LCDSmartie control
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
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
-
- Posts: 32
- Joined: February 26th, 2005, 7:03 pm
-
- Posts: 1
- Joined: February 15th, 2005, 10:36 pm
- Location: Nashville, TN
- Contact:
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
'-------------------------------------------------------------------
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
-
- Posts: 4
- Joined: November 28th, 2005, 6:18 am
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.

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.
-
- Posts: 4
- Joined: November 28th, 2005, 6:18 am
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
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

-
- Plugin Author
- Posts: 35
- Joined: August 3rd, 2005, 12:34 am
- Contact:
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
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
-
- Posts: 32
- Joined: February 26th, 2005, 7:03 pm
-
- Posts: 48
- Joined: December 18th, 2005, 5:50 am
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.
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.
-
- Posts: 4
- Joined: November 28th, 2005, 6:18 am
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
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
