本文整理汇总了Python中rc.post_event函数的典型用法代码示例。如果您正苦于以下问题:Python post_event函数的具体用法?Python post_event怎么用?Python post_event使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了post_event函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _event_handler
def _event_handler(self, event):
logger.log(9, '_event_handler(event=%s), event.arg=%r, event.context=%r, PluginInterface.detached=%r',
event, event.arg, event.context, PluginInterface.detached)
gui = audio.player.get()
if gui:
p = gui.player
if event == BUTTON:
if event.arg == 'FFWD':
p.eventhandler(Event('SEEK', arg='10', context='audio'))
elif event.arg == 'REW':
p.eventhandler(Event('SEEK', arg='-10', context='audio'))
elif event.arg == 'PAUSE':
p.eventhandler(Event('PLAY', context='audio'))
elif event.arg == 'STOP':
PluginInterface.detached = False
p.eventhandler(Event('STOP'))
elif event.arg == 'NEXT':
p.eventhandler(Event('PLAYLIST_NEXT', context='audio'))
elif event.arg == 'PREV':
p.eventhandler(Event('PLAYLIST_PREV', context='audio'))
elif plugin.isevent(event) == 'DETACH':
p.eventhandler(event)
self._detach()
elif plugin.isevent(event) == 'ATTACH':
self._attach()
p.eventhandler(event)
elif event == VIDEO_START:
PluginInterface.detached = False
p.eventhandler(Event('STOP'))
elif event == PLAY_START and gui.visible:
rc.post_event(plugin.event('ATTACH'))
示例2: poll
def poll(self, menuw=None, arg=None):
"""
poll to check for devices
"""
changes = False
current_devices = util.list_usb_devices()
for d in current_devices:
try:
self.devices.remove(d)
except ValueError:
logger.debug('new device %s', d)
for device, message, action in config.USB_HOTPLUG:
if d == device:
pop = dialog.show_working_indicator(message)
os.system(action)
pop.hide()
break
else:
changes = True
for d in self.devices:
changes = True
logger.debug('removed device %s', d)
if changes:
rc.post_event(plugin.event('USB'))
self.devices = current_devices
示例3: stop
def stop(self, cmd=''):
"""
stop the child
"""
logger.log( 9, 'ChildApp2.stop(cmd=%r)', cmd)
self.timer.stop()
rc.unregister(self.stop)
if cmd and self.isAlive():
self.write(cmd)
# wait for the app to terminate itself
for i in range(60):
if not self.isAlive():
break
time.sleep(0.1)
# kill the app
if self.isAlive():
self.kill()
# Ok, we can use the OSD again.
if self.stop_osd:
osd.restart()
if self.is_video:
rc.post_event(Event(VIDEO_END))
示例4: __drawn
def __drawn(self, item):
if plugin.getbyname('osd'):
plugin.getbyname('osd').draw(('osd', None), self.osd)
# draw
self.osd.update()
# start timer
if self.duration and self.slideshow and not self.timer:
self.timer = kaa.OneShotTimer(self.signalhandler)
self.timer.start(self.duration)
# stop slideshow at the end if configured
try:
index = item.parent.play_items.index(item)+1
length = len(item.parent.play_items)
if index == length:
self.slideshow = config.IMAGEVIEWER_AUTOPLAY
# send information event to LCD2
rc.post_event(Event('IMAGE_VIEW_INFO', arg=(index, length, item.name)))
except Exception, why:
logger.warning('Invalid parent item: %s', why)
示例5: init_page
def init_page(self):
self.screen_transition = skin.TRANSITION_PAGE
menu = self.menustack[-1]
if not menu:
return
# Create the list of main selection items (menu_items)
menu_items = []
first = menu.page_start
self.rows, self.cols = menu.items_per_page()
for choice in menu.choices[first : first+(self.rows*self.cols)]:
menu_items.append(choice)
self.rows, self.cols = menu.items_per_page()
self.menu_items = menu_items
if len(menu_items) == 0:
self.all_items = menu_items + [ MenuItem('Back', self.back_one_menu) ]
else:
self.all_items = menu_items
if not menu.selected in self.all_items:
menu.selected = self.all_items[0]
if not menu.choices:
menu.selected = self.all_items[0]
rc.post_event(MENU_PROCESS_END)
示例6: __init__
def __init__(self, app, debugname=None, doeslogging=0, stop_osd=2, callback_use_rc=True):
"""
Initialise ChildApp2
"""
logger.debug('ChildApp2.__init__(app=%r, debugname=%r, doeslogging=%r, stop_osd=%r)', app, debugname, doeslogging, stop_osd)
self.timer = kaa.Timer(self.poll)
self.timer.start(0.1)
rc.register(self.stop, True, rc.SHUTDOWN)
self.is_video = 0 # Be more explicit
if stop_osd == 2:
self.is_video = 1
rc.post_event(Event(VIDEO_START))
stop_osd = config.OSD_STOP_WHEN_PLAYING
self.stop_osd = stop_osd
if self.stop_osd:
osd.stop()
if hasattr(self, 'item'):
rc.post_event(Event(PLAY_START, arg=self.item))
# return status of the child
self.status = 0
# start the child
ChildApp.__init__(self, app, debugname, doeslogging, callback_use_rc)
示例7: poll
def poll(self):
"""
plugin polling
"""
if self.playing:
self.timer += 1
if self.timer >= 4:
self.timer = 0
# try to connect to xine and check answer
if self.handle is None:
try:
self.handle = telnetlib.Telnet("127.0.0.1", 6789)
out = self.handle.read_until("\n", 0.1)
if out[-1] != "\n":
raise
except:
self.handle = None
logger.warning("Cannot telnet to xine at 127.0.0.1:6789")
# try to get xine time info
if self.handle is not None:
length = self.get_time("length")
elapsed = self.get_time("position")
if length and elapsed:
rc.post_event(Event("VIDEO_PLAY_INFO", arg=(elapsed, length)))
示例8: error_handler
def error_handler(self):
"""
error handler if play doesn't work to send the end event and stop
the player
"""
rc.post_event(PLAY_END)
self.stop()
示例9: run
def run(self):
logger.debug("run()")
while 1:
logger.debug("Record_Thread::run: mode=%s", self.mode)
if self.mode == "idle":
self.mode_flag.wait()
self.mode_flag.clear()
elif self.mode == "record":
rc.post_event(Event("RECORD_START", arg=self.prog))
logger.debug("Record_Thread::run: cmd=%s", self.command)
self.app = RecordApp(self.command)
logger.debug("app child pid: %s", self.app.child.pid)
while self.mode == "record" and self.app.isAlive():
self.autokill -= 0.5
time.sleep(0.5)
if self.autokill <= 0:
logger.debug("autokill timeout, stopping recording")
self.mode = "stop"
if self.app.isAlive():
logger.debug("Record_Thread::run: past wait!!")
self.app.kill()
rc.post_event(Event("RECORD_STOP", arg=self.prog))
logger.debug("Record_Thread::run: finished recording")
self.mode = "idle"
else:
self.mode = "idle"
time.sleep(0.5)
示例10: poll
def poll(self):
"""
stop everything when child is dead
"""
logger.log( 8, 'ChildApp2.poll()')
if not self.isAlive():
rc.post_event(self.stop_event())
self.stop()
示例11: _timer_handler
def _timer_handler(self):
if self.active:
logger.info('Timeout reached without an event, posting events now.')
for e in config.AUTOSTART_EVENTS:
rc.post_event(Event(e))
self.event.unregister()
self.timer.stop()
self.active = False
示例12: shuntItemInCart
def shuntItemInCart(self, item):
''' Move an image item into or out of the shopping cart
'''
if self.cart != [] and item in self.cart:
self.cart.remove(item)
rc.post_event(em.Event(em.OSD_MESSAGE, arg=_('Removed Item from Cart')))
else:
self.cart.append(item)
rc.post_event(em.Event(em.OSD_MESSAGE, arg=_('Added Item to Cart')))
示例13: redraw
def redraw(self):
"""
Request that the dialog be redrawn.
"""
#_stack_('Processing events? %r' % self.processing_event )
if self.processing_event:
self.force_redraw = True
else:
rc.post_event(event.Event(REDRAW_DIALOG, self))
示例14: Stop
def Stop(self):
""" Stop the xine player """
logger.debug('XineIvtv.Stop()')
dialog.disable_overlay_display()
self.mixer.Stop()
self.tuner.Stop()
self.xine.Stop()
rc.remove_app(self)
rc.post_event(PLAY_END)
logger.debug('Stopped %r app', self.mode)
示例15: eventhandler
def eventhandler(self, event=None, menuw=None, arg=None):
"""
eventhandler to handle the new events
"""
for r in config.NEW_EVENTS:
if event == r[0]:
system(r[1])
if len(r) > 2:
rc.post_event(Event(OSD_MESSAGE, arg=r[2]))
return True