Skip to: Site menu | Main content

Development Log February 2008

Thursday, 28th February 2008

Started fixing the incorrect positioning of text elements at some swf output resolutions. Haven't got very far though, as I'm still very woozy from having a wisdom tooth taken out yesterday. Completely unable to concentrate for more than a few seconds, which makes it difficult. :(


Wednesday, 27th February 2008

Finished adjusting the positioning of elements in the control bar, for swf output. All in cvs.

Should be properly usable (again?) now, with the exception that for the smaller resolutions (128x96 -> 176x144), I don't physically have anything I can test those on, so no idea how good/bad they're actually looking.

The text output for some resolutions still needs work, as the positioning of elements there seems to go awry sometimes too.


Tuesday, 26th February 2008

Started fixing the swf element positioning bugs in the control bar. Worked out what the problem was, in that attempting to calculate scaled control bar dimension based upon project size is just plain wrong. ;-> So, now going with a different approach, of hard coding optimal control bar element sizing and positions for each output resolution.

The main code change is mostly done, but I still need to get the optimal (or decent at least) element sizes right for each output resolution. Working code is in cvs for 800x600 output resolution, and in fact the control bar code is hard coded to that size until the rest of the resolutions are added in. :)


Monday, 25th February 2008

Completed the update to the non-windows preference loading code. It now validates all incoming values, reverting to sensible defaults if anything non-valid is detected.

Getting sick of doing the validation code, so might fix the swf output code tomorrow for something different. :)


Friday, 22nd February 2008

Began adjusting the application preferences loading code, to now validate input. Still needs more work.


Thursday, 21st February 2008

Updated the edit dialogs for both mouse and text layers to validate all input. Also updated all of the export dialogs to validate input as well.

That's the last of the dialog inputs done. Next is checking input coming from project files, the GConf registry, and similar.


Wednesday, 20th February 2008

Updated the Project Properties and Slide Properties dialog boxes to validate all incoming input. Also improved the memory allocate and deallocation in a few of the dialogs I've been working on recently.

Update - It took a bunch of hours, but now the layer editing dialogs for empty layers, highlight layers, and image layers all validate their input too.


Tuesday, 19th February 2008

Began updating the code that displays the Edit -> Preferences dialog, to validate the incoming input.

Update - Completed updating the code in the Edit -> Preferences dialog so everything there is validated. Also removed the scaling quality option because it's no longer used anywhere, added in a default "frames per second" field option that's saved between sessions, updated the default background colour to be saved between sessions, and updated the new project dialog to retry the dialog if invalid input is detected rather than aborting. All in CVS.

Update 2 - Found and fixed a number of crashing bugs, mainly caused by the left hand side film strip not having a thumbnail selected after certain operations (importing screenshots, starting a new project, regenerating thumbnails).


Monday, 18th February 2008

Updated the validation function to work with dynamic (unlimited) length strings, and adjusted the project file opening dialog to validate the incoming file name. All in CVS.

Update - Also adjusted the project file saving dialog to validate the filename to be saved as. In cvs.


Saturday, 16th February 2008

Only a small update today. Replaced all of the calls to our own sound_beep() function, with calls to the gdk provided gdk_beep() function. I think that sound_beep() was written before I knew the gdk_beep() existed. So, having our own function for this serves no useful purpose.


Thursday, 14 February 2008

Yesterday, began looking into what it will take to validate input properly at all the correct points, and created a stub function. Today, expanded the stub function to validate character and string type input properly, and then hooked it into the File -> New Project dialog. Seems to be ok, and will expand it for other field types, dialogs, etc over the next few days.

Update - Expanded the validation function to also operate with unsigned integer data types, expanded it to process both unsigned integer and string input, then updated the project width, height, and frames per second fields in the New Project dialog to use them. Also fixed a bug I just found, where a project's frames per second wasn't being saved in the project file nor read back. (Ugh, oversight on my part).


Tuesday, 12 February 2008

Found out why the workspace area and swf output was somewhat blurry, even when operating at 1:1 (100% zoom) scale. It turns out that the "highest quality" scaling algorithm provided by GTK (GDK_INTERP_HYPER - Hyperbolic) was causing it. I guess it's optimised for gradient image types or something, rather than text and lines. Changing the algorithm to any of the others removed the blur completely, so now output is sharp and good again.

Update - It took a lot of hours to get done today, but now the visibility check box in the time line area is honoured properly. Visible/non-visible state of layers is saved in project files, loaded when they're loaded, honoured during swf generation, etc. Seems to work nicely (in testing thus far).


