Mobile Devices fun

Hello everyone,

Today I wanted to show you yet another project I’m hacking on. For all of you who own a portable media player or a portable device, and are frustrated about not having a good application to manage it, you’d better listen up πŸ™‚

I gave it a quick name, DeviceSync, that probably makes a bit of confusion about what it really does: it is a tool that is able to transfer files and manage devices, like iPods, MTP players, and whatever.

But let me show you what’s really cool about it πŸ™‚

The power of plugins will make it easy to manage even the most uncommon devices

The power of plugins will make it easy to manage even the most uncommon devices

DeviceSync is completely plugin based. This means that through a nice API, developers will just have to write a simple plugin for their device type, implementing the given functions. Everything else will be handled by DeviceSync. Abstraction For the win!!!

In short, this means DeviceSync is extensible to an infinite level. Every kind of device can be supported, as long as someone steps up and writes a plugin for it. And trust me, it will be easy to write a plugin πŸ™‚

DISCLAIMER: Starting writing plugins now could be a waste of time. I’m revamping the API everyday, so, unless you are ready to step through various revamps, you’d better wait some more days before starting your plugins.

We can connect some devices!

We can connect some devices!

And here comes the actual connection πŸ™‚ And, once you get it going…

Here comes DeviceSync interface!!

Here comes DeviceSync interface!!

There it comes! You see my media player connected on the right. Obviously, you can show any connected device in both views, and transfer files between them, by adding them to the queue you see below. I wrote the MTP plugin and the local plugin only, and I’m already able to transfer videos, photos and tracks to my media player, and creating folders too πŸ™‚

Obviously, what I’m showing you is still in the works: it’s by no means stable (I started it just a few days ago), it’s unpolished and everything bad about pre alpha software. But, if you’re very keen on trying it, it lies now in github here: . I will move it to playground once the API becomes stable and documented.

Mockups, ideas, help on the code, a decent name, and whatever else are, as usual, more than welcome!

P.S.: Before you start screaming about code duplication, I joined the Amarok team and will actively work on media devices support. In the end, Amarok will be used for music transfer, and DeviceSync for everything else πŸ™‚


~ by Dario on 23 October, 2008.

21 Responses to “Mobile Devices fun”

  1. Looks really nice and it’s something I was really looking for. One suggestion, is it possible to make this app as a plugin for Dolphin? That way you don’t have to launch another app to manage files. Maybe as a panel like the current information and places panel.

  2. hello!

    looks nice.

    +1 for dolphin/KIO(slave) integration.

  3. Sounds kinda like a super set of opensync and kitchensync. Think you might be able to involve that too, so things like cell phones will work?

  4. @Yilmaz and ‘anonymous’: early in Amarok 2, Jeff Mitchell tried hard (really hard) to get KIO to work with MTP. I understand that some of the assumptions of KIO don’t really work with MTP though. MTP doesn’t really work so well with URLs etc.

  5. Sounds really good! I would like to see this, maybe in KDE4.2? πŸ™‚
    I’m not sure if it has the right name. As it’s pulgin based it might not only be used to sync devices πŸ™‚
    I own an N810, so if i could sync it using DeviceSync you would say it really is an device sync, but as it would be best to connect to it via wlan network and ssh (i’m not really in shh and file transfere but i think there’s someting called scp to copy files over ssh) it’s more like a normal network filetransfer.
    Even if in my case maybe the sync would be made over bluetooth, an ftp/ssh/smb=networksync pulgin would be great! (sure there are other tools, but to just keep dirs in sync i would prefer a nice little tool)

    Keep on the good work!

  6. What about breaking this into two pieces, a backend inside of solid that any program can use, and a frontend that accesses the backend for the syncing. That way any program can interface with devices through a single API. Amarok, for instance, could connect to the backend for syncing music, dragon player could connect to it for watching movies, digikam and kphotoalbum could connect to it for syncing pictures, etc.

    I think having this sort of task-oriented approach available in solid would be great. Instead of handling devices by how they connect (Bluetooth, network, etc) they are handled by what they do (media storage, input, audio, etc).

  7. Is this app only designed for media players? What about phones and such?

  8. @TheBlackCat: Solid is about just providing information to KDE apps.

    However some code sharing between these two apps might be nice, especially since they’re both being worked on by drf__. πŸ™‚

  9. @Ian Monroe I see. Too bad to hear that.

    If you’re interested, I have created a mockup for you that you can use.

  10. DeviceSync is an awesome name. It’s simple and clear. Keep it!

  11. @I-want-a-KIO-slave: I am already investigating the possibility, and I talked about this with Kevin today. It is not impossible, since the whole stack is already asynchronous and can be easily adapted to the KIO interfaces. Surely, some additional help would be appreciated πŸ™‚

    @Media-players-only?: Short answer: no. You can create a plugin for anything. Talking bluntly, DeviceSync implements an high level, simple file transfer stack designed with devices in mind. As long as someone writes a plugin, it can support anything.

    @TheBlackCat: As Ian already said, I am taking care of devices in amarok since yesterday πŸ™‚ I am already thinking about an API revamp in it, and stay sure Amarok will use the best solution available, as always πŸ™‚

  12. I don’t know if that’s in the scope of this program, but I often need a program to synchronize a specific directory on my computer with a directory on my media player. At the moment, I use a rsync shell script and a simple PyQt GUI that I’ve written some time ago, but I think this problem could need a bit more attention, as it seems to be a standard task that’s not well addressed with the standard tools. Some use cases are: Synchronize your local music folder with the music folder on your music player, do regular backups of a folder on a USB stick… I know it’s just a simple rsync command, but for a lot of people, this is too much. The ideal solution for me would be if (after configuration) I would be offered to do a synchronization as soon as I plug in a device.

  13. @Yilmaz, Your mockup makes me wanna lick my screen

  14. How does this compare to existing sync tools like KitchenSync or KPilot? What are the differences/advantages/drawbacks? One obvious advantage over KPilot is that it supports more than just one class of devices, but I honestly don’t know how it compares or relates to KitchenSync (and something similar has been asked in a previous comment, see the comment by xian).

  15. Wow πŸ˜€

  16. I really hope you can write plugins for connecting Windows Mobile phones and sync’ing with email, text messages and the like. The other things like opensync and kitchensync leave much to be desired — especially KDE4 prettyness!

  17. Quote: “it is a tool that is able to transfer files and manage devices, like iPods, MTP players, and whatever.”

    so I guess as long as it’s a file you should be able to sync it

  18. Just curious, but how does it relate to KitchenSync or KPilot?

  19. Just curious, but how does it relate to KitchenSync or KPilot?

  20. One suggestion:

    “Allow managing an Mtp device through DeviceSync”

    does not mean anything to a new user, and does not clarify what MTP (the name of the plugin) does. Most people will not know what MTP means (heck, I had to google it). How about:

    “MTP (Media Transfer Protocol)”
    “Synchronize with media players (cell phones, iPods, etc…)”

    that way, l33t that know what MTP means know exactly what this is, and new users also get a good idea of what this will do.

    Also, local storage is somewhat confusing, how about?

    “My Computer”
    “Synchronize with files in this computer”

  21. Hello, I’m marco, i want to know if this project is possible to put in AUR Repository, because also if isn’t stable, i need of this program, because i have a MP3 Samsung with MTP Support, and Amarok 2 still haven’t support for this.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: