Hi!

I'm writing a small plugin to play karaoke files (cdg) using pykaraoke
(pycdg) from inside freevo.
So far I got this (please note that I'm not a python developer):

--------8<--------
import config, plugin, os, re
from event  import *

class PluginInterface(plugin.ItemPlugin):
    """
    This plugin should add an option to play the CDG karaoke file if present.

    Activate with:
    | plugin.activate('audio.karaoke')

    """

    def __init__(self):
        plugin.ItemPlugin.__init__(self)

    def actions(self, item):

        if item.type == 'audio':

            self.file = None
            self.item  = item
            self.cdgname = ""
            self.files = item.files.get()
        
            if (len(self.files) != 1):
                return []

            self.file = self.files[0]
        
            # now check if there is a matching CDG file
            self.cdgname = re.sub('.mp3', '.cdg', self.file)
        
            if os.path.exists(self.cdgname):
                    return [ ( self.play_cdg , _('Karaoke')) ]

        return []

    def play_cdg(self, arg=None, menuw=None):
        cmd = "pycdg -f \"" + self.cdgname + "\""
        os.system(cmd)
--------8<--------

So far so good: in the submenu of mp3 files there will be a new item,
"karaoke", if a cdg file exists with the same basename. When the user
selects this menu item, the plugin will simply launch pycdg. However
it would be really usefull to control pycdg. Since I haven't saw any
slave-mode support, I was thinking of implementing just the EXIT and
STOP events, by simply killing the pycdg process... however I have no
idea how to do that :-(. Any suggestions?

Thanks in advance!

/Pal Szasz

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Freevo-devel mailing list
Freevo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freevo-devel

Reply via email to