Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
python-merlinmusicplayer / usr / lib / enigma2 / python / Components / MerlinMusicPlayerWidget.py
Size: Mime:
# -*- coding: utf-8 -*-
#
# MerlinMusicPlayerWidget / MerlinMusicPlayerRMS
#
# Coded by Dr.Best (c) 2017
# Support: www.dreambox-tools.info
# E-Mail: dr.best@dreambox-tools.info
#
# This plugin is open source but it is NOT free software.
#

from merlin_musicplayer.emerlinmusicplayer import eMerlinMusicPlayer, eMerlinMusicPlayerWidget, eMerlinImageDisplay
from Components.GUIComponent import GUIComponent
from skin import parseSize, parsePosition, parseColor
from Components.AVSwitch import AVSwitch
from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE

def getScale():
	return AVSwitch().getFramebufferScale()

class MerlinMusicPlayerWidget(GUIComponent, object):
	def __init__(self):
		GUIComponent.__init__(self)
		self.filename = ""

	GUI_WIDGET = eMerlinMusicPlayerWidget

	
	def postWidgetCreate(self, instance):
		sc = getScale()
		self.instance.setAspectRatio(sc[0], sc[1])

	def preWidgetRemove(self, instance):
		pass
		
	def visGLRandomPause(self):
		return self.instance.visGLRandomPause()

	def visGLRandomNext(self):
		return self.instance.visGLRandomNext()

	def visGLRandomStart(self):
		return self.instance.visGLRandomStart()				
	
	def setCover(self, filename):
		self.filename = filename
		self.instance.setCover(filename)
	
	def applySkin(self, desktop, screen):
		if self.skinAttributes is not None:
			attribs = [ ]
			for (attrib, value) in self.skinAttributes:
				if attrib == "mode":
					mode = -1
					if value == "visUpDown":
						mode = eMerlinMusicPlayerWidget.modeVisUpDown
					elif value == "visRoundCover":
						mode = eMerlinMusicPlayerWidget.modeVisRoundCover
					elif value == "visImagesUp":
						mode = eMerlinMusicPlayerWidget.modeVisImagesUp
					elif value == "visImagesDown":
						mode = eMerlinMusicPlayerWidget.modeVisImagesDown
					elif value == "cover":
						mode = eMerlinMusicPlayerWidget.modeStandardCover
					elif value == "visUp":
						mode = eMerlinMusicPlayerWidget.modeVisUp
					elif value == "blendCover":
						mode = eMerlinMusicPlayerWidget.modeBlendCover
					elif value == "visGLWaves":
						mode = eMerlinMusicPlayerWidget.modeVisGLWaves
					elif value == "visGLEclipse":
						mode = eMerlinMusicPlayerWidget.modeVisGLEclipse
					elif value == "visGLBalls":
						mode = eMerlinMusicPlayerWidget.modeVisGLBalls
					elif value == "visGLDots":
						mode = eMerlinMusicPlayerWidget.modeVisGLDots
					elif value == "visGLSinus":
						mode = eMerlinMusicPlayerWidget.modeVisGLSinus
					elif value == "visGLRandom":
						mode = eMerlinMusicPlayerWidget.modeVisGLRandom
					self.instance.setMode(int(mode))
				elif attrib == "noCoverAvailablePic":
					self.instance.setNoCoverPic(resolveFilename(SCOPE_SKIN_IMAGE, value))
				elif attrib == "pixmap1":
					self.instance.setPixmap1(resolveFilename(SCOPE_SKIN_IMAGE, value))
				elif attrib == "pixmap2":
					self.instance.setPixmap2(resolveFilename(SCOPE_SKIN_IMAGE, value))
				elif attrib == "distance1":
					self.instance.setDistance1(int(value))
				elif attrib == "distance2":
					self.instance.setDistance2(int(value))
				elif attrib == "threshold1":
					self.instance.setThreshold1(int(value))
				elif attrib == "threshold2":
					self.instance.setThreshold2(int(value))
				elif attrib == "smoothing":
					self.instance.setSmoothValue(float(value))
				elif attrib == "internalSize":
					self.instance.setInternalSize(float(value))
				elif attrib == "blendColor":
					self.instance.setBlendColor(parseColor(value))	
				elif attrib == "drawBackground":
					self.instance.setDrawBackground(int(value))	
				elif attrib == "pixmapBackgroundColor1":
					self.instance.setBackgroundPixmapColor1(parseColor(value))
				elif attrib == "pixmapBackground2":
					self.instance.setBackgroundPixmap2(resolveFilename(SCOPE_SKIN_IMAGE, value))
				elif attrib == "maxValue":
					self.instance.setMaxValue(int(value))
				elif attrib == "fadeOutTime":
					self.instance.setFadeOutTime(int(value))
				else:
					attribs.append((attrib,value))
			self.skinAttributes = attribs
		return GUIComponent.applySkin(self, desktop, screen)


from HTMLComponent import HTMLComponent
from VariableValue import VariableValue
from Components import ProgressBar
from merlin_musicplayer.emerlinmusicplayer import eMerlinMusicPlayerRMSSlider

