コード例 #1
0
ファイル: __init__.py プロジェクト: rayman18/wydev
]:
	i: 227(), 971()
	o: 

nname: 971
n 971(None)[except Exception, e:
	WebBrowser = None
	log.error('Web Browser loading error: %s', str(e))
]:
	i: 935()
	o: 1020()

nname: 935
n 935(None)[try:
	from pygui.menu.players.web_browser import WebBrowser
	log.debug('Web Browser loaded')
]:
	i: 853()
	o: 971()

nname: 853
n 853(None)[try:
	from pygui.menu.players.channelscanner import ChannelScanner
	log.debug('Channel Scanner loaded')
except Exception, e:
	ChannelScanner = None
	log.error('Channel Scanner loading error: %s', str(e))
]:
	i: 778(try)
	o: 935()

nname: 778
コード例 #2
0
ファイル: thumbnailitem.py プロジェクト: rayman18/wydev
		UIItem.__init__(self, *args, **kw)
		self.selected_style_string = xml_tag(self.style['selected_font_style'].replace('%', '%%'), '%s')
		self.not_selected_style_string = xml_tag(self.style['font_style'].replace('%', '%%'), '%s')

	def _get_images_paths(self, item):
		repository = self.style['repository']
		root = path.join(repository, '%s' % item.type)
		suff = ('.', '_selected.')
		def check_concat(suf):
			_name = root + suf
			for ext in self.style['extension']:
				name = _name + ext
				if path.isfile(name):
					return name
					continue
			log.debug("%s don't exist" % name)
			return None

		return map(check_concat, suff)

	def reset(self, item, selected, position):
		UIItem.reset(self, item, selected)

	def _create(self):
		style = self.style
		icon_size = style['icon_size']
		icon_size_sel = style['selected_icon_size']
		item_size = style['item_size']
		item_size_sel = style['selected_item_size']
		text_offset = style['text_offset']
		text_offset_sel = style['selected_text_offset']
コード例 #3
0
ファイル: __init__.py プロジェクト: rayman18/wydev
#
# 2012-04-13
# Initial Commit
#
#
# Copyright 2010-2012, WyDev Team.
# Author: Polo35 ([email protected])
#
# Licenced under Academic Free License version 3.0
# Review WyGui README & LICENSE files for further details.

from __future__ import absolute_import

from peewee.debug import GET_LOGGER
from wyvas import Container, Image, Text

log = GET_LOGGER(__name__)

try:
    from wyvas import __version__
    from wyvas import Progressbar, TextBlock, set_theme_dir
    log.debug('wyvas widgets imported')
    from pygui.config import themes_dir
    set_theme_dir(themes_dir)
except ImportError:
    log.debug('Cannot import widgets from wyvas')
    from pygui.gui.widget.progressbar import Progressbar
    from pygui.gui.widget.textblock import TextBlock
    log.debug('pygui widgets imported')
from pygui.gui.widget.core.widgetfactory import WidgetLibrary
コード例 #4
0
from struct import unpack, calcsize
import struct
import pygui.eventmanager.events as events
from peewee.notifier import descriptor_watch
from peewee.debug import GET_LOGGER, PRINT_EXCEPTION
log = GET_LOGGER(__name__)
class PluginInterface(.):
	__doc__ = '\n    Input plugin for joystick device based on linux input event interface.\n    Used for now for uwand rcu\n    '
	JS_EVENT_BUTTON = 1
	JS_EVENT_AXIS = 2
	JS_EVENT_INIT = 128
	JS_EVENT = 'IhBB'
	JS_EVENT_SIZE = calcsize(JS_EVENT)
	def __init__(self, *args):
		threading.Thread.__init__(self)
		log.debug('Preparing joystick plugin...')
		self.setDaemon(True)
		self.setName('JoystickPlugin')
		self.dev = open('/dev/input/js0')
		self.pos = [0, 0]
		self.max_val = 32768
		self.button = events.BUTTON0.post
		self.mouse = events.MOUSE.post
		self.start_pos = None
		descriptor_watch(self.dev.fileno(), self.handle)
		return None

	def _adapt_ratio(self, val):
		return int(100 + (val - self.max_val) * 0.00152587890625)

	def handle(self):
コード例 #5
0
# Review WyGui README & LICENSE files for further details.

from __future__ import absolute_import

from pygui.gui.widget.core import factory
from peewee.debug import GET_LOGGER, PRINT_EXCEPTION, DEBUG
from peewee.formatters import boolean, boolean_to_int, int_tuple, int_tuple_list, string_tuple
from peewee.messages import connect as louie_connect
from wyvas import Container, Image, Object, Text