Monday, 11th February 2008

Added a start up check for the presence of "flame-capture" in the path, disabling screen capturing if it's not found. Also added the ability to export both slides and image layers to PNG files. This should be useful in general, plus also useful for debugging why the swf output can look blurry when it shouldn't.


Thursday, 7th February 2008

Only a small update today. Reworked some of the code that redraws the main workspace area to be a lot more efficient.


Wednesday, 6th February 2008

Updated the screenshot importing code. Now when screenshots with multiple sizes are to be imported, they're all resized to one consistent size.

How that's done is dependent upon if there is already a project active or not. If there's already an active project, the screenshots are now scaled to the same size as that. If there's not an active project, then the size of the first screenshot is used and everything else is scaled to that. A warning is given first if there's any resizing going to be done, with option to bail first. :) All in cvs.


Tuesday, 5th February 2008

Taking some time putting small usability tweaks in place. Adjusted the Edit -> Preferences menu values to have the default output resolution be a selector instead of two separate text fields, adjusted the scaling quality to be a selector as well. Removed all support throughout the application for the "output quality" variable, as its no longer relevant. Also added multiple new output resolution choices.

  • My monitor: 1920x1200
  • SDTV: 480i (640×480)
  • EDTV: 480p (720×480)
  • HDTV: 720p (1280×720)
  • HDTV: 1080p (1920×1080)

Update - Completed turning all of the suitable fields in Edit -> Preferences into selection widgets. Might not sound like much, but there was also a lot of associated back end code needing finishing for them so their values were stored between sessions and honoured. That's now done too. :)

Update 2 - Decided to put together another development snapshot tarball, for people without CVS access to try out. It actually works decently, barring the output of some elements in the swf output at very-low or very-high resolutions. :) This is a *nix/*BSD release only, it probably won't compile on Windows until more time is spent on that side of things again.

 http://sourceforge.net/project/showfiles.php?group_id=58083&package_id=53841&release_id=574105 

Remember, you need to have Ming installed already (version 0.4.0.beta5 is known to work).


Monday, 4th February 2008

Major usability improvement in the area of screen shot capturing. For X11 (non-windows) platforms at least. Now when you click Capture, you just need to go and click on the window that you want to capture and the dimensions are figured out for you.

MUCH nicer, and makes for very smooth workflow compared to how it used to be.

It's all in CVS, and if you've tried out Flame over the last few days then I recommend you try this new update. :)

Update - Also reworked the code in flame-capture, as it was old and crufty and could segfault on long filenames. (Ugh!) Now fixed to dynamically allocate needed memory.

Update 2 - Moved the Project Properties into its own top menu bar option, as this makes things easier to find and clearer. Will probably put the project dimensions in there too soon.


Sunday, 3rd February 2008

Added a dialog box to adjust slide properties (slide name and duration). Was needed because there was no other way to shorten the length of a slide. Oops. ;->

Also removed the SVG export/output capability, as it's no longer useful.


Saturday, 2nd February 2008

Updated the Makefile related bits for the flame-edit module in CVS. It now checks for the presence of Ming (any version for the moment), and also correctly installs the control bar icons plus Bitstream Vera fonts.

Effectively, if you're on Linux this means you can compile it yourself pretty easily (grab both the flame-capture and flame-edit CVS modules) to create your own swf output. Nifty. :)

Some thoughts:

* You'll also need a recent version of Ming installed, version 0.4.0.beta5 is known to work.
* Remember to not bother with the svg output, that's broken and will be removed shortly.
* This will probably work without change on *BSD and Solaris Nevada. Haven't verified that recently though.
* Haven't tested the code on Windows recently either, but it'll probably work soon too (with Mingw32).

Feedback very much welcome and encouraged of course!


Friday, 1st February 2008

Significant progress today. Added working code (in CVS) for making layers clickable. It also occured to me that we don't have a "button" layer type defined yet, and we'll probably need one. For the moment though, I think the swf output is finished. It definitely works. :)

Tomorrow I'll probably clean up the Makefile for the Sourceforge version of CVS, so that people who check that out can actually use things.

Then it should be onto actually creating some stuff using the swf output (yay) and working out what's actually needing more refinement and fixing before a release in the next few days.

Will rename the project soon too, as there is other software in existence with the name Flame and well, I'm not precious about the name. I only inherited it. :)