class MerlinMusicPlayerRMS(VariableValue, HTMLComponent, GUIComponent, object):
	def __init__(self):
		GUIComponent.__init__(self)
		VariableValue.__init__(self)
		self.__start = 0
		self.__end = 100

	GUI_WIDGET = eMerlinMusicPlayerRMSSlider

	def postWidgetCreate(self, instance):
		instance.setRange(self.__start, self.__end)

	def setRange(self, range):
		(__start, __end) = range
		if self.instance is not None:
			self.instance.setRange(__start, __end)

	def getRange(self):
		return (self.__start, self.__end)
		
	def applySkin(self, desktop, screen):
		if self.skinAttributes is not None:
			attribs = [ ]
			for (attrib, value) in self.skinAttributes:
				if attrib == "channel":
					self.instance.setChannel(int(value))
				elif attrib == "mode":
					mode = -1
					if value == "standardEnigmaSlider":
						mode = eMerlinMusicPlayerRMSSlider.modeStandardEnigmaSlider
					elif value == "imagesOrientationUp":
						mode = eMerlinMusicPlayerRMSSlider.modeImagesOrientationUp
					elif value == "imagesOrientationDown":
						mode = eMerlinMusicPlayerRMSSlider.modeImagesOrientationDown
					elif value == "singleImageOrientationUp":
						mode = eMerlinMusicPlayerRMSSlider.modeSingleImageOrientationUp
					elif value == "imagesOrientationLeft":
						mode = eMerlinMusicPlayerRMSSlider.modeImagesOrientationLeft
					elif value == "imagesPeakOrientationUp":
						mode = eMerlinMusicPlayerRMSSlider.modeImageRMSPeakUp
					elif value == "imagesPeakOrientationDown":
						mode = eMerlinMusicPlayerRMSSlider.modeImageRMSPeakDown
					elif value == "imagesPeakOrientationLeft":
						mode = eMerlinMusicPlayerRMSSlider.modeImageRMSPeakLeft
					elif value == "imagesPeakOrientationRight":
						mode = eMerlinMusicPlayerRMSSlider.modeImageRMSPeakRight						
					elif value == "imagesOrientationRight":
						mode = eMerlinMusicPlayerRMSSlider.modeImagesOrientationRight
					elif value == "singleImageOrientationLeft":
						mode = eMerlinMusicPlayerRMSSlider.modeSingleImageOrientationLeft
					elif value == "circle":
						mode = eMerlinMusicPlayerRMSSlider.modeCircle
					elif value == "arc":
						mode = eMerlinMusicPlayerRMSSlider.modeArc
					elif value == "square":
						mode = eMerlinMusicPlayerRMSSlider.modeSquare
					elif value == "vumeter":
						mode = eMerlinMusicPlayerRMSSlider.modeVUMeter
					self.instance.setMode(int(mode))
				elif attrib == "pixmap1":
					self.instance.setPixmap1(resolveFilename(SCOPE_SKIN_IMAGE, value))
				elif attrib == "pixmapBackground1":
					self.instance.setBackgroundPixmap1(resolveFilename(SCOPE_SKIN_IMAGE, value))
				elif attrib == "pixmapBackgroundColor1":
					self.instance.setBackgroundPixmapColor1(parseColor(value))
				elif attrib == "distance":
					self.instance.setDistance(int(value))
				elif attrib == "drawBackground":
					self.instance.setDrawBackground(int(value))
				elif attrib == "maxValue":
					self.instance.setMaxValue(int(value))
				elif attrib == "threshold1":
					self.instance.setThreshold1(int(value))
				elif attrib == "threshold2":
					self.instance.setThreshold2(int(value))										
				elif attrib == "smoothing":
					self.instance.setSmoothValue(float(value))					
				elif attrib == "blendColor":
					self.instance.setBlendColor(parseColor(value))
				elif attrib == "startAngle":
					self.instance.setStartAngle(int(value))
				elif attrib == "clockwise":
					self.instance.setClockwise(int(value))
				elif attrib == "arcAngle":
					self.instance.setArcAngle(int(value))	
				elif attrib == "fadeOutTime":
					self.instance.setFadeOutTime(int(value))
				elif attrib == "vumeterLocation" :
					self.instance.setVUMeterPictureLocation(parsePosition(value, ((1,1),(1,1))))
				elif attrib == "vumeterAxis" :
					self.instance.setVUMeterPictureAxis(parsePosition(value, ((1,1),(1,1))))
				elif attrib == "vumeterAttack":
					self.instance.setVUMeterAttackValue(float(value))						
				else:
					attribs.append((attrib,value))
			self.skinAttributes = attribs
		return GUIComponent.applySkin(self, desktop, screen)			

	range = property(getRange, setRange)


class MerlinImageDisplay(GUIComponent, object):
	def __init__(self):
		GUIComponent.__init__(self)

	GUI_WIDGET = eMerlinImageDisplay

	def postWidgetCreate(self, instance):
		sc = getScale()
		self.instance.setAspectRatio(sc[0], sc[1])

	def setTransitionDuration(self, duration):
		self.instance.setTransitionDuration(duration)

	def startSlideShow(self, list, start_index, duration, kenburns):
		self.instance.startSlideShow(list, start_index, duration, kenburns)

	def startSlideShowNC(self, list, start_index, duration, kenburns, fhd):
		self.instance.startSlideShowNC(list, start_index, duration, kenburns, fhd)		

	def getCurrentFilename(self):
		return self.instance.getCurrentFilename()
		
	def getCurrentFileID(self):
		return self.instance.getCurrentFileID()

	def setState(self):
		return self.instance.setState()

	def skipImage(self, direction):
		self.instance.skipImage(direction)

	def setZoom(self, direction):
		self.instance.setZoom(direction)

	def isZoomMode(self):
		return self.instance.isZoomMode()

	def setScrollX(self, direction):
		self.instance.setScrollX(direction)

	def setScrollY(self, direction):
		self.instance.setScrollY(direction)
		
	def setPicture(self, buffer, length):
		self.instance.setPicture(buffer, length)
		
	def setRequestImageFunc(self, func):
		self.instance.setRequestImageFunc(func)