Archive for the 'KDE' Category


QDBusXML2cpp troubles

Saturday, March 15th, 2008

The current telepathy-Qt bindings are seriously outdated and I am working on coming up with a new set of bindings (mostly) generated directly from the Telepathy specification XML files. This took much longer than originally anticipated since the Telepathy people do not believe in defining types before using them (they consider type information in the spec to be purely informational since it is not needed for glib bindings) nor want the be limited in their freedom to write the specification by requirements of any language bindings (like reserved keywords, etc.). Qt’s dbusxml2cpp type annotation did not make things easier either…

I thought I had managed all that: The bindings generate fine, hardly any manual tweaks to the code are required and the code even compiles fine. But today I found out that my updated Telepathy bindings for Qt are having some serious issue: The bindings are incomplete.

After some investigating I found out that qdbusxml2cpp is causing the issue: D-Bus allows a arbitrary number of out parameters, qdbusxml2cpp only one (or zero).

To make matters worse: qdbusxml2cpp fails without returning an error code, giving an error message or any other indication that anything went wrong. It even generates bindings that compile fine. Unfortunately the generated code does contain methods/signals up to the first method with several output parameters. All the other methods/signals are just missing from the generated code:-(

Has someone encountered this kind of problem before? Is there a workaround? I could handcraft the code again, but then it will be basically impossible to update the bindings once new versions of the telepathy specification become available.

Update: Thiago looked at the issue and together we found the problem. It was not an issue in qdbusxml2cpp after all just one of the generator scripts putting an invalid type into the XML. Dbusxml2cpp is just not giving out any hint about the real trouble (or that there is any trouble at all). Run xmllint if you need to debug issues with the files qdbusxml2cpp chokes on.

Say “Hi” to Telepathy-Qt

Saturday, March 8th, 2008

Since the Decibel realtime communication framework is currently reviewed for inclusion into kdenetwork I had a short discussion with some of the Tapioca Developers. As you might be aware (but probably are not) Decibel uses Tapioca to make working with the Telepathy spec more comfortable. We thought that it would be nice to have the libraries necessary to build Decibel readily available in KDE’s own subversion repository. The realease team did not mind, so I went ahead and imported a shiny new version of Telepathy-Qt into trunk/kdesupport/telepathy-qt. Telepathy-Qt offers Qt-based language bindings to the Telepathy specification.

This version is almost completely generated directly from the XML files forming the telepathy specification and thus much easier to update than the version Decibel is currently using. Unfortunately a lot of names changed with this update, so it is no drop in replacement for the version currently used by Decibel (which is really starting to show its age by now). Birunko and others are already working on brushing up Tapioca-Qt to work with this new version and want to drop their results into trunk/kdesupport/tapioca-qt as soon as it becomes available.

Once that code is there we will still need to brush up Decibel a bit so that it can take full advantage of all the new features and interfaces available in the newest version of the Telepathy spec (and to fix the fallout caused by the renames in Telepathy-Qt).

Decibel Status update

Friday, February 15th, 2008

With so many rumours about the Decibel realtime communication framework floating around the dot I need to get over my blogging-lazyness and finally write a short summary about the status of Decibel.

It ain’t dead.

It seems some of the naysayers were watching branches/work/decibel, which indeed is dead since the project was moved into the playground. I did blog about that move, but I should probably have properly announced that move (even though I am still a bit unsure where exactly). So we were moving, even though we were doing so below the radar:-)

But even there it was going a slower than it used to be. This is in part due to constraints on the amount of time I can spend on the project. Another factor is that nobody has asked me for fixes nor improvements, so I just assumed all is perfect;-) So send in some feature requests to speed up development. But even without requests there are some cool things happening!

What has happened?

George Goldberg has stepped forward and send in patches that integrate the Decibel daemon with KWallet. So you can now store your account settings there, together with your other online identity data. Allen Winter has provided some fixes to our build system. These were necessary to bring Decibel into shape for KDE review process.

What is in the works?

George is continuing his KDE4 integration work. I am currently working on a system to automatically generate Qt wrappers for the Telepathy specification. This will get us all the new goodies from there (once the more high level Tapioca library is updated). Allen has moved the code into the KDE review area and it is now getting reviewed (I think;-).

Please track the code in trunk/kdereview/decibel. The move is not yet official and thus was not yet announced, but this is where all the new code will end up. playground/kdepim/decibel will get removed as soon as possible. Allen is guiding me through the review process, so I am sure that we will closely follow the standard procedures this time;-)

Telepathy Mission Control and Decibel Standardisation

Thursday, August 2nd, 2007

George Wright is spending his internship over at collabora on coming up with a proposal for a freedesktop.org standard on high level functionality in Telepathy. Why is that necessary?

