View Full Version : New Plugin: xOSD
SteveV
April 2nd, 2007, 03:52 PM
xOSD is a redo of the the G3 XP OSD on-screen display plugin. It allows you to display text and images without having to use lua.
xOSD has a wide range of text formatting options, easy OSD window sizing and positioning, window animation support, as well as support for JPEG, GIF, Bitmap, Windows Meta File (WMF), and Icon (ICO) image formats. xOSD allows saving / loading up to 25 user defined and nameable OSD set-ups. Each set-up includes text formatting information, font, colors, transparency and alpha blending options, OSD window size and position, background image size and position, window animations, etc.
Please post bug reports here.
xOSD 0.2.0 (http://www.vibert.us/xOSD%200.2.0.zip)
Enjoy!
Steve
blubberhoofd
April 2nd, 2007, 09:05 PM
thanx Steve,
I've missed XP OSD.
Will try it soon ;)
maxthebuilder
April 2nd, 2007, 11:57 PM
Cool! Thanks!
SteveV
April 7th, 2007, 05:57 AM
What an overwhelming response :rolleyes:
honnt
April 7th, 2007, 06:29 AM
Actually, this is very cool, Steve... I'm able to get existing Girder variables into the text, but it doesn't seem to be taking any payloads ([pld1],[pld2],etc.) from the triggering event. Am I doing something wrong there?
By way of a suggestion, if you could modify so that the background image could be set at trigger, via a variable, that would be awesome. (I'm envisioning 'Photo CallerID', etc., if that were possible)
Overall, very impressive. Nice work!
SteveV
April 7th, 2007, 07:26 AM
Hi honnt,
Payloads *should* be working properly. What does the OSD display when you use payload variables? Try this in the "OSD Text" settings:
Payload1: [pld1]
Payload2: [pld2]
Payload3: [pld3]
If the event payloads contains values they should be displayed on the OSD. Otherwise you should see:
Payload1: {empty}
Payload2: {empty}
Payload3: {empty}
As far as the background image goes you can use a girder variable for the image file path. Set the variable to the desired file path in a script action before displaying the osd and you should be good to go.
Let me know how you make out.
Steve
quixote
April 7th, 2007, 07:39 AM
I haven't had the chance to test out your revamped plugin, but I remember your older version came in very handy.
I don't suppose that you could add .AVI support, could you? I know that would be a big task, but imagine the menu system possibilities? I'm learning to use Lightwave 3D, and I'm going to have to learn Flash, too, unless I can find another feasible method of displaying AVI transition animations.
Thanks
honnt
April 7th, 2007, 08:32 AM
Thanks, Steve, the more I play with this, the more impressed I am....
That said, I'm struggling getting payloads into the OSD. It seems to pick up other G variables just fine, but payloads themselves seem problematic. And I LOVE the ability to dynamically set the image to be displayed...very cool!
See the screen-shot attached for example of the pld issues. The scripting action before the xOSD display is simply a
print(pld1,pld2,pld3,pld4,pld5) to show what payloads got passed to the macro. The two triggers are just for testing (one of the triggers is a Girder event, the other is an X10 event). The screen-shot is the result of doing a gir.TriggerEvent from the Interactive Lua Console and passing the shown payloads....
Also, can't seem to get an OSD to display at all under G5....known limitation?
Clues? And thanks for this!
SteveV
April 7th, 2007, 08:58 AM
I haven't had the chance to test out your revamped plugin, but I remember your older version came in very handy.
I don't suppose that you could add .AVI support, could you? I know that would be a big task, but imagine the menu system possibilities? I'm learning to use Lightwave 3D, and I'm going to have to learn Flash, too, unless I can find another feasible method of displaying AVI transition animations.
Thanks
Unfortunately, this is probably outside the scope of what xOSD can do.
Sorry,
Steve
SteveV
April 7th, 2007, 09:10 AM
...That said, I'm struggling getting payloads into the OSD. It seems to pick up other G variables just fine, but payloads themselves seem problematic. ...
This is working here:
gir.TriggerEvent("TestxOSD", 18, "This is Payload1!", "This is Payload2!!", "This is Payload3!!!")
I do occasionally see the {empty} payload values if I use TriggerEvent to generate rapid-fire events.
As far as xOSD not working with G5: odd as it was developed using G5. What does the log show during Girder startup?
Unfortunately, my G5 trial expired and the trial extension key posted by Ron in another thread was only valid until 4/5. So I'll need to wait for a new key before I can do any more coding.
Steve
honnt
April 7th, 2007, 09:48 AM
Steve, ok...it's working the same now on G5 as it is on G4...not sure what the problem was earlier...
Re: payloads...looks like part of it may be the difference between using single ticks vs full quotes for payload values, i.e.
gir.TriggerEvent("ShowOSD",18,"Payload 1","This is 2") works, while
gir.TriggerEvent("ShowOSD",18,'Payload 1','This is 2') does not, nor does
gir.TriggerEvent("ShowOSD",18,"Payload 1",'This is 2'), although Girder itself seems to be able to deal with the payload values with either (or both) forms.
And you're right, it doesn't seem to always catch the [pld1] etc values...screen shots are from successive runs of the same OSD with the same values being passed in. Scripting action is setting mypld1=pld1, etc, and the OSD text is set for [pld1],[mypld1] etc.
Also encountered an issue earler where dynamically setting the OSD image and then displaying the OSD caused a complete crash of Girder (4, if I remember correctly)... I haven't been able to reproduce reliably yet, but will post more details when I'm able to.
SteveV
April 7th, 2007, 10:24 AM
The single quote/double quote issue is weird. I'm getting the payloads using a Girder API so not really sure what I can do there but I'll look into it as well as the (seemingly) random {empty} payoad values.
Regarding image path variable crashing Girder: looks like I need some addtional error checking and exception handling. I'll have a look once I can run G5 again.
Thanks for the report,
Steve
Rob H
April 7th, 2007, 02:54 PM
Re: payloads...looks like part of it may be the difference between using single ticks vs full quotes for payload values, i.e.
gir.TriggerEvent("ShowOSD",18,"Payload 1","This is 2") works, while
gir.TriggerEvent("ShowOSD",18,'Payload 1','This is 2') does not, nor does
gir.TriggerEvent("ShowOSD",18,"Payload 1",'This is 2'), although Girder itself seems to be able to deal with the payload values with either (or both) forms.
That makes no sense to me, by the time Girder sees the values all that is available to it is the contents of the strings, ie without the quotes since that is pure Lua.
What happens if you use e.g. [[Payload 1]] instead?
honnt
April 8th, 2007, 05:28 AM
Rob, sending the payloads in double brackets instead of either single or double quotes is fine, but the plugin still doesn't reliably report the standard plds. Copying pld1, pld2 etc. to other variables and then having the plugin display both standard plds and the new variables frequently results in {empty} standard plds and valid copied variables.
Attached is a GML that demonstrates.
Rob H
April 8th, 2007, 06:40 AM
Is it possible that other events are arriving in the meantime? That might change the payloads.
You could possibly test this by using gir.AddEventHandler instead to handle the event. One of the parameters to the event handler is a table of payloads.
SteveV
April 8th, 2007, 06:42 AM
Rob, sending the payloads in double brackets instead of either single or double quotes is fine, but the plugin still doesn't reliably report the standard plds. Copying pld1, pld2 etc. to other variables and then having the plugin display both standard plds and the new variables frequently results in {empty} standard plds and valid copied variables.
Attached is a GML that demonstrates.
The {empty} problem is an issue with the plugin attempting to retrieve the payloads a little late in the display process (after calculating the window size, positon, loading the image, etc). This has been fixed and will be in the next release.
Steve
SteveV
April 9th, 2007, 02:55 PM
Version 0.2.0 has been released. See first post for dl link.
Bug Fixes:
Payload data being accessed too late in some instances resulting in {empty} data
Prior image not being unloaded when new image load fails
Steve
pitbullface
April 11th, 2007, 07:39 PM
xOSD is a redo of the the G3 XP OSD on-screen display plugin. It allows you to display text and images without having to use lua.
Works Great! Thank you for upgrading this for V4 :)
-pitbullface
SteveV
April 12th, 2007, 02:16 PM
Great to hear it's working well. Thanks for the update.
Steve
Powered by vBulletin® Version 4.1.8 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.