log = GET_LOGGER(__name__)

try:
	from wyvas import Browser
except ImportError:
	log.debug('Cannot import Browser from wyvas')
	Browser = None

try:
	from wyvas import Animage
except ImportError:
	log.debug('Cannot import Animage from wyvas')
	Animage = None

try:
	from wyvas import __version__ as wyvas_version
	if 'cython' not in wyvas_version:
		raise ImportError
	from wyvas import DepthBar, Clock, Programbar, ProgramRecordTimeShiftBar
	from wyvas import ProgramTimeShiftBar, Progressbar, TextBlock, Timebar, Viewer
	from wyvas import DefaultListing, FixedListing, HybridListing, Grid
コード例 #6
0
ファイル: __init__.py プロジェクト: rayman18/wydev
nname: 0
n 0(None)[from __future__ import absolute_import
from peewee.debug import GET_LOGGER
from wyvas import Container, Image, Text
log = GET_LOGGER(__name__)
]:
	i: 
	o: 75(try), 162(except)

nname: 162
n 162(None)[except ImportError:
	log.error('Cannot import widgets from wyvas')
	from .progressbar import Progressbar
	from .textblock import TextBlock
	log.debug('pygui widgets imported')
from .core.widgetfactory import WidgetLibrary
]:
	i: 0()
	o: 

nname: 0
n 0(None)[from __future__ import absolute_import
from peewee.debug import GET_LOGGER
from wyvas import Container, Image, Text
log = GET_LOGGER(__name__)
try:
	from wyvas import __version__
	from wyvas import Progressbar, TextBlock, set_theme_dir
	log.debug('wyvas widgets imported')
	from pygui.config import themes_dir
コード例 #7
0
			_file.close()
		except IOError:
			log.warning('%s does not exist, check your wybox_theme packages' % datapack)
		finally:
			pass
		133
	def add_widgets(self, _file, bibliotheque):
		root = ET.parse(_file)
		templates_object_node = root.find('/templates/objects/')
		templates_animation_node = root.find('/templates/animations/')
		widget_node_list = root.findall('/pages/page')
		wd = self.widgets_dict
		for node in widget_node_list:
			widget = merge_node(node, bibliotheque, templates_object_node, templates_animation_node)
			wd[node.get('id')] = widget
			log.debug('---> file %s new widget %s added', _file, node.get('id'))

	def get_container(self, pagename, key='main', menu=None):
		if WidgetLibrary.object_creator is None:
			from .objectfactory import ObjectCreator
			WidgetLibrary.object_creator = ObjectCreator()
		return WidgetLibrary.object_creator.create(WidgetLibrary.widgets_dict[pagename][key], menu)



]:
	i: 
	o: 

self.nodes: {0: <unpyclib.structure.node instance at 0xb771236c>}
from __future__ import absolute_import
コード例 #8
0
ファイル: transcode.py プロジェクト: rayman18/wydev
	join = os.path.join
	exists = os.path.exists
	psp_prefix = os.path.join(psp_path, 'video', 'M4V')
	while exists(psp_prefix + '%s.MP4' % index) or exists(psp_prefix + '%s.THM' % index):
		index -= 1
	else:
		_POP_TOP pass
	return (psp_prefix + '%s.MP4' % index, psp_prefix + '%s.THM' % index)

def _copy_ts(ts_file, psp_path):
	psp_mp4_file, psp_thm_file = _get_psp_filenames(psp_path)
	msg = MessageWindow(_('Copying to PSP (tm) please wait...'), button=None)
	msg.show()
	mp4_cmd = '/usr/bin/ts2psp "%s" "%s"' % (ts_file, psp_mp4_file)
	thm_cmd = 'cp "%s" "%s"' % (thm_src_file, psp_thm_file)
	log.debug(mp4_cmd)
	os.system(mp4_cmd)
	log.debug(thm_cmd)
	os.system(thm_cmd)
	os.system('sync')
	sleep(2)
	msg.hide()
	return None

def _stop_transcode(stop_method, previous_resolution, player, output_file, psp_path):
	log.debug('transcode_stop()')
	stop_method()
	if change_resolution:
		Task(_set_resolution, previous_resolution).start(0.20000000000000001)
	Task(_copy_ts, output_file, psp_path).start(0)
	raise StopIteration()
コード例 #9
0
ファイル: __init__.py プロジェクト: rayman18/wydev
	TVPlayer = None
	DVDPlayer = None
	ChannelScanner = None
	ImageViewer = None
	WebBrowser = None