Decibel was developed to provide that high level API to realtime communication based on Telepathy. For some reasons or another this did not work out and we ended up doing Decibel without the full support of the Telepathy team. We got some really cool thing going with Decibel… and then a couple of weeks back Nokia released their set of APIs as used in their internet tablets. This Mission Control does somewhat overlap with Decibel in functionality. So all of a sudden we have two competing technologies with completely different APIs: The nightmare of developers having to write cross desktop applications.

George is now charged with the job of bringing the two implementations closer together. For that reason he has evaluated Decibel and Nokia’s Mission Control for the last couple of days and came up with a proposal. I am somewhat proud that he came up with something much closer to Decibel than to what Mission Control did! At the same time it does feel a bit strange to have somebody define something based on my APIs as ’standard’… never thought something like that would ever happen to me:-)

KCall for KDE4, using Decibel

Thursday, August 2nd, 2007

I just released a new version of KCall: Shiny and ready for your KDE4 desktop.

What makes me excited about this release is that it is the first real world application making use of the Decibel realtime communication framework! Using Decibel lead to a drastic reduce of code size: Why reimplement the services offered by Decibel already? And we even turned the former SIP-only application into a real telephony application: It should work with all telepathy connection managers using the streaming channel.

I have to admit that so far I have only tested KCall with our telepathy-snom connection manager, but in theory it should work with any other streaming connection manager using the Telepathy APIs just as well. I’ll test the theory as soon as I find some spare time to do it, hoping that it actually applies to the real world;-)

Decibel 0.5.0 and Telepathy-snom 0.4.0 released

Tuesday, July 31st, 2007

Today I managed to get new releases of Decibel out of the door. Pieces are really starting to fall together: This release is the first one to support a real application! KCall will be released soon, using Decibel 0.5.0 to setup incoming and outgoing calls.

There were very few changes at the Decibel daemon itself. Most work this time happened in the addons directory of the development tree which houses - you guessed it - addons (which tend to be KDE-specific;-). I wrote a logging daemon as an addon which is used by KCall to retrieve a call history (reporting time and duration of the conversation, etc.). It is really fun to add that kind of additional functionality on top of the existing framework!

Our KCall tests were done using our telepathy-snom connection manager. For those of you who have not been following my blog (shame on you;-) that is a piece of telepathy-spec compliant code used to ‘remote control’ a VoIP phone build by snom. This code was made a bit more telepathy (or better: the oral traditions surrounding the spec itself;-) compliant. I added support for sending DTMF tones while I am at it.

KCall and Decibel

Wednesday, July 25th, 2007

I am so excited to see the first real world application making use of Decibel;-)

Eva and me spend the last weekend updating KCall, porting it to Qt4 and Decibel. We refactored the code and converted it to Qt’s new Model/View concept, doing small cleanups all over the code while we were at it. I am still working on the port, improving Tapioca (the Telepathy wrappers Decibel uses), Decibel and KCall. The bits and pieces are beginning to fall together, but it still is some work to get all the functionality back into the application.

Feel free to check out the changes in playground/pim!

New Snapshot for Konqueror Embedded available

Tuesday, July 10th, 2007

The little brother of the well known KDE desktop browser “Konqueror” now bases on the most recent KHTML version available. KHTML 3.5.7 was released in May 2007 and contains many improvements.

While the KDE desktop development moved along, the little brother “Konqueror Embedded” which is optimized for embedded platforms stalled at KHTML version 3.5.1.
We are very proud to introduce the new release that uses the most recent KHTML version 3.5.7. This release should fix various rendering issues and improves the support of JavaScript related sites.

We are currently working on committing our changes back into the official SVN repositorio. A snapshot for Qtopia 2.3 is already available to play with it. It is available from: http://www.basyskom.de/index.pl/konqe

Comments are welcome! :)

A new kid in the playground!

Friday, July 6th, 2007

I am happy to announce that Decibel was just copied into playground/pim. We had some discussions about this move at aKademy in Glasgow and everybody (in this case mostly Will ;-) said we can go forward with it. So here we are…

To sweeten things up a little I just commited a big addition to the Decibel AccountManager KCM: Thanks to Lars Lischke you can now add and modify your communication accounts. Lars is currently doing an internship at basysKom GmbH.

Decibel 0.4.0 and the snom Connection Manager

Thursday, July 5th, 2007

I just announced the release of Decibel 0.4.0 to the mailing lists! See the release notes and get the sources. This version has its build system improved to work better with that of KDE4: Our code actually builds and works with the -fvisibility=hidden that is forced on us when searching for KDE4 libraries.

It further features a new graphical demo (minigui) which can be used to ring up people. At this time this demo should only work with the telepathy snom connection manager (no other backends are tested)… but once we update to the newest telepathy API throughout the project (starting from the Qt bindings to telepathy done by the tapioca project) it should be useable as a simple VoIP application by just asking it to use a VoIP capable connection manager instead of the snom one.

At the same time I released my telepathy connection manager for snom phones (release notes).

So if you happen to have a snom phone around, download the code and use the minigui application (which is part of the Decibel release) to ring up your friends and to see who is calling you on your computer’s screen;-)