PDA

View Full Version : Girder 3.2 Alpha 10...



Ron
October 13th, 2002, 12:55 PM
Okay, I've nearly finished the new plugin system, it probably still has some bugs and surprises but for the most part it seems to work on Win2k, ( no i didn't test under win9x yet ;-) )

Things that I still have to do

SlinkE
RedRat
Keyboard
TaskSwitch/Create
actually use gir_info


The girder header file is here

http://www.girder.nl/devel/girder.h

The FINAL API is here

http://www.girder.nl/devel/api.html
http://www.stack.nl/~stilgar/api.html (mirror)

Ron
October 13th, 2002, 12:55 PM
Whoops, didn't notice that english.lng was empty, it is regenerated automatically these days, but I changed directories,... that what I get for using absolute names :-)

Anyways about learn_event

The definition should be:
int learnevent ( char * old, char * new, int len);

This release expects learn_event to block until the function returns the new eventstring in the new pchar with a maximum length of len. When you return GIR_TRUE it will assign the value, if you return GIR_FALSE it will cancel learning.

What I am planning for the next release is a third return value GIR_ASYNC_LEARN ( = 1 ). This will make learn_event work in the old way, thus waiting for an event of the selected type.

Ron
October 13th, 2002, 12:55 PM
The logger... :-)

I see that register_cb has an undefined return value at this moment :oops: it should return GIR_TRUE. Fixing now. I've ported the keyboard, taskcreate and taskswitch plugins to 3.2. I'll release an updated version later today.

Ron
October 13th, 2002, 12:55 PM
Alpha 11 released. Fixes bugs reported by Mark and learn_event should now work asynchronously again. ( not tested... )

Todo

SlinkE
RedRat
gir_info should send close query


Possible bug: Girder seems to forget what plugins are enabled after a close and open,... but not all the time. I'm trying to track this down.

Ron
October 13th, 2002, 12:55 PM
Does that return GIR_FALSE ? that is weird, did you pass the correct plugin ID ? ( that is the only moment when it returns false, if it can't find the plugin )

Looking forward to your code, maybe I can learn a few things from it (the MFC part that is ) ;-)

Ron
October 13th, 2002, 12:55 PM
Okay, it does return GIR_FALSE,... checking why.

Ron
October 13th, 2002, 12:55 PM
Ah found it.

here is the fix

(removed)

Ron
October 13th, 2002, 12:55 PM
Both bugs have been fixed

(removed)

update: I'll loosen this restricten on the IDs a little, larger then 24 should be okay. I'll update the executable when I get back from class.

Ron
October 13th, 2002, 12:55 PM
Alpha 12 released

changes:

fixes for bugs report by Mark, thanks for the bug reporting!
gir_info implemented, QUERY_UNLOAD is now operating
improved the keyboard, taskswitch, taskcreate plugin. They caused occasional deadlocks
Modified minimum Plugin number to 25
Update header file and api.html to reflect new gir_info message.


Todo

Slinke,Redrat, still
Look at the i18n extraction during installer build looks like something is off
look into plugin saving problem

Ron
October 13th, 2002, 12:55 PM
Hi ho, hi ho. It's off to work I go.

LOL

I've tried to recreate this but so far no luck. The dialog box probably read : "Plugins disable failed". The bad part is, I have two warnings there that I mistakenly gave the same text. One that has to do with the query unload and the other that has to do with the gir_stop.

I've updated the executable to have 2 different strings now.

These warning should not popup until Girder waited around for 5 seconds for the first one and 10 seconds for the second one, did you have to wait this amount of time ?

Anyway here is an update executable
(removed)
It also sends the girinfo_queryunload when you unload a plugin from the settings dialog.

Ron
October 13th, 2002, 12:55 PM
I actually noticed that and updated it already.

Ron
October 13th, 2002, 12:55 PM
Victory! No bug report in the morning :-D

I haven't given this much though, I was planning on adding another category to the download page, but I can see how users will be _very_ confused by all the different stuff on there. I guess a new download page would not be a bad idea.

Ron
October 13th, 2002, 12:55 PM
Nope 3.2 will not load the older plugins. I might at some point make a wrapper DLL, but this does not have priority right now.

