First, a little bit of historyFirst, a little bit of history
It Seems that was yesterday when a year ago in the Gran Canaria Desktop Summit, Victor sent a file to me through Bluetooth and kdebluetooth saved it in a hidden folder, the file is still there "~/.kbluetooth4/Vídeo003.3gp". That fact is what made me decide to use my spare time working on kdebluetooth.
After months of work in kbluetooth (the kdebluetooth fork I did), it started to work, but that spent hours made me realize that the kbluetooth never would be stable, it is a clear example of spaghetti code. Because of that, we started a new project called BlueDevil. If you're wondering about the name, Edulix came with it while working on the daemon, and it is based on PowerDevil (the name).
After a few fridays working on it, suddenly a Spanish company sent an email to me, asking for help to develop a Qt library to deal with BlueZ. A couple of emails (and beers) later, they hired us (ufocoders) to write the library, the first big step towards a real BlueDevil was done.
It's known that the best way to fully test a library is by using it a lot, so we started a negotiation to finance the development of BlueDevil, finally we got an agreement, we'll pay it 50% / 50%.
So, this is the boring history, that in my most humble opinion had to be written, now let's start with the review.
KDE Config Module (system preferences)
The Bluetooth KCM allows you to configure all the options from a single place, it is divided in 3 pages:
- Devices, allows you to switch on/off global KDE Platform Bluetooth integration, and manage your remote devices (add, rename, remove...)
- File Transfer, allows you to switch on/off the reception of files, and configure where (by default) they will be saved once received.
- Adapters, allows you to configure your adapters, changing the name, the visibility...
The wizard allows you to pair with other bluetooth devices, and if they have compatible services connect to them. the highlights are:
- Pair with any device
- Connect to input service (mouse, keyboard, Wiimote)
- Connect to audio service (headset, phones)
- Powerfull "auto" PIN Mode, which has a database containing exceptions.
In the following video, you can see the pair+input connection done with a cellphone, which is used at the final to disconnect itself :p
In this one, you can see the connection of a Nokia Headset, and the integration with the system (kmix/phonon)
The systray is executed only if Bluetooth adapters are found, it allows you to do everything you want to:
- Send files
- Browse devices
- Configure remote devices
- Configure adapters
- Configure file transfer
- Add new remove devices
- Connect to known devices services.
KDE Input/Output integration (KIO):
The KIO integration allows you to discover and browse your devices from your favorite file browser, the highlights are:
- Discover device
- Show and configure (after clicking on them) the supported services.
- If supported by the device, browse the files (copy, remove, create dir...)
Receive files from other devices is supported and totally integrated with the system (using notifications instead of blocking popups etc).
Finally, we'll be releasing one RC each week until we consider BlueDevil stable enough, so the next release will be Friday 4
if you wish to help in the development of BlueDevil, you can contact us in irc.freenode.net #solid and in the kde-hardware-devel mailist.
I have been quite busy these days, between Akademy and everything. So thought about writing a small blog entry with the status of the projects where I'm involved:
I'm sorry guys to announce it in that way, but KBluetooth is almost dead. I'll release a new version (0.5) trying to fix all the crashes we're having, and it will be everything from my part. I hope to release that version withing this week.
We have ported kamoso to vlc1.1 (you can get the code from the proper branch), and it is working quite well. I'd like to release a new (last) stable version which won't crash when the application is closed. After it we'll concentrate our efforts in stabilizing the new code, getting it too work perfect with vlc 1.1.1.
I did almost nothing for 4.5, but I'm planning to do some maintainer work for 4.6, closing bugs (yees! the pepperoni bug too), and I'll try to remove the "blinking", but I don't know how (yet) :p
Well, tonight (in 8/10 hours) you'll have news about this one :)
Yay! I'm planning to join the group of crazy developers that works on NetworkManager+KDE, the first task I'll try to accomplish is the removal of Solid::Control, for now, I'm reading code code and more code, and I'll do that until I'm able to paint a "virtual map" of what is currently implemented. I don't have a date for that.
See you in 8/10 hours with a surprise (a known one :p)
We're a lot of developers in KDE, and each of us like to use one or other tool to write code, for example, is known that I love KDevelop, others like vim, emacs, kate, qtcreator, eclipse... But you know what we all do? ask for help :p
So we've develop a new Plugin for KDevelop which will give us direct access to where all the KDE knowlege is stored
Day 2: Trip to Zermatt
This day was marked by the trip to Zermatt but not by the outward journey but by the return one which I did (as the major part of the people) walking. We went through the forest crossing 2 rivers (well, jumping 2 rivers xD) and of course, talking about software, akademy, politics etc. By the night, a mysterious KHTML crash produced by gcc appeared in my laptop sadly I lost all the hacking time figuring out that gcc was the problem :(
Day 3: Kamoso meets j-b (aka vlc man)
I don't remember exactly when we introduced Kamoso to j-b, but I do remember that I got stunned because seems that we did it quite well (the usage of libvlc and libvlccore). After a couple of minutes we fixed like 3 kamoso bugs (thanks to j-b).
We can say that since them Kamoso is on the road again :)
Day 4 and 5: Kamoso hacking and rediscovering vlc
In the following days I concentrated all my efforts in 2 topics: port kamoso to vlc 1.1 and stabilization. The port was rather straight, I got the basic features (display and get pictures) working without many problems. Then once I had the base working with vlc 1.1 I started to fix crashes, I was able to smash all of them but one, anyway that one is fixed now (Thanks to the vlc people).
Additionally, to fix some bugs I needed the help of the vlc community, j-b pointed me to the guy we had to talk with to fix some problems we had with the audio recording, there was where I realized the healthy community that is behind vlc, which is not only a good project but it is also a good community
For those who know what QuickSand is you may wonder "What is the relationship between QuickSand and Multimedia/Edu?" the answer to that question is quick and short, none :p but it is what I did today.
What is QuickSand?
QuickSand is an alternative interface for KRunner, it is integrated in KRunner (the code is inside KRunner), and since the major part of KDE users seems to like the default interface almost nobody knows his existence :p, but it actually exists and I can prove it!
So what's up with QuickSand?
QuickSand is one of these software (or in this case a part of a program) which were developed in the early days of KDE4 and for some reason the maintainer(s)/authors are "missing" or are not taking care of that code anymore, this may seem sad but Hey! here is where the beautiful of the free software comes to the rescue, any interested developer can contribute and even adopt it.
What I did to QuickSand?
Basically what I did is some "maintarnership", removing/adding stuff here and there
- Unhardcoded all the colors (Now they are following the respective KDE/Plasma themes)
- Added a button to execute the system activity
- Tunned the interface a little bit
- Fixed some relayouting issues when accessing to the options
- Add "Esc" as a shortcut to close the interface (AAAAH! that was really needed)
- Fix the only known crash (Has been backported to 4.4.4)
- Some other minnors changes.
This is the result
I'll write an entire post about QuickSand, I think that it is an interesting concept and I may adopt it in the future (KDE 4.7 at least).
Tomorrow the hard work on Kamoso will start, stay tuned!