December 11, 2008
Let me expose some changes that happen on SVN. This is quite technical but shows the progress.
- I committed GEGL vala binding to GEGL SVN. It is used by Gnome Scan SVN.
- Lots of update on the GUI : the selector and the options on the front tab are now packed in a Paned container allowing user to choose the space to allocate to each part of the tab. Useful for people having a lot of scanner listed. Other minor or not updates.
- Seperate modules in their own directory in the source tree and other clean up of the project.
- Reintroduction of GSane, the SANE GNOME Scan backend. It is unusable yet. More on this below.
I remember that before releasing GNOME Scan 0.6, i received help from Ross BURTON aka burtonini. He was very helpful on library, application and building system. However i remember Ross being disgusted by the GSane part. GSane in 0.6 provide far better support than 0.4 SANE-only GnomeScanBackend. However, it was designed and written with a lot of lazyness ;). I’m sometime tired of GObject boiler plate code.
While porting to new lib/, i wanted to make GSane as clear as possible in order to ease contribution and maintainance. So i first took the time to dream, think, sketch and design this sub-project. I took some decisions :
- Seperate modules sources in respective directory
- Don’t be afraid of boiler plate code. Just take to time to write it (just as needed). Thanks to vala for writing all lib/ and src/ boiler plate code. Writing modules/ boiler plate code is note that much code.
- Keep one class per file and avoid unterminating files.
- Don’t gather features in one class or one files. This way is seperated scanner (hardware option probing and lib/ interaction), option handling (translation between SANE and GNOME Scan API, workarounds, feature emulation, high level option implementation, etc.) and acquisition (GEGL operation, frame format translation).
SVN does only probe scanners, open them an retrieve option count. Base class are there, ready for implementing all the option handling (that’s 75% of the job of GSane). I still need to write GEGL operation for scanning. The challenge will be to support unknown length scan (think shedfeed scanner, business card reader and such).
After that, i’ll have to write the preview area and plugins. Then port GIMP plugin and 0.8 will be ready. GSane should be usable for Christmas, however preview may not be ready before 2009. I take to time to do it properly, in order to avoid obscur code and bugs. I’m fed up of rewrite
About 0.6 branch :
Despite the fact that GNOME Scan is 0.X software and thus i don’t support older version, Philip and me are to provide bug fixes for GNOME Scan 0.6. So yes, there will be a 0.6.2.