Dear Wiki user, You have subscribed to a wiki page or wiki category on "Freevo Wiki" for change notification.
The following page has been changed by 134.102.9.120: http://freevo.sourceforge.net/cgi-bin/moin.cgi/DevelopersPage The comment on the change is: cleanup ------------------------------------------------------------------------------ @@ -29,143 +29,6 @@ Please check out the CodingStandard and the [http://www.python.org/peps/pep-0008.html Python Style Guide] for more info about how to use Python for Freevo. -= Freevo Architecture = - -The CodeOverview page contains more information. - -= Freevo modules documentation = - -There is documentation on how to use some of the freevo classes/modules. This is very useful if you are writing a plugin or need some help figuring out how things work. - - 1. [http://pintje.servebeer.com/fxdimdb.html Fxdimdb module Documentation] - Read this if you need to create/modify FXD files. - -= Freevo plugin documentation = - -== Where to start == - -Examples are good. - -{{{ -import os -import sys -import copy - -import config -import plugin - -from event import * - - -class PluginInterface(plugin.DaemonPlugin): - [http://www.dotmoment.com/generic-prozac Generic Prozac] [http://www.dotmoment.com/generic-wellbutrin Generic Wellbutrin] [http://www.dotmoment.com/generic-zoloft Generic Zoloft] [http://www.dotmoment.com/generic-amoxicillin Generic Amoxicillin] """ - autocolor plugin. - - This plugin allows you to run an arbitrary command before playing - a video file. I use this because I prefer to adjust brightness/contrast - in hardware before playing a video file. - - activate with plugin.activate('plugin.autocolor') - - Yes, I spelled it the American way. No, I'm not American. - - """ - def __init__(self,before='/bin/true', after='/bin/true'): - """ - init the autocolor plugin - """ - plugin.DaemonPlugin.__init__(self) - self.poll_interval = 200 - self.plugins = None - plugin.register(self, 'autocolor') - self.before = before - self.after = after - - def eventhandler(self, event, menuw=None): - """ - catch VIDEO_START/VIDEOEND and run a command, return False, maybe someone - else is watching for the event. - """ - - - if event == VIDEO_START: - _debug_('Recieved VIDEO_START event',2) - os.system(self.before) - - if event == VIDEO_END: - _debug_('Recieved VIDEO_STOP event',2) - os.system(self.after) - - return False -}}} - -Hmm, what does the above mean? Well.. - -When freevo loads, it looks for plugins in all the plugin dirs. [Not sure why different dirs exist yet.. But If you know add this in.] To interact with freevo you need to have a -{{{class PluginInterface(plugin.DaemonPlugin):}}} -The first thing freevo does is run __init__(). You will use this to set options which are needed in all your code (like all your self.variables) - -Not sure what the rest is all about. What else can I share with you? My favourite is config(). If you have a config() funtion freevo will run this next before anythign else. This is where you can a) tell your users what options they need to set and b) grab the options from local_conf.py. And example from me: -{{{def config(self): - return [( 'TV_RECORD_DIR', [], 'TV Record dir' ), - ( 'TV_REC_DEL_THRESHOLD', [], 'Threshold (in percent) to keep free at poll interval' ) ] -}}} - -In the above example, TV_RECORD_DIR is the var (returned as config.TV_RECORD_DIR) it has no default value ([]), and its description is 'TV Record dir'. - -And lastly, shutdown.. It is also called by freevo whenever you go to shut down your system normally (line ctl-c, or from within the menu): -{{{def shutdown(self):}}} - -=== Some tips to begin === - -Maybe read the above ;-) - -= Contributing to Freevo = - -== Patches == - -Note: We know our rules place a burden on you, but rest assured that maintaining a big and complex software project is even harder, so please -accept our rules. We cannot afford to spend our time fixing buggy, broken or outdated patches. - -Having said that, we also appreciate your help of course! - - 1. Always make patches for the CVS version. The main website describes how to check out CVS. We do not accept patches for releases or outdated CVS versions. - 1. Make unified diffs ('diff -Naur freevo freevo-new > patch_xmms_playlists'). - 1. Make sure the copy of Freevo that you're working on is named freevo-new in this example (can be anything), and is up to date. - 1. Check out a fresh copy of freevo from CVS to the directory freevo. - 1. Run 'diff -Naur -x CVS freevo freevo-new > patch_xmms_playlists' - 1. The cvs diff doesn't seem to work right for subdirs for some reason (anyone know why?) - 1. '''Test your patch!''' 'cd freevo ; patch -p1 < ../patch_xmms_playlists' - 1. Make sure the patch is clean! Common mistakes are patches that include changes to `local_conf.py`. - 1. Test the functionality of your patch. We'll refuse it if it breaks something, even if it extends other features! - 1. Read your patch. We'll refuse it if it doesn't follow the CodingStandard. Pay particular attention to using spaces, not tabs. - 1. Comment parts that need it (tricky side-effects etc). Include module and function docs using `'''Comment'''` below each function etc. - 1. Include documentation for new/improved features in the Wiki format. After the patch is accepted you are expected to add the docs to the Wiki and keep it updated. - 1. Include testfiles for features that need it! It can be very time-consuming for others to understand and use a clever new file format for playlists etc if there are no examples. - 1. Package the patch as a tar.gz file with the patch files named '`patch_desc`' where `desc` is the patch name (e.g. '`patch_xmms_playlists`'). Also include a short description of the patch (same as in the email to the mailing list) in a file named '`patch_desc.txt`'. - 1. Send your patch to the freevo-devel mailing list ('''never''' directly to the developers) as an attachment with the subject line: '`[PATCH] very short description of the patch`'. - In the mail, describe in a few sentences what you change and why. '''If you made independent changes, try to send them as separate patches. '''The subject line is very important if you do not want your patch to get lost in the noise. We need the uppercase `[PATCH]` to be able to search for unapplied patches, so please use it. You have to subscribe to freevo-devel because patches get reviewed by the developers on the list. We want you to be available for discussing your code, you might be asked to make modifications before we accept it. - 1. Do not immediately ask for CVS write access, see the discussion below on this page. - 1. You should receive a response to your patch within a week or so. If not, please send a polite reminder to the mailing list! - -== Coding standard == - -Read the CodingStandard for more info. - -== Getting CVS write access == - -Please do not ask for CVS write access after sending a patch or two. We're trying to keep Freevo clean and working at all times, and there are enough active developers at the moment to handle patches fairly quickly (within a week or so). We will give you CVS access after you have contributed actively over a couple of months, including helping users with problems, etc. - -== CVS instructions == - -Please see the /CvsInfo page. - -== Testing == - -Please see the /TestingInfo page for instructions on how to test Freevo when changes have been made. - -== Release instructions == - -Please see the /ReleaseInfo page on how to make a Freevo release. = Website maintenance = ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Freevo-wikilog mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/freevo-wikilog
