Recent blog entries for cmorgan

My first post in quite some time. Still working on wine, helping out in #winehq and working on other open source stuff. Since my last post I've done dozens of patches including two Wine audio drivers, one for Arts and one for Jack(a callback based architecture). The Arts one is quite useful to people, the Jack server is useful as an example of how to interface with a callback based audio system. Callback based audio is the future of audio servers as it allows for very low latency(<10ms resolution) and helps application developers divide up their audio support into queue and queue processing threads.

Things are starting to finally look up these days. I'm psyched about joining the excellent Codeweavers Wine development team. I'll have the opportunity to work on Wine as my part time job while at college as well as to help them with specific things required for porting applications to Wine.

I'm currently working on an almost complete rewrite of much of the treeview control. Some things will remain the same, but the meat of the control(the redrawing code etc) will be enhanced to reduce flicker. I'm also implementing a bunch of behavior changes so Wine more correctly matches the treeview Windows control. Once this rewrite is done I'll incorporate all of Corel's changes into it as well. I'm thinking about doing all of the changes at once, but it makes little sense to hold the control back for a month when people can get the benifit of many of the improvements before the work is 100% complete.

I'm finally back to work after taking about a month off. Had some relationship problems and needed some time to think and to get my priorities straight. I'm feeling a bit better now and getting back into wine stuff.

Finished the patch to LISTVIEW_SetColumnWidth() a day or so after my last diary posting on the 29th of May.

In other news I've also converted my main machine(dual 550 celeron-A) over to linux, Debian 2.2 is what I'm trying for now. Its actually kind of funny that I was originally interested in wine to run Starcraft and I'm also playing Half-Life these days(Counter-Strike mod), and finally wine runs Starcraft/Broodwar without any trouble at all, so I'm able to move to linux without having to worry about not being able to play my games.

Sent in a couple of patches to the datetime control and the monthcal control. These aren't exactly the most widely used controls, infact I don't know of any applications that use the datetime control, but someone has to get them working atleast a bit before Wine 1.0 :-) A patch to finish implementing LISTVIEW_SetColumnWidth is almost complete and should be submitted tomorrow. I wrote the inital LISTVIEW_SetColumnWidth with help from my skilled friend James about 7 months ago to get CuteFTP working, it will be nice to see it to completion.

In other news someone posted an article on Slashdot about the plans to move to Wine v1.0. This should bring a lot more people to try out Wine and already the newsgroup is packed with 50 new messages in the last 3 days :) Its going to be great when Wine 1.0 comes out, I can't wait to see how many people download and try out Wine when that happens.

Started more changes to a few common controls tonight. Should have a couple of significant patches(600+ lines) by this weekend that will bring those controls up to date with some of the more worked on controls like the toolbar and listview.

Didn't get around do posting a new entry until today, so this is the last 4 days worth of work on wine stuff :-)

-Added code to TOOLBAR_Paint/TOOLBAR_Refresh to only redraw buttons that are inside the invalidated rectangle. Previously whenever a WM_PAINT message was received all buttons were redrawn. As most toolbars have anywhere between 12 and 32 buttons, this was causing anywhere between 10 and 30 extra redraws when the user moved from one button to another as the change in the hot effect of the buttons only affects the button losing the hot effect and the button gaining the hot effect. The patch reduces the amount of processing performed when a toolbar receives a WM_PAINT message by anywhere between 85-95%.

-Fixed a bug in the tooltips code that was causing tooltips to not appear or be created properly.

-Added logic to the toolbar control so we only try to redraw buttons that had the hot effect applied to them, this stopped the redrawing of disabled buttons that showed no hot effect.

Fixed a sizing bug in listview yesterday night, in list mode when items were added/modified and their text became wider than the width of each item the text was cut off. Added a check to resize columns properly in list and small icon views which fixes a bug with CuteFTP.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!