Thomas Schueppel wrote:
> hi,

Hi

> did some experimenting with cdrdao last night. I can
> burn/rip bin/cue sheets now. They have some undocumented
> parameter to pass messages to an external app which I
> am using to get messages for progress and errors.

Maybe you don't need them. Freevo has control about the stdin and
stdout. Parsing stdout is also possible.

> Any ideas how to integrate this into freevo?

Yes

> Something like that:
> On CDs: RIP to disc, COPY
> On cue-files: Burn
> Perhaps on Playlists: Burn audio CD.
> 
> Also it would be nice to burn cds in background
> while listening to music or so. Any ideas how to do
> that?

OK, let's see:

You want to add a action to an item. Pressing ENTER on a cd should
give you the action 'rip to disc'. You need an item plugin to do
that. This kind of plugin get's the item when building the item menu
and you can choose to add one or more actions (based on the type of
item). You need to return a name 'rip to disc' and a function
'self.rip_to_disc'. You can also provide a shortcut to use the new
event system to start this on an extra key ... but you may not need
that. Look into small plugins like mover.py or imdb.py how to do
that. If you place the plugin in the normal plugin directory, it is
usable for all items, if you but it for example in video/plugins it's
only visible in the video menu.

Your callback function should create a thread so it can run in the
background. This thread should use childapp to start the process (see
mplayer.py how to do this, use the mplayer in audio because it is
shorter). Then the thread is running and Freevo could return to normal
and you can play music or whatever.

Until now, this is very simple, but there are some problems: 

1. You should take care that you can't burn a cd while another is
   burning (ok, that is easy, just check if you thread is running)

2. How to get information about the progress?

   a) you can't, just wait until the disc comes out ;-)

   b) you add an item to the MAIN MENU (or the AUDIO|VIDEO|... MAIN
      MENU). You need a main menu plugin for that. Right now, a plugin
      can only be one kind of plugin, so you need two plugins in your
      file, one item plugin, one main menu plugin. Right now all
      plugins must be loaded at startup, so it is not possible that
      the item menu creates the main menu plugin when it is
      needed. This main menu plugin could return no item when your
      thread isn't running or return an item which could should the
      progress when you select it (see the detach plugin for example).

   b) you use the idlebar. But we have to cleanup the idlebar before
      and not every user uses the idlebar. And you also need an
      idlebar plugin to show the information.

3. The item plugin can add actions to visible items. But bin/cue files
   are not known to Freevo so they are not shown and therefore you
   can't add an action. We need some kind of file browser for that
   which displays all files.



HTH


Dischi

-- 
Unnamed Law:
        If it happens, it must be possible.


-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
_______________________________________________
Freevo-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to