Re: [Banshee-List] Sync to Folder / plans for Dap on Mac OS X?




Hey Timo, welcome!

See inline:

On 09/16/2011 10:18 AM, Timo Dörr wrote:
Hi everybody,

since iTunes sucks big time when handling media files stored on a NAS, I
looked on current banshee-on-mac status and found the recently posted
Lion build (see mail:
http://mail.gnome.org/archives/banshee-list/2011-September/msg00020.html) which
works quite good on my snow leopard machine, too (with the same
mentioned dragging glitches that were discussed for Lion). Kudos for
that build, btw!

Now I found that banshee on mac has disabled all kind of Dap/device
syncing stuff. As I store all my music on a NAS in the network, I
occasinally need to sync some playlists with new/recent music to my
macbook and my android device when I'm at home to have some music with
me on the go.

It is disabled because, as you noticed, nobody implemented MacOS support.

That's why I've started a little hacking and created a basic
DirectorySync Addin, which is currently capable to do this. Everything
is very ugly right now but the copy process to my android device and
creation of .m3u lists works so far. See a screenshot here:
http://dl.dropbox.com/u/14469783/Ohne%20Titel.png

Woo, great!


Now I dug into the banshee sourcecode and found most of the
functionality i imeplemented is arelady there in the Dap/MassStorage
backends. I think a cleaner solution would be for me to implement a new
device type "FolderDevice" based on the device interfaces already
defined and have banshee do all the syncing. But it seems to me the Dap
stuff is tightly coupled to dbus/gnome libs for hardware detection,
which is the reason its disabled on Mac OS X builds, isn't it?

I'm no expert (yet) in all of Banshee's abstractions, but from what I've read in the source over the years, you're not completely correct.

First, Banshee is divided in a lot of assemblies (libraries and executables). I guess the ones relevant to our discussion are:

Banshee.Dap.dll
Banshee.Dap.MassStorage.dll
Banshee.Services.dll
Banshee.Osx.dll

In theory, the two first ones (Dap) contain all the relevant bits that you unfortunately have been duplicating. They should not depend at all on non-cross-platform dependencies (I just did a search on those projects for the word "dbus", and in their references, and no results). Take in account that some "gnome libs", as you name them, are still cross-platform (otherwise banshee couldn't work on Lion as it worked for you), like gtk, gdk, etc.

So, it's ok for Banshee.Dap.dll to link to Gtk and Gdk, but it wouldn't be OK that Banshee.Dap depends on Banshee.Unix.dll (which may work in MacOS but not in Windows), Banshee.Gio.dll (which would just work on Linux AFAIU), etc.

This is the reason why Banshee.Dap.dll and Banshee.Dap.MassStorage.dll depend on Banshee.Services, which contains several interfaces (i.e. under the Banshee.Hardware namespace, that are later used in the separate platform-specific DLLs).

So if you are still with me, I guess you already noticed I mentioned something that you may have not seen: Banshee.Osx.dll, a library which is actually already implementing some Banshee.Hardware interfaces. I guess, because of lack of developer time/resources, this library was not finished and then Dap support is marked as disabled in the Mac build.


Is there currently a roadmap for banshee on mac that will introduce
basic Dap stuff at least to some extend where all current devices are
not compiled in, but the core syncing infrastructe? That way I could
create a FolderDevice backend that would be usable on mac. If that's
currently not the case, I would continue to work on the addin-based
solution and maybe do some cleanup and refactoring to try getting it
into mainline BCE. Of course only if there is demand by users for that
addin.

The main Roadmap is https://live.gnome.org/Banshee/Roadmap .

As you see from that, we lack non-Linux developers so your help is highly appreciated.

Having your work in BCE is great, better than nothing and a lot of users will appreciate it if it gets bundled/packaged as soon as possible. But the longer term solution is start merging your code with the Banshee.Osx.dll to make it work out of the box in Banshee.Core, like it does for other platforms.

So, if I were you, I would start hanging out with us in irc://irc.gnome.org/banshee to ask for advice and let us know about your progress!

 Cheers,

   Andres

--





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]