# -*- coding: iso-8859-1 -*-
# -----------------------------------------------------------------------
# Debug events using kaa notifier
# -----------------------------------------------------------------------
# $Id: events.py 10090 2007-11-07 19:36:03Z duncan $
#
# Notes:
# Todo:
# -----------------------------------------------------------------------
# Freevo - A Home Theater PC framework
# Copyright (C) 2002 Krister Lagerstrom, et al.
# Please see the file freevo/Docs/CREDITS for a complete list of authors.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MER-
# CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# -----------------------------------------------------------------------


import config
import plugin
from kaa.notifier import Timer, EventHandler
import rc
from event import *


class PluginInterface(plugin.DaemonPlugin):
    """
    To activate this plugin, just put the following line at the end of your
    local_conf.py file:

    | plugin.activate('events')
    """
    __author__           = 'Duncan Webb'
    __author_email__     = 'duncan@freevo.org'
    __maintainer__       = __author__
    __maintainer_email__ = __author_email__
    __version__          = '$Revision: 10090 $'

    def __init__(self):
        """
        init the events plug-in
        """
        plugin.DaemonPlugin.__init__(self)
        plugin.register(self, 'events')
        self.plugin_name = 'events'
        #self.playitem = None
        self.event_listener = True
        self.poll_menu_only = False
        self.event = EventHandler(self.event_handler)
        self.event.register()
        Timer(self.timer_handler, 'one').start(60)
        print 'self.__dict__=%r' % (self.__dict__)

    def eventhandler(self, event, menuw=None):
        print 'eventhandler(%s, %s) %s' % (event, menuw, event.__dict__)
        return True

    def event_handler(self, event):
        """ The event handler """
        _debug_('event_handler(%s) %s' % (event, event.__dict__))
        print 'event_handler(%s) %s' % (event, event.__dict__)
        return True

    def timer_handler(self, param):
        """ The timer handler """
        _debug_('timer_handler(%s)' % (param))
        print 'timer_handler(%s)' % (param)
        rc.post_event(Event('BAR', context='test', arg=(1, 2, 3)))
        #kaa.notifier.Event('FOO').post((3, 2, 'one'))
        return True


if __name__ == '__main__':
    import kaa

    config.DEBUG = 2
    pi = PluginInterface()
    print 'posting event FOO'
    Event('FOO').post()

    print 'starting main loop'
    kaa.main()
    print 'stopped main loop'
