[mythtv] Mythmusic portable device support

Duncan Palmer dunk_palmer at yahoo.com
Sat Sep 9 11:31:05 UTC 2006


Hi,

I've been doing a bit of work on mythmusic to allow me
to sync music to a portable device (an ipod in my
case). I haven't got too far with this yet, but
have working code that allows me to export all tracks
in the active play queue to an ipod (see attached
patches against 0.19). I thought it might be a good
time to see if I can get some comments on my
approach... if people like it, I'd like to try and get
this functionality included in mythmusic eventually...

My aim in the long run is to be able to plug in a
portable device, and:
 * play music from the device without having to first 
   import it
 * export music to the device
 * carry out limited management of the device (e.g. 
   delete music from it)

To this end, I've created a MusicStore, which
implements operations common to all sources of music:
 * loading metadata from store
 * exporting metadata to the store
 * changing metadata in the store
 * exporting new tracks to the store

The attached patches do the following:
* MusicStore and the derived class IpodMusicStore are 
  implemented with enough features to allow music to
be 
  exported to a portable device.
* A DiskMonitor has been implemented to allow 
  connection of removable disks to be detected (I had 
  to make some changes to the MediaMonitor to make
this 
  work, as that class is biased towards CD handling).
* DatabaseBox has been modified to add an extra button

  to the active play list menu. This allows the 
  contents ofthe play list to be exported to a
portable
  device when connected.

The ipod support requires libgpod (I'm using 0.3.2),
which in turn relies on glib( >2.8), for ipod support.
Does anyone know of other MythTv components that rely
directly or indirectly on glib?

Things I'm still working on:
1. Deleting tracks from a portable. I'm thinking of 
   adding a new item to the tree in DatabaseBox. This 
   will allow music from a portable to be selected for

   playback or deletion.
2. Playing tracks from a portable. I think the best
bet 
   here is to treat portables in a similar fashion to 
   CD's as follows:
     * All metadata has a store handle
     * Operations specific to a store (e.g. removing 
       all CD tracks from AllMusic) specify the store 
       handle.
3. Working with non-ipod portables. Should be fairly 
   straighforward...
4. Ultimately, portables are very similar to CD's and 
   so I should be able to write a CDMusicStore to 
   handle CD's.

There are other small things to be done, such as
storing the portable mount point in the database,
allowing the user to configure it, and providing
proper progress reporting when exporting tracks to a
portable...

Comments or other help would be much appreciated.

Cheers,
Dunk

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mythplugins-3.patch.gz
Type: application/x-gzip
Size: 11743 bytes
Desc: 589031663-mythplugins-3.patch.gz
Url : http://mythtv.org/pipermail/mythtv-dev/attachments/20060909/d8438d2f/attachment-0002.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mythtv-2.patch.gz
Type: application/x-gzip
Size: 2169 bytes
Desc: 4149809425-mythtv-2.patch.gz
Url : http://mythtv.org/pipermail/mythtv-dev/attachments/20060909/d8438d2f/attachment-0003.bin 


More information about the mythtv-dev mailing list