Ron
October 13th, 2002, 12:55 PM
Girder 3.2.0 alpha 14 is released, yeah seems like I am on a daily schedule. Testing by you guys would be appreciated. Don't let Mark do all the hard work!

Changes:

implemented girinfo_powerbroadcast
added splashscreen in right place
gave girder a real main window (hidden)
moved gir_compare to optional exports
removed more old code.
fixed registery writing problem for normal users.
removed version number from splashscreen
Changed 3 defines, GIR_TRUE=1 GIR_FALSE=0 GIR_ASYNC_LEARN=2, reason: define them as windows defines the booleans.


Girder is now coming very close to the functionallity that I want to see for 3.2.0. I'm thinking about moving to beta naming real soon now. Also I think the plugin API is good now, if there are no more objections to it I'll freeze it, and it will stay this way for a looooooong time. Extensions will be backward compatible as we where used to.

Mark F
October 13th, 2002, 12:55 PM
Cool!

bug - The English.lng file in the .zip is 0 bytes. Work-around, use the latest from 3.1.x.

question - gir_learn_event(PCHAR old, PCHAR newevent) has two parameters. What are they for?

Mark F
October 13th, 2002, 12:55 PM
another question: What does register_cb() return whenit works and when it fails?

Can you guess which plugin I'm porting now? :D

Mark F
October 13th, 2002, 12:55 PM
The register_cb call seems 1/2 correct. :) When I register the callback (using 3.2.0A11), I get GIR_TRUE. When I try to unregister the callback, I get GIR_FALSE. This is the last issue for the Logger.

UserEvent is complete.

OSDPopup is next.

Mark F
October 13th, 2002, 12:55 PM
Yes, I passed the same plugin ID (150) to register_cb both times. It is returning 0 for the register (callback@ != 0) and -1 for unregister (callback@ == 0). In between, the callback is getting the calls correctly.

Mark F
October 13th, 2002, 12:55 PM
Thanks. That did it.

PopUp compiles, now to validate. :)

EDIT: What ID should I use for the OSD PopUp? Girder 3.2a11 says that it must be larger than 100 (OSD PopUp == 100). Thanks. :)

EDIT 2: If I change IDs, .gml files will need to change. :(

Something I've noticed for a while but forgot to mention - The status string I'm passing back from gir_event() is not displayed.

Mark F
October 13th, 2002, 12:55 PM
Another problem. The binary field (maybe more??) is not being copied to the command structure before calling gir_event().

Mark F
October 13th, 2002, 12:55 PM
Thanks for the update. At this end, only the Serial plugin is still causing problems but I believe this is due to the plugin, not Girder.

With this latest version, on exit, sometimes I get a "critical error" box. It dismisses very quickly so I can't read it very well. I THINK it says something about "plugin unload failure" but I could be wrong.

When this happens, I don't have any of the supplied plugins loaded, only the ones I'm porting. :) All of my plugins return GIR_TRUE for the gir_info() call.

I'll try to narrow this down a bit more this evening. Although it MIGHT be associated with unloading a plugin before exiting Girder. That is, using file/settings/plugins, uncheck the box and press OK. Now exit Girder.

Hi ho, hi ho. It's off to work I go. :)

Mark F
October 13th, 2002, 12:55 PM
This alpha Girder hasn't had the anti-piracy thing updated. It reports a corrupted Girder though it then starts anyway. :)

I'll try to test more tonight.

Mark F
October 13th, 2002, 12:55 PM
I don't know if this should be in a new thread or not.

A logistical question: We will now have plugins for 3.0.x, 3.1.x and 3.2.x. All are valid but not compatible. Are you planning an update of some sort for the download page to make the distinctions?

Perhaps placing the Girder package on the page with the plugins that support that package? For example, a 3.2.x page with the current release of Girder and any plugins for 3.2.x.

Just wondering. :)

vlinders
October 13th, 2002, 12:55 PM
Another silly question:
Is Girder 3.2 supposed to still load the older 3.1/3.0 plugins ?
I tried with alpha 12 sunday, and it refused to load my 3.1 plugin (functions not exported).