else:
	try:
		from pygui.facilities.subtitles import SubServer
		subserver = SubServer()
	except:
		subserver = None
		log.warning("unable to instancy Subserver. Subtitles Won't be displayed !")
	pygui_globs['subserver'] = subserver
#	try:
	from pygui.menu.players.audio_player import AudioPlayer
	log.debug('Audio Player loaded')
#	except Exception, e:
#		AudioPlayer = None
#		log.error('Audio Player loading error: %s', str(e))
	try:
		from pygui.menu.players.video_player import VideoPlayer
		log.debug('Video Player loaded')
	except Exception, e:
		VideoPlayer = None
		log.error('Video Player loading error: %s', str(e))
	try:
		from wyrecord import WyRecord
		wr = WyRecord()
		wr.setMaximumTimeshiftDuration((user_config['tv']['timeshift_length'] * 60))
		wr.setRecordPadding((user_config['tv']['epg_margin'] * 60))
コード例 #10
0
		self.field = 'protection'
		if item['hidden']:
			pass
		name = _('Unhide')
		ActionContainer.__init__(self, name=name, type_='action', menu=menu, **kw)
		self.radio = True

	def hide(self, key):
		self._update_checked(key)
		if self.item['hidden']:
			pass
		new_hide = '1'
		try:
			self.item['hidden'] = new_hide
		except:
			log.debug('Setting %s[hide] failed ', self.item)
			PRINT_EXCEPTION()
		self.menu._set_options_list(keep_selection=True)



class ParentalRatingActionItem(ActionContainer):
	__doc__ = ' Handle parental rating on Item '
	def __init__(self, item, menu, name, **kw):
		self.item = item
		if not self.item['maturity_rating']:
			pass
		rate = self.item['maturity_rating']
		self.title = name
		self.field = 'parental_rating'
		self.actions_dict = {'0': {'handler': self.rate, 'caption': _('No rating'), 'checked': rate == 0, 'args': ('0',), 'kwargs': {}, 'pos': 0}, '10': {'handler': self.rate, 'caption': _('-10 years'), 'checked': rate == 10, 'args': ('10',), 'kwargs': {}, 'pos': 1}, '12': {'handler': self.rate, 'caption': _('10 - 12 years'), 'checked': rate == 12, 'args': ('12',), 'kwargs': {}, 'pos': 2}, '16': {'handler': self.rate, 'caption': _('12 - 16 years'), 'checked': rate == 16, 'args': ('16',), 'kwargs': {}, 'pos': 3}, '18': {'handler': self.rate, 'caption': _('16 - 18 years'), 'checked': rate == 18, 'args': ('18',), 'kwargs': {}, 'pos': 4}, '99': {'handler': self.rate, 'caption': _('Hidden'), 'checked': rate == 99, 'args': ('99',), 'kwargs': {}, 'pos': 5}}
コード例 #11
0
    'banner_period': 5,
    'record_banner_period': 5,
    'record_duration_step': 1800,
    'records_duration': [180],
    'max_record_duration': 360,
    'epg_margins': [0, 5, 10],
    'timeshift_length': [30, 60, 120, 180],
    'record_time': 7200,
    'zap_time': 1.0,
    'invert_y_axis': 0
}

HMI_VIDEO['forward'] = [2, 8, 25, 100, 300]
HMI_VIDEO['backward'] = [-2, -8, -25, -100, -300]

log.debug('HMI dicts created')

restore_previous_config = True

