My comeback with Marble and KDE

Well, I have to say I had been in some kind of “mental shutdown” ever since the series of bad incidents that had happened to me, but it feels good to say, that now after coming back home, and getting a few days to get a grip back on myself, I am back with FOSS again.

I just pushed my latest patch to the upstream git repository of Marble after it got accepted in the git reviewboard, and thus have enabled the support for reading and writing of the gx:altitudeMode KML tag in Marble, which means that, from now on, along with being able to get the height of any location relative to ground, the height clamped to the ground, and the absolute height, we will also be able to get the height relative to and clamped to sea floor as well.

Here are the contents that were present in the previous tag of <altitudeMode>

  • relativeToGround – (default) Interprets the <altitude> as a value in meters above the ground. If the point is over water, the <altitude> will be interpreted as a value in meters above sea level.
  • clampToGround – For a camera, this setting also places the camera relativeToGround, since putting the camera exactly at terrain height would mean that the eye would intersect the terrain (and the view would be blocked).
  • absolute – Interprets the <altitude> as a value in meters above sea level.

And here are the contents of the new tag <gx:altitudeMode> whose reading/writing have been enabled by me:

  • relativeToSeaFloor – Interprets the <altitude> as a value in meters above the sea floor. If the point is above land rather than sea, the <altitude> will be interpreted as being above the ground.
  • clampToSeaFloor – The <altitude> specification is ignored, and the Camera will be positioned on the sea floor. If the point is on land rather than at sea, the Camera will be positioned on the ground.

Thanks to my mentor Dennis Nienhüser for reviewing my patch 🙂


Implementation of automatic SNR detection in Simon-listens

Made my first commit to simon-listens today, a speech-recognition solution by which you can control your computer by giving commands with your voice. Previously, the users needed to separately do “training”s inside Simon to configure their mic settings according to their voice, and adjust it in a way such that there is not much background noise and their voice can be heard distinctly. Well, that problem just got resolved, because from now on, their is no need for the users to undergo any “training”s before using Simon to control their system. He/she can simply talk directly on the mic, and they will be shown on the main window itself, if the signal-to-noise-ratio (SNR) is sufficiently high or not, and the mic configuration can be changed accordingly if required.

Thanks to my mentor Peter Grasch for helping me understand the working components of the software, and the source code in details 🙂

My contribution to Marble so far

Well, it’s been a long time since I had written my last blog. But I’m happy to say I have managed to make 5 commits in total so far (2 of them very small ones) in less than a month which has been pushed to the upstream by my mentor, Dennis Nienhüser. So here’s a brief summary of my commits:

1) April 24- Improve rendering of GPX tracks and routes. Well this one was a rather simple one. Basically, the aim was to make it possible for the active tracks to be distinguished from the ones loaded from file. So after the commit, the rendering of tracks and routes has become identical to the rendering of tracks and routes created by Marble itself, except that the color has been made slightly more saturated in order to make it possible to distinguish them.

2) May 17- Add support for reading the KML Model tag. As for now, Marble does not produce 3D images on closeup views. Although Google Earth has the facility. In KML, you can import 3D models—such as buildings, bridges, monuments, and statues—in the COLLADA interchange file format. So the first step for bringing 3D features to Marble would be to add support for reading/writing the KML Model Tag. So I wrote the GeoDataModel and other associated classes along with the various tag handlers and added “read” support for the tags. Although the patch was tremendously long (of 60 files) still fortunately a portion of the patch was done from before so it made my work a bit easier.

3) May 19- Fix capitalization according to kml spec. This one was a very small bug which fixed the the enumerator values of the altitudeMode tag. Previously they started with capital letters, and I changed it to small letters (made the first letter from caps to small).

4) May 19- KML Model tag writer The reading/writing of the tag could only be completed if the “writing” part was done as well. So, I wrote the KmlModelTagWriter which could do the job. I had created a kml test-file containing the Model object in it, for testing my work.

5) May 19- Fixed include guard. There was a very silly mistake in the include guards in one of the files. Changed it to the correct one.

As for now, I am working on adding support for writing the KML gx:TimeStamp and gx:TimeSpan tags and hope to complete the task by the next day…