default_conf = {
    'config_version': 18,
    'connections': {
        'resolution': '1280:720:0:50',
        'active_device': 'hdmi',
        'composite_output': 'pal',
        'component_output': 'rgb',
        'hdmi_sound': False,
        'auto_frame_rate': False,
        'spdif_surround': False,
        'scart1_io_mode': 'out',
        'scart1_in_mode': 'composite',
コード例 #12
0
	__doc__ = "Event dispatcher. This is the base class for all event managers.\n\n    Handlers should implement event_<event name> methods.\n    The only parameter to an event_* method is the event itself,\n    other objects should be passed to L{__init__} and stored.\n\n    If the event_* method, specific to an event type, can't be found,\n    L{event_DEFAULT} is called instead.\n\n    If an event_* method returns True or None, the event is consumed and\n    its processing is halted.\n\n    If it returns False, the event will also be processed by handlers\n    below in the stack.\n\n    returning None is a bad idea ! returns True instead\n    "
	led = WyLed()
	power_mgr = None
	_disable_next_input = False
	def __init__(self, player):
		self.player = player

	def __call__(self, event):
		if EventDispatcher._disable_next_input:
			EventDispatcher._disable_next_input = False
			return True
		event_short_name = str(event).lower()
		callback_name = 'event_' + event_short_name
		if not self.player.hold:
			try:
				log.debug(('[ %s received ]' % callback_name).center(60, '#'))
				callback = getattr(self, callback_name)
			except AttributeError:
				log.debug('event not catched by %s, calling default event.' % self.__class__.__name__)
				callback = self.event_DEFAULT
			EventDispatcher.led.on()
			ret = callback(event)
			EventDispatcher.led.off()
			return ret
		else:
			log.debug("Can't perform event %s : %r is held" % (callback_name, self.player))
			return True

	def event_DEFAULT(self, event):
		log.debug('Unknown Event: "%s"', str(event))
		return False
コード例 #13
0
nname: 0
n 0(__name__ == '__main__')[from __future__ import absolute_import
import struct
from time import sleep, time
from peewee.debug import GET_LOGGER, PRINT_EXCEPTION
from peewee.notifier import descriptor_watch
log = GET_LOGGER(__name__)
class RcuPad():
	__doc__ = '\n    A facility module to handle /dev/ir0 (sRCU)\n    Warn: It does not use the standard linux input event interface, but it works !\n    sRCU has 2 modes, only the first (sensitive) is used for now.\n    (The second mode need antenna to detect moves around the sRCU).\n    Run this script alone to test sRCU.\n    '
	format = 'BBBBBBBBBB'
	nb_buttons = 5
	def __init__(self, size=(100, 100), dev='/dev/ir0'):
		log.debug('creating RcuPad !')
		self.f = open(dev)
		self.packetSize = struct.calcsize(self.format)
		log.debug('packetSize = %s', self.packetSize)
		self.mode = 0
		self.left = 0
		self.right = 0
		self.x = size[0]
		self.y = size[1]
		self.dx = self.x / 2
		self.dy = self.y / 2

	def __str__(self):
		ret = 'x:%d, y:%d b: ' % (self.dx, self.dy)
		for b in self.buttons:
			ret += '%s ' % b['press']
		return ret

	def clean_up(self):
コード例 #14
0
		self._callbacks = []
		self._stopped = False
		self._kwargs = self._cast_att(kwargs)
		for subnode in node:
			self._callbacks.append(Anim(subnode))
		return None

	def __repr__(self):
		return '<%s:%s::%s(%s)>' % (self.__class__.__name__, self.object, self.type, self._kwargs)

	def play(self, object=None):
		self._stopped = False
		self.object = object
		if self._callbacks:
			self._kwargs['end_callback'] = self.end_callback
		log.debug('ANIM %s %d : %s --> %s', object.name, id(object), self.type, self._kwargs)
		getattr(object, 'animate')(self.type, **self._kwargs)

	def end_callback(self):
		log.info('running end callback (should be thread-safe, I hope :P)')
		if not self._stopped:
			for anim in self._callbacks:
				anim.play(self.object)

	def stop(self):
		self._stopped = True



class PerpetualAnim(Anim):
	def __init__(self, node):
コード例 #15
0
ファイル: tf1replay_rss.py プロジェクト: rayman18/wydev
					# This url give the real video url. (Http or Rtmp)
					req = urllib2.Request(url4videoPath)
					req.add_header('User-Agent', USERAGENT)
					url = urllib2.urlopen(req)
					real_url = url.read()
					url.close()
					# Http url
					if real_url.startswith('http://wak.wat.tv'):
						break
					# Rtmp url
					elif real_url.startswith('rtmpe,'):
						def sub_rtmp(attr):
							return attr.group('url') + ":443" + attr.group('app') + attr.group('playpath')
						real_url = re.sub(r'(?P<url>.*.tv)(?P<app>.*.)(?P<playpath>.mp4:*.*)(?P<end>.bu=*.*)', sub_rtmp, real_url[6:])
						break
					log.debug("Not a wak.wat.tv url. Retrying")
				else:
					real_url = ''
				retlist.append(dict(title=self.decode_title(videoInfos['media']['chapters'][chapter].get('title')),
														thumbnail=videoInfos['media']['chapters'][chapter].get('preview'),
														uri=real_url))
			except Exception, e:
				PRINT_EXCEPTION(e)
		return retlist

if ( __name__ == "__main__" ):
	import sys
	TF1Replay_Client = TF1ReplayBrowser()
	if (len(sys.argv) > 1):
		category = dict()
		if sys.argv[1].isdigit():