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    
Size: Mime:
ó
Ch-_c@sŠddlmZddlmZddlmZddlmZmZm	Z	m
Z
mZmZm
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZddl m!Z!m"Z"ddl#m$Z$ddl%m&Z'ddl(m)Z)dd	l*m+Z+dd
l,m-Z-m.Z.ddl/m0Z0ddl1m2Z2m3Z3dd
l4m5Z5ddl6m7Z7ddl8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAddlBmCZCddlDmEZEddlFmGZGddlHmIZIddlJmKZKddlLmMZMddlNmOZOddlJmKZKddlPmQZQddlRmSZSddlTmUZUddlVmWZWddlXmYZYmZZZddl[m\Z\yJddl]m^Z^m_Z_yddl`Z`Wneak
rðddlbZ`nXWneak
reƒnXddlcmdZemfZgddlhZhddliZiddljZjd fd!„ƒYZkd"eCfd#„ƒYZld$eCfd%„ƒYZmdS(&iÿÿÿÿ(tDMHelper(tstrwithmeta(tCover3(tprintDBGtprintExctGetIPTVDMImgDirt	GetBinDirtGetSubtitlesDirteConnectCallbacktGetE2VideoAspectChoicestGetE2VideoAspecttSetE2VideoAspecttGetE2VideoPolicyChoicestGetE2VideoPolicytSetE2VideoPolicytGetDefaultLangtGetPolishSubEncodingt	E2PrioFixtiptv_systemtGetE2AudioCodecMixOptiontSetE2AudioCodecMixOptiont
CreateTmpFilet	GetTmpDirtIsExecutabletMapUcharEncodingtGetE2VideoModeChoicestGetE2VideoModetSetE2VideoMode(tIPTVSubtitlesHandlertIPTVEmbeddedSubtitlesHandler(tIPTVMovieMetaDataHandler(tTranslateTXT(tIPTVSubDownloaderWidget(tIPTVSubSimpleDownloaderWidget(tIPTVChoiceBoxWidgettIPTVChoiceBoxItem(tIPTVFileSelectorWidget(tConfigExtMoviePlayerBasetConfigExtMoviePlayer(tCParsingHelper(t	urlparser(	teServiceReferenceteConsoleAppContainert
getDesktopteTimerteLabeltgFonttePointteSizetgRGB(tScreen(t	ChoiceBox(tAVSwitch(t	ActionMap(tconfig(tLabel(tProgressBar(t
MessageBox(t
LoadPixmap(t
boundFunction(t
fileExists(t
parseColort	parseFont(t	timedelta(tfloortfabsN(tchmodtpathtExtPlayerCommandsDispatchercBs¹eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z	d„Z
d	„Zd
„Zd„Z
d„Zd
„Zd„Zd„Zd„Zd„Zded„ZRS(cCsŸ||_g|_x7ttjjjƒD] }|jjdt|ƒƒq(W|jjdƒx'tjj	jD]}|jj|ƒqlW|jj
dƒ|_dS(Ngð?i(townertSEEK_SPEED_MAPtreversedR6tseektspeeds_slowmotiontvaluetappendtfloattspeeds_forwardtindextspeedIdx(tselfREtitem((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyt__init__As		cCs|jd|ƒdS(NtADD_TRIGGERS(textPlayerSendCommand(RPtarg((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyt
doAddTriggersMscCs |jdƒrd|_tStS(Nt
PLAYBACK_STOP(RTtNoneREtTruetFalse(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytstopOs	cCs&|jdƒ|jjdƒ|_dS(NtPLAYBACK_CONTINUEi(RTRFRNRO(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytplayUs
cCs&|jdƒ|jjdƒ|_dS(NtPLAYBACK_PAUSEi(RTRFRNRO(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytpauseXs
cCs|jd|tƒdS(NtPLAYBACK_SET_AUDIO_TRACK(RTRZ(RPtid((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyt
setAudioTrack\scCs|jd|tƒdS(NtPLAYBACK_SET_SUBTITLE_TRACK(RTRZ(RPRa((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytsetSubtitleTrack_scCs|jd|tƒdS(Nt"PLAYBACK_SET_DOWNLOAD_FILE_TIMEOUT(RTRZ(RPttimeout((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytsetDownloadFileTimeoutbscCs|jd|tƒdS(Nt!PLAYBACK_SET_PROGRESSIVE_DOWNLOAD(RTRZ(RPtflag((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytsetProgressiveDownloadescCs|jd|tƒdS(NtPLAYBACK_SET_LOOP_MODE(RTRZ(RPRJ((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytsetLoopModehscCs-|jdd|ƒ|jjdƒ|_dS(NtPLAYBACK_SEEK_RELATIVEs%di(RTRFRNRO(RPtdiff((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytdoSeekkscCs)|jd|ƒ|jjdƒ|_dS(NtPLAYBACK_SEEK_ABSi(RTRFRNRO(RPRU((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyt
doGoToSeeknscCs|jd|ƒdS(NtPLAYBACK_FASTFORWARD(RT(RPRU((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyt	doSeekFwdqscCs|jd|ƒdS(NtPLAYBACK_SLOWMOTION(RT(RPRU((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytdoSlowMotionrscCs*|jddtƒ|jddtƒdS(NtPLAYBACK_LENGTHttPLAYBACK_CURRENT_TIME(RTRZ(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytdoUpdateInfotscCs'tdƒdS|jd7_|jƒ(NsseekFwd skippedi(RROttipMode(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytseekFwdzs
cCs'tdƒdS|jd8_|jƒ(NsseekBack skippedi(RRORz(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytseekBacks
cCsötd|jƒ|jt|jƒkrBt|jƒd|_n|jdkr]d|_n|j|j}td|ƒd|kr”|jƒn^d|krÕd|jjkr¿|d8}n|jt|ƒƒn|j	tt
d|ƒƒƒdS(Ns0ExtPlayerCommandsDispatcher.tipMode speedIdx[%d]iis+ExtPlayerCommandsDispatcher.tipMode val[%r]teplayergð?(RROtlenRFR]REtplayerRststrRutint(RPtval((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRz„s

RwcCsWt}d|jkrI|jj||ƒ}|rS|jjddƒqSn
tdƒ|S(Nt
PLAYBACK_INFORws">> extPlayerSendCommand owner NONE(RZRXRERTR(RPtcmdRUt	getStatustret((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRTs
(t__name__t
__module__RRRVR[R]R_RbRdRgRjRlRoRqRsRuRyR{R|RzRYRT(((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRD@s&																		tIPTVExtMoviePlayercBsseZdZiZd„Zdxdid„Zd„Zdxd„Zd„Z	e
d„Zd„Zd	„Z
d
„Zd„Zdxd„Zdxd
„Zdxd„Zdxd„Zdxd„Zd„Zd„Zd„Zd„Zd„Zdxd„Zddd„Zd„Zd„Zdd„Zd„Zd„Z d „Z!e
d!„Z"d"„Z#e$e$d#„Z%d$„Z&d%„Z'dxd&„Z(d'„Z)dxd(„Z*d)„Z+d*„Z,d+„Z-d,„Z.d-„Z/d.„Z0d/„Z1d0d1„Z2d2„Z3d3„Z4d4„Z5d5„Z6d6„Z7d7„Z8d8„Z9d9„Z:d:„Z;d;„Z<d<„Z=d=„Z>d>„Z?d?„Z@d@„ZAdA„ZBdB„ZCdC„ZDdD„ZEdE„ZFdF„ZGdG„ZHdH„ZIdI„ZJdJ„ZKdK„ZLdL„ZMdM„ZNdNdO„ZOdP„ZPdNdQ„ZQe
dR„ZRdS„ZSdT„ZTdU„ZUdV„ZVdW„ZWdX„ZXdY„ZYdZ„ZZd[„Z[d\„Z\d]„Z]dxdxd^„Z^d_„Z_d`„Z`gda„Zadxdb„Zbdc„Zcdxdxdd„Zddde„Zedf„Zfdg„Zgdh„Zhdidjgdxdk„Zige
dl„Zjdm„Zke$dn„Zldo„Zmdp„Znge
dq„Zodr„Zpds„Zqdt„Zrdu„Zsddv„Ztdw„ZuRS(yic

Csš|jdrd|_n	d|_|j}|jdksMd|jdkrVd}n
|d}d||d	|d
|df}d|krµ|d
|dd|ddf7}nd|kró|d|dd|dd|ddf7}n|d|d7}|jdkr!|d7}ndtdƒjƒjƒ|d|dtdƒjƒjƒd|d|f}d}x.t|jƒD]}||j|dƒ7}q‰Wtdƒjƒjƒdkr×d}d}nd}d }|jr#tdƒjƒjƒd!krd"nd#}d$|}	nd}	|tdƒjƒjƒtdƒjƒjƒt	|ƒt	d%ƒt	d&ƒt	d'ƒt	d(ƒ|	|f	}d}|S()Ntwrapping_enablediittransparentt
backgroundtcentert
box_valigns/ valign="%s" foregroundColor="%s" font="%s;%s" t
font_colortfontt	font_sizetborders# borderColor="%s" borderWidth="%s" tcolortwidthtshadows' shadowColor="%s" shadowOffset="%s,%s" txoffsettyoffsets backgroundColor="%s" s noWrap="1" s[<widget name="subLabel{0}" position="10,%d" size="%d,%d" zPosition="1" halign="center" %s/>itpost
box_heightiRwi splayback_banner_sd.pngsP
            <screen name="IPTVExtMoviePlayer"    position="center,center" size="%d,%d" flags="wfNoBorder" backgroundColor="#FFFFFFFF" >
                    <widget name="pleaseWait"         noWrap="1" position="30,30"        size="500,30"    zPosition="3" transparent="1" foregroundColor="#999999"   backgroundColor="transparent" font="Regular;24" halign="left"  valign="top"/>
                    
                    <widget name="logoIcon"           position="0,0"           size="160,40"    zPosition="4" transparent="1" alphatest="blend" />
                    <widget name="playbackInfoBaner"  position="0,30"          size="650,112"   zPosition="2" pixmap="%s" />
                    <widget name="progressBar"        position="94,54"         size="544,7"     zPosition="5" pixmap="%s" transparent="1" borderWidth="1" borderColor="#888888" />
                    <widget name="bufferingCBar"      position="94,54"         size="544,7"     zPosition="4" pixmap="%s" transparent="1" borderWidth="1" borderColor="#888888" />
                    <widget name="bufferingBar"       position="94,54"         size="544,7"     zPosition="3" pixmap="%s" borderWidth="1" borderColor="#888888" />
                    <widget name="statusIcon"         position="20,45"         size="40,40"     zPosition="4"             transparent="1" alphatest="blend" />
                    <widget name="loopIcon"           position="43,30"         size="40,40"     zPosition="4"             transparent="1" alphatest="blend" />
                    
                    <widget name="goToSeekPointer"    position="94,0"                     size="150,60"   zPosition="8" pixmap="%s" transparent="1" alphatest="blend" />
                    <widget name="goToSeekLabel"      noWrap="1" position="94,0"          size="150,40"   zPosition="9" transparent="1" foregroundColor="white"     backgroundColor="#251f1f1f" font="Regular;24" halign="center" valign="center"/>
                    <widget name="infoBarTitle"       noWrap="1" position="82,30"         size="568,23"   zPosition="3" transparent="1" foregroundColor="white"     backgroundColor="#251f1f1f" font="Regular;18" halign="center" valign="center"/>
                    <widget name="currTimeLabel"      noWrap="1" position="94,62"         size="568,23"   zPosition="3" transparent="1" foregroundColor="#66ccff"   backgroundColor="#251f1f1f" font="Regular;24" halign="left"   valign="top"/>
                    <widget name="lengthTimeLabel"    noWrap="1" position="307,62"        size="120,30"   zPosition="3" transparent="1" foregroundColor="#999999"   backgroundColor="#251f1f1f" font="Regular;24" halign="center" valign="top"/>
                    <widget name="remainedLabel"      noWrap="1" position="518,62"        size="120,30"   zPosition="3" transparent="1" foregroundColor="#66ccff"   backgroundColor="#251f1f1f" font="Regular;24" halign="right"  valign="top"/>
                    <widget name="videoInfo"          noWrap="1" position="0,0"           size="650,30"   zPosition="3" transparent="1" foregroundColor="#999999"   backgroundColor="#251f1f1f" font="Regular;24" halign="right"  valign="top"/>
                    
                    %s
                    
                    <widget name="subSynchroIcon"     position="0,0"           size="180,66"  zPosition="4" transparent="1" alphatest="blend" />
                    <widget name="subSynchroLabel"    position="1,3"           size="135,50"  zPosition="5" transparent="1" foregroundColor="white"      backgroundColor="transparent" font="Regular;24" halign="center"  valign="center"/>
                    
                    %s
            </screen>splayback_banner.pngsQ
            <screen name="IPTVExtMoviePlayer"    position="center,center" size="%d,%d" flags="wfNoBorder" backgroundColor="#FFFFFFFF" >
                    <widget name="pleaseWait"         noWrap="1" position="30,30"        size="500,30"    zPosition="3" transparent="1" foregroundColor="#999999"   backgroundColor="transparent" font="Regular;24" halign="left"  valign="top"/>
                    
                    <widget name="logoIcon"           position="140,30"        size="160,40"    zPosition="4"             transparent="1" alphatest="blend" />
                    <widget name="playbackInfoBaner"  position="0,0"           size="1280,177"  zPosition="2" pixmap="%s" />
                    <widget name="progressBar"        position="220,86"        size="840,7"     zPosition="5" pixmap="%s" transparent="1" borderWidth="1" borderColor="#888888" />
                    <widget name="bufferingCBar"      position="220,86"        size="840,7"     zPosition="4" pixmap="%s" transparent="1" borderWidth="1" borderColor="#888888" />
                    <widget name="bufferingBar"       position="220,86"        size="840,7"     zPosition="3" pixmap="%s" borderWidth="1" borderColor="#888888" />
                    <widget name="statusIcon"         position="150,70"        size="40,40"     zPosition="4"             transparent="1" alphatest="blend" />
                    <widget name="loopIcon"           position="150,110"       size="40,40"     zPosition="4"             transparent="1" alphatest="blend" />
                    
                    <widget name="goToSeekPointer"    position="94,30"          size="150,60"  zPosition="8" pixmap="%s" transparent="1" alphatest="blend" />
                    <widget name="goToSeekLabel"      noWrap="1" position="94,30"         size="150,40"   zPosition="9" transparent="1" foregroundColor="white"     backgroundColor="#251f1f1f" font="Regular;24" halign="center" valign="center"/>
                    <widget name="infoBarTitle"       noWrap="1" position="220,50"        size="840,30"   zPosition="3" transparent="1" foregroundColor="white"     backgroundColor="#251f1f1f" font="Regular;24" halign="center" valign="center"/>
                    <widget name="currTimeLabel"      noWrap="1" position="220,100"       size="200,40"   zPosition="3" transparent="1" foregroundColor="#66ccff"   backgroundColor="#251f1f1f" font="Regular;30" halign="left"   valign="top"/>
                    <widget name="lengthTimeLabel"    noWrap="1" position="540,100"       size="200,40"   zPosition="3" transparent="1" foregroundColor="#999999"   backgroundColor="#251f1f1f" font="Regular;30" halign="center" valign="top"/>
                    <widget name="remainedLabel"      noWrap="1" position="860,100"       size="200,40"   zPosition="3" transparent="1" foregroundColor="#66ccff"   backgroundColor="#251f1f1f" font="Regular;30" halign="right"  valign="top"/>
                    <widget name="videoInfo"          noWrap="1" position="560,20"        size="500,30"   zPosition="3" transparent="1" foregroundColor="#999999"   backgroundColor="#251f1f1f" font="Regular;24" halign="right"  valign="top"/>
                    
                    %s
                    
                    <widget name="subSynchroIcon"     position="0,0"           size="180,66"  zPosition="4" transparent="1" alphatest="blend" />
                    <widget name="subSynchroLabel"    position="1,3"           size="135,50"  zPosition="5" transparent="1" foregroundColor="white"      backgroundColor="transparent" font="Regular;24" halign="center"  valign="center"/>
                    
                    %s
            </screen>i€iisÉ<widget name="clockTime" noWrap="1" position="37,69" size="100,40" zPosition="3" transparent="1" foregroundColor="white" backgroundColor="#251f1f1f" font="Regular;%d" halign="center" valign="center" />splayback_progress.pngsplayback_cbuff_progress.pngsplayback_buff_progress.pngsplayback_pointer.png(t	subConfigtsubLinesNumR+tsizetheightR”trangetformattclockFormatRRX(
RPtsubtvaligntsubSkinParttsubSkintidxtplaybackBannerFiletskint
clockFontSizetclockWidget((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyt
__prepareSkinsN
		"	
"'2
R		*
					
R}cCs²tƒ|_|jjƒ|_|jjƒ|_|jƒ|_tj	||ƒd|_
||_d|jkr!tdƒ|_
i|_|jddƒ|jd<|jddƒ|jd<|jdd	ƒ|jd<|jd
dƒ|jd
<|jddƒ|jd<|jdtƒ|jd<ntd
ƒ|_
i|_d|_d|_d|krÝ|dddkr‹|dd|_|j|_qÝ|dd|jd<|dd|jd<|dd|jd<|jd|_n|jjjdƒt|ƒ|_||_|jddƒ|_|r/||_n	d|_|jddƒ|_|jdtƒ|_|jdgƒ|_|jddƒ|_ d|_!i|_"d|j"d<d|j"d<d|j"d<d|j"d<t|j"d<i|_#d|j#d<|jdtƒ|j#d<|jd dƒ|j#d <|jd!dƒ|j#d!<|jd"tƒ|j#d"<t$d#|jƒt%|ƒ|_&t'd$d%d&d'd(gi|j(d)6|j)d*6|j*d+6|j+d,6|j+d-6|j,d.6|j-d/6|j.d06|j/d16|j0d26|j1d36|j2d46|j3d56|j4d66|j5d76|j6d86|j7d96|j8d:6|j9d;6|j:d<6|j;d=6|j<d>6|j=d?6|j>d@6|j?dA6|j@dB6|jAdC6|jBdD6|jCdE6d	ƒ|dF<|jDjE|jFƒ|jGjE|jHƒd|_It|_Jd|_KtLƒ|_MtN|jMjO|jPƒ|_QtRƒ|dG<tRƒ|dH<tRƒ|dI<tRƒ|dJ<tSƒ|dK<tSƒ|dL<tSƒ|dM<tRƒ|dN<tT|jƒ|dO<tTdPƒ|dQ<tTdPƒ|dR<tTdSƒ|dT<tTdPƒ|dU<tTdVƒ|dW<|jrtTdVƒ|dX<ntTtdYƒƒ|dZ<d	|_Ux/tV|jWƒD]}tTdVƒ|d[|d\<q>W|jXƒi|_Yd	|jYd]<tZƒ|jYd^<t[ƒ|jYd_<d_|jYd`<t|jYda<tLƒ|jYdb<tN|jYdbjO|j\ƒ|jYdc<d	|jYdd<d	|jYde<d|jYdf<itdg6dhdigdj6ddk6|jYdl<d|jYdm<tTdnƒ|dh<tRƒ|di<y!t]t^doƒƒ|jYdldk<Wnt_k
r¡t`ƒnX|jaƒiddp6gdq6ddr6gds6ddt6gdu6|jdvdƒdw6tbƒdx6|_citddp6tedr6tedt6|_fiddp6ddr6ddt6ddw6|_giddy6ddz6|_hti|j|j|jƒ|_jtLƒ|jkd{<tN|jkd{jO|jlƒ|jkd|<|jkjmidd}6dd~6dd6dd€6dd6td‚6ddƒ6dd„6td…6td†6td‡6ddˆ6id‰6idŠ6gd‹6idŒ6gd6ƒiddŽ6dd6|jkd<idd‘6dd’6dd“6dd”6|jkd•<yõt]t^d–ƒƒ|jkd•d‘<t]t^d—ƒƒ|jkd•d’<t]t^d˜ƒƒ|jkd•d“<|jkd•d“|jkd•d”<d|jkr
t]t^d™ƒƒ|jkdG<nt]t^dšƒƒ|jkdG<t]t^d›ƒƒ|jkddŽ<t]t^dœƒƒ|jkdd<Wnt_k
r
t`ƒnXd|_nd|_oitdg6td6dHdKdLdMdNdQdOdRdTdUdWdIdJdGgdj6|_p|jr/|jpdjjEdXƒtLƒ|jpdž<tN|jpdžjO|jqƒ|jpdŸ<ntLƒ|jpdb<tN|jpdbjO|jrƒ|jpdc<t|_s|jrƒitd 6td¡6ddb6|_ttLƒ|jtdb<tN|jtdbjO|juƒ|jtdc<itd¢6|_vtLƒ|jvdb<tN|jvdbjO|jwƒ|jvdc<d|_xidd£6dd6|_yg|_zt|_{y d¤t||jj}ƒƒ|_~Wnt_k
rwd¤|_~nXt|_d|_€d|_d|_‚tƒ|_„d|_…dS(¥NR‰t	gstplayersexternal gstplayersdownload-buffer-pathRwsring-buffer-max-sizeisbuffer-durationiÿÿÿÿsbuffer-sizesfile-download-timeoutsfile-download-livesexternal eplayer3tmoov_atom_infotoffsetRœtmoov_atom_offsettmoov_atom_sizetfiletmoov_atom_filet	host_namet
downloadertdownload_manager_availabletexternal_sub_trackstiptv_refresh_cmdtconsolet
close_connt	data_conntdatatstartedtshow_iframetiframe_file_starttiframe_file_endtiframe_continues,IPTVExtMoviePlayer.__init__ lastPosition[%r]tIPTVAlternateVideoPlayertMoviePlayerActionstMediaPlayerActionstMediaPlayerSeekActionst
WizardActionstleavePlayerR]R_texittbacktinfos	seekdef:1s	seekdef:3s	seekdef:4s	seekdef:6s	seekdef:7s	seekdef:9R{R|t
left_presstleft_repeattrigth_presstrigth_repeattup_presst	up_repeatt
down_presstdown_repeattokt	subtitlestaudiotvideooptionstmenutlooptrecordtactionstlogoIcontplaybackInfoBanert
statusIcontloopIcontprogressBart
bufferingCBartbufferingBartgoToSeekPointertinfoBarTitles0:00:00t
goToSeekLabelt
currTimeLabels-0:00:00t
remainedLabeltlengthTimeLabelt t	videoInfot	clockTimesOpening. Please wait...t
pleaseWaits
subLabel%ditcurrent_sub_time_msthandlertembedded_handlerthandler_typetenabledttimert
timer_conntlatach_timet	last_timetmarkertvisibletsubSynchroLabeltsubSynchroIcontguiElemNamesticontsynchrotpos_y_offsets0.0sssub_synchro.pngtaspecttaspect_choicestpolicytpolicy_choicestpolicy2tpolicy2_choicestdefaul_videomodet	videomodetvideomode_choicestac3taact
GoToSeekTimertGoToSeekTimer_conntCurrentTimetBufferCTimetConfirmedCTimet
BufferFilltLengthtLengthFromPlayerReceivedtGoToSeekTimetStartGoToSeekTimetGoToSeekingtIsLivetIsLooptStatust
VideoTrackt
AudioTracktAudioTrackst
SubtitleTracktSubtitleTrackstOntOfft	loopIconstPlaytPausetFastForwardt
SlowMotiontstatusIconssplayback_a_play.pngsplayback_a_pause.pngsplayback_a_ff.pngsplayback_gstreamer_logo.pngsplayback_ffmpeg_logo.pngsplayback_loop_on.pngsplayback_loop_off.pngtblockedtclock_timertclock_timer_conntEOSaborted_receivedt
poll_receivedtwaitingtversioniè(†R%t	configObjtgetSubtitleFontSettingsRštgetInfoBannerrClockFormatR t _IPTVExtMoviePlayer__prepareSkinR§R2RRtskinNameRt_t
playerNametgstAdditionalParamstgetRZtextAdditionalParamstavailableDataSizeCorrectionttotalDataSizeCorrectiontsessiontnavtplayServiceRXRtfileSRCttitlethostNametlastPositionR³tisDownladManagerAvailabletexternalSubTrackst
refreshCmdtrefreshCmdConsoletextLinkProvtiframeParamsRRDtextPlayerCmddDispatcherR5tkey_stoptkey_playt	key_pausetkey_exittkey_infot	key_seek1t	key_seek3t	key_seek4t	key_seek6t	key_seek7t	key_seek9tkey_seekFwdtkey_seekBacktkey_left_presstkey_left_repeattkey_rigth_presstkey_rigth_repeattkey_up_presst
key_up_repeattkey_down_presstkey_down_repeattkey_okt
key_subtitlest	key_audiotkey_videooptiontkey_menutkey_loopt
key_recordtonCloseRKt_IPTVExtMoviePlayer__onClosetonShowtonStartR·t	isClosingtresponseDataR,tupdateInfoTimerRRft
updateInfotupdateInfoTimer_connRR8R7tinfoBanerOffsetYRžR›t
hideSubtitlest
subHandlerRRtupdatSubtitlesTimeR:Rt	ExceptionRthideSubSynchroControlRtdefVideoOptionsRRtvideoOptSetterstcurrVideoOptionstdefAudioOptionsRtmetaHandlertplaybackRqtupdatetgoToSeekRepeatCounttgoToSeekSteptplaybackInfoBartupdateClockthidePlaybackInfoBart	isStartedtwaitEOSAbortedFixt waitEOSAbortedFixTimeoutCallbacktwaitCloseFixtwaitCloseTimeoutCallbacktcloseRequestedByUsertplayerBinaryInfotmessageQueuetunderMessageRtgetInfoBarTimeouttautoHideTimetfatalErrorOccurstdelayedClosuretchildWindowsCounttworkconsoleRYtsetMoviePlayerConfigt
clipLength(RPR4tfilesrcLocationtFileNameR:RtadditionalParamsR¥((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRRs–										




	






























			







		
	


#


(

!

P%#)!
		H	&#	
##			 

					cCs%tdƒg}|jttdƒddƒƒ|jttdƒddƒƒt|jdƒrƒ|jttdƒdd	ƒƒn|jttd
ƒddƒƒ|jrÖ|jrÖ|jttdƒdd
ƒƒn|jt	|j
|jƒtidd6dd6dd6tdƒd6|d6ƒdS(NtshowMenuOptionst
ConfigurationRwRÕt	SubtitlesRÒRsAudio trackstaudio_trackss
Video optionst
video_optionssStop playback with buffer savetclose_with_buffer_saveiôR”iTRitcurrent_idxtMenuR8toptions(
RRKR#R-R~RrR;R³t	openChildR;tchildClosedtshowMenuOptionsCallbackR"(RPR•((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRþs
""cCs·td|gƒt|tƒs$dSd|jkr@|jƒnsd|jkr\|jƒnWd|jkrx|jƒn;d|jkr”|jƒnd|jkr³|jdƒndS(NsshowMenuOptionsCallback ret[%r]RÕRÒRR‘R’tsave_buffer(	Rt
isinstanceR#tprivateDatatrunConfigMoviePlayertselectSubtitletselectAudioTracktselectVideoOptionsRB(RPR†((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR˜s



cCs0tdƒ|jt|j|jƒttƒdS(NtrunConfigMoviePlayerCallback(RR–R;R—R R&RY(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRœs
cCs#td|ƒ|sdS|j}|jjƒ|_|j}xOt|jƒD]>}d|d}||jjt|d|dƒƒ||jj	t
|dƒƒ||jjt
|dƒƒd|kr||jjt
|dd	ƒƒ||jj
|dd
ƒnNy3ttƒ}d|kr@||jj
dƒnWntk
r[tƒnXd
|krº||jjt
|d
d	ƒƒ||jjt|d
d|d
dƒƒnCd
|krý||jjtddƒƒ||jjtƒƒn|jdksd|jdkr6||jjdƒnDy)idd6dd6dd6}||jj|j|ddƒƒ||jjttdƒjƒjƒd|dƒƒ||jttdƒjƒjƒd|dƒƒ||jtdtdƒjƒjƒ|d|dƒƒ||jjtdtdƒjƒjƒ|d|dƒƒWntk
rytƒnX|jdt ƒqLW|j!ƒd|j"dkrÅ|j#|j"dt$ƒn|jdt ƒ|j%ƒd}t }ddd g}	|jj'ƒ}
x½|	D]µ}|
|}|j(j)|ƒ}
|j*|}|j+|}td!|
ƒd|
krtd"||fƒ||krÅtd#ƒd|kr¬||j*|<n
||j*|<t$}qÅqqW|râ|j,|j*ƒny d$t-|jj.ƒƒ|_/Wntk
rd$|_/nXdS(%Ns.runConfigMoviePlayerCallback confgiChanged[%s]s
subLabel%diRR‘RRŒR’R“R”tsetBorderColoriR•R–R—R‹itbottomRttopRŽiR™i
R˜RæiÿÿÿÿRêRwRûRýRÿs>>>>>>>>>>>>> 0 [%s]s>>>>>>>>>>>>> A [%s] [%s]s>>>>>>>>>>>>> Biè(0RRšR(R)RžR›tinstancetsetFontR.tsetForegroundColorR=tsetBackgroundColorR¡tsetBorderWidthtdirR-RkRtsetShadowColortsetShadowOffsetR/R1t	setVAlignR0tresizeR0R+RœR”tmoveRtsetSubtitlesTextRZtsetSubOffsetFromInfoBarRitupdateSubtitlesRYRhRXtgetDefaultPlayerVideoOptionsRqtgetVideoOptionRoRmtapplyVideoOptionsRR‚Rƒ(RPt
confgiChangedtprevSubR¡R¥tsubLabelttmpt	valignMaptvideoOptionChangetvideoOptionstplayerDefOptionstoptt	playerValtmetaValtcurrValtdefVal((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR s†		%"
"0"$74<C








 
cCs2itdƒd6tdƒd6}td|ƒ|S(NRRs+>>>>>>>>>>>>>>>>>>>>> getE2AudioOptions[%s](RR(RPRp((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytgetE2AudioOptionspscCs^itƒd6tƒd6tƒd6tƒd6tdƒd6tƒd6dd6}td	|ƒ|S(
NRûRüRýRþt2RÿRtactives+>>>>>>>>>>>>>>>>>>>>> getE2VideoOptions[%s](R
R	R
RRXR(RPRm((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytgetE2VideoOptionsws






cCs`tdƒdddg}x@|D]8}|j|dƒ}d|kr |j||ƒq q WdS(Ns!applyVideoOptions newOptions[%s] RûRýRÿ(RR0RXRn(RPt
newOptionsR•R½R‚((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR´ƒs

cCsktdƒg}d}itdƒd6dd6itdƒd6dd6itd	ƒd6d
d6itdƒd6dd6g}x™|D]‘}t|j|dd
ƒdkr¬qnd|j|dkrÉqn|jd|dkrït|ƒ}n|jt|dd|dƒƒqWt|ƒrg|jt|j	|j
ƒtidd6|d6tdƒd6|d6ƒndS(NRŸisVideo policyR8RýtnamesVideo policy for 4:3RÿtAspectRûs
Video modeRt_choicesiRÄRwiôR”R“sSelect video optionR•(RR-R~RmRXRKR#R–R;R—tselectVideoOptionsCallbackR"(RPR•tcurrIdxt
optionsTabtoption((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRŸ‹s
b
!%c
Csltd|gƒt|tƒs$dSg}d}|j}||jd<|jd|}|j|}d|kr€|j|}n|dkr/xH|D]@}||kr´t|ƒ}n|jtt	|ƒd|ƒƒq“W|j
t|j|j
ƒti|jd6dd	6|d
6t	dƒ|jd6|d
6ƒn9td|ƒg}x\|D]T}||jd|jdgksŽ|jdƒsŽ|jdƒrJ|j|ƒqJqJWxxtt|ƒƒD]d}	tt	||	ƒd||	ƒ}||	|krtj|_|	}ntj|_|j|ƒqµW|j
t|j|jƒtidd	6|d
6t	dƒ|jd6|d
6ƒdS(Ns"selectVideoOptionsCallback ret[%r]iRÄs
%s_choicesRRwtselection_changediôR”R“s	Select %sR8R•s
choices %st1080t2160(RRšR#R›RmRoRXR~RKR-R–R;R—tselectVideoOptionCallbackR"tvideoOptionSelectionChangedRÇt
startswithRžtTYPE_ONttypetTYPE_OFFtselectVideoModeCallback(
RPR†R•RËRÍtchoicest	currValueRQtfilteredChoicesR¥((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRÊšs<	


#X
> 	cCsÐtd|gƒt|tƒrÂ|jd}d|krI|jd}n|j|jdkrÂ|j|krÂt|jƒ|jt	|j
|jƒtdt
dƒdtjddd	tƒdSn|jƒdS(
NsselectVideoModeCallback ret[%r]RRttexts$Is this message displayed correctly?RÕRfi
tdefault(RRšR#RoRXRmR›RR–R;R—tconfirmVideoModeCallbackR9R-t
TYPE_YESNORZRŸ(RPR†RÙ((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR×¾s
%
@cCsbtd|gƒ|rCtƒ}||jd<|jjd|ƒnt|jdƒ|jƒdS(Ns confirmVideoModeCallback ret[%r]R(RRRoRqtsetVideoOptionRRŸ(RPR†tcurVideoMode((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRÝÉs	
cCsWtd|gƒt|tƒrSt|jƒ}|j||jd<|j|ƒndS(Ns#videoOptionSelectionChanged ret[%s]RÄ(RRšR#tdictRoR›RmR´(RPR†RÆ((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRÒÓs
cCs’td|gƒt|tƒrW|jj|jd|jƒ|j|j|jd<n tdd|j|jdƒ}|j|ƒ|j	ƒdS(Ns"selectVideoOptionsCallback ret[%r]RÄRw(
RRšR#RqRßRmR›RoRÒRŸ(RPR†((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRÑÚs 
cCsztdƒ|jd}t|ƒrZg}td|jdƒ|jdjddƒ}d}x¬tt|ƒƒD]˜}dj||d	t||d
ƒƒ}t|di||dd6|d
6ƒ}||d|krïtj|_	|}ntj
|_	|j|ƒqpW|jt
|j|jƒtidd6dd6|d6tdƒd6|d6ƒn|jtdƒtjdƒdS(NRžRs>>>>>>>>>>>> AudioTrack[%s]RRaiÿÿÿÿis	[{0}] {1}tencodeRÇRwttrack_idt	track_idxiôR”iðRR“sSelect audio trackR8R•s-Information about audio tracks not available.(RRrR~R0RžRŸR-R#RÔRÕRÖRKR–R;R—tselectAudioTrackCallbackR"tshowMessageR9t	TYPE_INFORX(RPt	tracksTabR•t	currentIdRËttrackIdxRÇRQ((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRžäs"

((	NcCs’td|gƒt|tƒrŽ|j}d|krŽ|d|jdjddƒkrŽ|jj|jddƒƒ|jj	|dƒqŽndS(Ns selectAudioTrackCallback ret[%r]RãRRaiÿÿÿÿRä(
RRšR#R›RrR0RqtsetAudioTrackIdxRARb(RPR†((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRåùs	/c
Cs\tdƒg}|jjƒd}|jdjddƒ}|jd}|dkr^d}nttdƒd	id
d6ƒ}d|kr¤d|kr¤tj|_ntj	|_|j
|ƒx¦tt|ƒƒD]’}dj
||d
t||dƒƒ}t|d	i||dd6|d6ƒ}||d|krItj|_ntj	|_|j
|ƒqÐW|jjƒ}xtt|ƒƒD]y}dj
||d||dƒ}t|d	i|d6ƒ}|d|krètj|_ntj	|_|j
|ƒqˆW|jdrPd|jjƒkrP|j
ttdƒd	idd6ƒƒnt|jƒrÈxf|jD]X}dj
|jdd	ƒ|dtdƒƒ}	|j
t|	d	idd6|d6ƒƒqiWn|j
ttdƒd	idd6ƒƒ|j
ttdƒd	idd6ƒƒ|jt|j|jƒtidd6|d 6td!ƒd6|d"6ƒdS(#NRiRRaiÿÿÿÿRiRXRwtnonetothers	[{0}] {1}RâRÇRãRätlangR8RîtSynchronizeRùs[{0}] {1} ({2})sDownload suggestedtdownload_suggestedttracktLoadtloadtDownloadtdownloadiXR”R“sSelect subtitles trackR•(RRqtgetSubtitleIdxRrR0R#R-RÔRÕRÖRKRžR~RŸtgetSubtitlesTracksRiRXtgetSubtitleTrackR<R–R;R—tselectSubtitleCallbackR"(
RPR•RËtembeddedTrackIdtembeddedTracksTabRQRêRÇRèR8((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRsH

	
(("")+.&&cCsÆtd|gƒt|tƒrÂ|j}d|kr	|d}|dkrŒidd6|jd<|jjdƒ|jjdƒ|jƒq¿|dkr¥|j	ƒq¿|dkr¾|j
ƒq¿|d	kr×|jƒq¿|d
kr¿d|kr¿|j|dgƒq¿qÂd|krM|jj|d
ƒ|jjdƒ|j|dƒqÂd
|krÂ|jj|d
ƒidd6|jd<|jjdƒ|j
jdƒ|jdjƒ|jƒqÂndS(NsselectSubtitleCallback ret[%r]RíRìiÿÿÿÿRaRRùRóRõRðRñRãRäRì(RRšR#R›RrRqtsetSubtitleIdxtsetEmbeddedSubtileTrackIdxtdisableSubtitlestshowSubSynchroControltopenSubtitlesFromFiletdownloadSubtenableEmbeddedSubtitlesRARdRitflushSubtitlestenableSubtitles(RPR†RÍ((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRù2s:	




cCsýtdƒtƒ}|j}d}|j|ƒrP|t|ƒjddƒ}nt|ƒr£|jdƒr£ytj	|ƒ\}}Wq£t
k
rŸtƒq£Xntj
ddjtjƒƒtjƒ}|jt|j|jƒt|tdƒ|ƒdS(	NRsfile://s//t/s/.iptv_buffering.flvs
^.*?(:?\.%s)$s|\.sSelect subtitles file(RRR7RÓR~treplaceR<tendswithtos_pathtsplitRkRtretcompiletjoinRtgetSupportedFormatst
IGNORECASER–R;R—topenSubtitlesFromFileCallbackR$R-(RPtcurrDirR7ttmpMatchttailt	fileMatch((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRSs
		
(cCsotd|ƒd|krk|jdj|ƒdtjjjj|f}t	|t
|j|ƒƒ|_ndS(Ns*openSubtitlesFromFileCallback filePath[%s]Rës%s "%s"(
RRXRitremoveCacheFileR6tpluginst
iptvplayertuchardetpathRJRR;tenableSubtitlesFromFileR‡(RPtfilePathR„((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRcs
iRwc
CsÚt|ƒ}d|ks$d|kr-d}n|jƒ}tƒdkrc|dkrct|ƒ}nd|krxd}ntd||fƒd|krÖtj|dd	jt	j
ƒƒƒd}ytj|ƒ\}}Wnt
k
rõtƒdSXd
}|jjƒ}x]tt|ƒƒD]I}	y(tj||	d|ƒrK|	}PnWqt
k
rftƒqXqWd
|kr¶|jji|d6dd
6dd6|d6dd6|d6ƒ}n|jj|ƒ|j|ƒndS(NitunknownRwtpls
iso-8859-2sutf-8s1enableSubtitlesFromFile filePath[%s] encoding[%s]s,_([a-z]{2})_[0-9]+?_[0-9]+?_[0-9]+?(:?\.%s)$s|\.iÿÿÿÿRCR8RatproviderRîtdelay_ms(RtstripRRRRXR'tgetSearchGroupsRRR
RR	RkRRqR÷RžR~tsamefiletaddSubtitleTrackRüR(
RPRtcodetencodingRîRtfileNameRêttracksR¥((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRjs:		)

?cCsZidd6|jd<|jjdƒ|jdjƒ|jƒt|jd<|jƒdS(NiÿÿÿÿRaRRìRî(RrRARdRiRRhRZtupdateSubSynchroControl(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRþs

cCs¤tdƒ|jdjddƒ|krM|jdjƒ|jj|ƒnd|jd<d|jd<t|jd<|j	ƒ|j
r t|_
|jtƒndS(	NRRRaiÿÿÿÿRìRíRóRî(
RRrR0RiRRARdRXRYR&RˆRZR (RPRa((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR•s




		sutf-8cCstdƒ|jrdS|jjƒ}d|krE|jjƒrA|jdrA|j}d}|j|ƒrŒ|t	|ƒj
ddƒ}nt|ƒrA|jdƒrAd}yVt
j|ƒ\}}x:tjƒD],}t|d|ƒrÓ|d|}PqÓqÓWWntk
rtƒnXd|kr>|j|ƒq>qAndStd	|ƒ|d
}|jdj||ƒ}	|	s¼|jj|jjƒƒtdƒ|}
|j|
tjƒdSd|jd
<d|jd<t|jd<|jƒ|jrt|_|j tƒndS(NRtauto_enablesfile://s//Rs/.iptv_buffering.flvRwt.senableSubtitles track[%s]RCRës5An error occurred while loading a subtitle from [%s].RíRóRî(!RRbRqRøRXthasSubtitlesTracksRšR7RÓR~RR<RRtsplitextRR
RkRRRit
loadSubtitlestremoveSubtitleTrackRöR-RæR9t
TYPE_ERRORRYR&RˆRZR (RPR#RñR7RtsubFileRÇtextRCtststmsg((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR¢sL
		





		cCssd|jdkrod|jdkro|jdttjƒ|jddƒ}||jd<|j|ƒndS(NiÿÿÿÿRòRñièRê(RiRttimeR±(RPttimeMS((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRjËs&,
cCsQd|jdkrdS|jds(dS|jdjƒ|jdjdƒdS(NRRRîRïid(RrRiR[tstart(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytrestartSubTimerÑs
cCs;tjƒ|jd<||jd<|jƒ|j|ƒdS(NRñRò(R2RiR5R±(RPR3((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytlatchSubtitlesTime×s

cCs|jr
dS|jdsdSd|jjƒkrJd|jdkrJdS|jd}|rfd}n|jd}|dkr‘|jjƒ}nd}|j|j|||ƒ\}}d|krü||jd<d|krì|jƒqü|j|ƒndS(NRîRëRíRóiRw(	RbRiRXRqRøtgetSubtitleTrackDelaytgetSubtitlesRhR¯(RPR3tforcet
prevMarkerRíRRóRÛ((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR±Ýs&	
(
	
#

cCs4x-t|jƒD]}|d|djƒqWdS(Ns
subLabel%di(RžR›thide(RPR¥((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRhúscCsÛt}tdƒjƒjƒ}tdƒjƒjƒ}|d}|jd}|rb|jƒ}n|jdkr¦d|jdkr¦|dj|ƒ|dj	ƒn1|j
dƒrÈ|d	}t}	nt}	|jdkr|jd
|jdƒ}
|g}n/|j
dƒ}|	s%|jƒn|jd
}
|jd}|	sY||jd
7}nx{t|jƒD]j}d|d}
|t|ƒkr±||}|r·|jƒ}q·nd}d|kr×||
jƒqinyá||
jjt||ƒƒ||
jt||ƒƒ||
j|ƒ||
jƒ}tdt|ƒ|d|jdƒfƒ|rýt|ƒdkrý|d|krý|jdƒdkrý|j
dƒ}t|ƒdd}ddj|| ƒdj||ƒf}|j|ttƒdS|d|jdd}|
}||
jjt||ƒƒ|	so||
jjt||d|||ƒƒn%||
jjt||d|ƒƒ|||jd7}||
j	ƒWqitk
rÒtƒqiXqiWdS(NiiR™iR‹RŒt	subLabel1s{\an8}itline_heights
R˜Rús
subLabel%dRwslines [%d] width[%d] worlds[%d]Ræiis%s
%sR‘tline_spacing(RYR+RœR”RRšRR›tsetTexttshowRÓRZtcountR	treverseRiRžR~R;R¤R­R0tgetSizeRRR¯R®R/RkR(RPRÛt	stripLinetbreakToLongLineRÇtdesktopWtdesktopHtdWtdHtsubOnTopHackt
lineHeighttytlnIdxR·tlnTextttextSizet	splitWordtlWtlH((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR¯þsp

"
	



*=*0%
cCs|jjƒ|jƒdS(N(RARytupdateBufferFill(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRe@s
cCsBd|jkr>|jjƒrÅ|jjƒdkrÅ|jjƒ}|jjƒ}d|krÁd|krÁ|d||jd<|jd|d_|jd|krÁ|j|ƒ||_qÁndS|jj	ƒ|j
}d|kr>|jjtƒ|j
}d|kr;|d||jd<|jd|d_q;q>ndS(Nii †RRßR(RXR³thasDurationInfotgetTotalFileDurationtgetDownloadedFileDurationRrRJtsetPlaybackLengthR‰tgetRemoteFileSizeR3tgetLocalFileSizeRYR2(RPt
totalDurationtdownloadDurationtremoteFileSizet
localFileSize((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRSDs"$
cCs\tdƒ|jr#|dkr#dSi|d6|d6|d6}|jj|ƒ|jƒdS(NsIPTVExtMoviePlayer.showMessageR1RÕtcallback(RRbRXR€RKtprocessMessageQueue(RPtmessageRÕR^tmessageItem((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRæXs
cCsà|jsdt|jƒkr"dSt|_x®t|jƒrÛ|jjdƒ}|d|d|d}}}d|kr‘d|kr‘|ƒnF|jr¬d|kr¬q.n+|jjt	|j
|ƒtd|d|ƒdSWdS(NiR1RÕR^RÛ(RR~R€RYtpopRXRbR4topenWithCallbackR;tmessageClosedCallbackR9(RPRaR`RÕR^((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR__s	 
+cCs-t|_d|kr|ƒn
|jƒdS(N(RZRRXR_(RPR^RU((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRdls	
cCs!|jdr|jjƒndS(NR$(RzRAR[(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR{qs
cCsW||jd<d|f|d_d|f|d_|djttd|ƒƒƒdS(NRiRÝRÞRåtseconds(RrRžR?R€R?(RPt	newLength((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRWus
c
	Cs|jddkrK|jdkrK|jjƒdkrK|jd|d<nx¯|jƒD]¡\}}d|kr9d|kr td|ƒd}t|jd<n
t|jd<d|krùd|jkr“|j|jddkr“|j	ƒ|jddkrA|jd|jdd}||jdkrN|jd}qNn
|jd}|j|kr“|j
ƒ|jjt
|jd	ƒƒd|_q“n|jd
}|jd|krÃ|jd}n||krá|}||_n|jd|kr&d|jks|jjƒr&|j|ƒq&nt|jd<qùqXd|kr~|jd|kr{||jd
kr{|j|ƒn||d
_|jd}|d|jd<d|jdkr|jd|jd<|jd|}|dkr|dkr|jd|jd<qn|djt
td|jdƒƒƒ|djdt
td|jd|jdƒƒƒ|djƒqXd
|krÊ|jd|kr­|j|ƒn||jd
<||d_qXd|kry|jd}|jd|dkrùd|dkr|j
ƒn#|dd6kr:|j
dtƒn|d|jd<|dj|jdj|ddƒƒqùqXd|krî|jd|krù||jd<d }	|rºd!}	n|d"j|jd#j|	dƒƒ|j
ƒqùqXd$|krØ||j|<|d%jd&ƒd'}
d(|
|d)|d*f}|d+rP|d,7}nt|d+krm|d-7}n|d.}|t|ƒkr˜t|ƒ}n|d/|7}|d0|d1jd2d3ƒ7}|d4j|ƒqX||j|<td5||fƒqXWdS(7NRitffmpegs?IPTVExtMoviePlayer.playbackUpdateInfo Length[%d] - live stream?Ri
Ri †iR	RR
RÝRiR
RãReRät-RéRÞRRRRRR!RÛR RRRRÜRRRâRiÿÿÿÿs%s %sx%sR”Rtprogressivetptit
frame_rates, %sfpss, %staspect_ratioR-t:Rçs>>> playback[%s] = %s(sPausesFastForwards
SlowMotion(RrR³RXtgetNamet	iteritemsRRYRZR:RStshowPlaybackInfoBarRARqR€R‰RTRWRJR?R?R;t	setPixmapR0R	R@RR(
RPtstsObjtkeyR‚tmaxt	tmpLengtht	prevCTimeRntcurStsRøtcodecRÛtfps((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytplaybackUpdateInfo{s¦7
)



&

'6


.
	$





cCs‰|jdjƒ|jdr…|jƒ|jd|jd<|jjt|jdƒƒt|jd<|djƒ|djƒndS(NRRRRRàRâ(RrR[RqRARqR€RZR;(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRqÔs


cCsDtd||jd|jdfƒ|jdjƒ|jdsGdS|jds¤t|jd<|jd|jd<|jgtƒ|djƒ|djƒn|jd	d
kr|jd|jd	d}||jdkrö|jd}n||jd
kr)|jd
}q)n
|jd}|jd|}||krO|}n|d
krdd
}n||jd<|djttd|jdƒƒƒ|dj	j
ƒjƒ|jd|jd}|djd
|dj
ƒd|}|dj||djdƒ|dj||djdƒ|jdjdƒdS(Ns`IPTVExtMoviePlayer.doGoToSeekPointerMove seek[%r], LengthFromPlayerReceived[%r], GoToSeeking[%r]R
RRRRRàRâRiRi †R	ReRÝiiiè(RRrR[RYRqR@R?R€R?R¤RœR”tpositiontgetWidthtsetPositionR4(RPRHRuR˜t	relativeXtx((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytdoGoToSeekPointerMoveÞs:%



		
'/'cCsJ|jjddƒ}tjjjjrF|dkrF|jj|ƒndS(NR
i(	RrR0R6RRtremember_last_positionRJRqtsetLastPosition(RPR:((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytsaveLastPlaybackTimescCs:tjjjjr6|jdkr6|jjƒ|_ndS(Ni(R6RRR‚RJR:RqtgetLastPosition(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytloadLastPlaybackTime
s!RBcCsi|djtdƒƒ|djƒ||_|jdkr\|jjƒre|jƒqen	t	|_
dS(NRésClosing. Please wait...(R?R-R@R~R·RXRAR[R„RYRb(RPtrequestedByUser((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRBs	cCs|jjƒdS(N(RAR](RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRCscCs|jjƒdS(N(RAR_(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRDscCs|jƒdS(N(tdoExit(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyREscCs|jƒdS(N(tdoInfo(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRFscCs|jtjjjdƒdS(Niÿÿÿÿ(RoR6RHtselfdefined_13RJ(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRGscCs|jtjjjƒdS(N(RoR6RHRŠRJ(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRHscCs|jtjjjdƒdS(Niÿÿÿÿ(RoR6RHtselfdefined_46RJ(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRIscCs|jtjjjƒdS(N(RoR6RHR‹RJ(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRJ scCs|jtjjjdƒdS(Niÿÿÿÿ(RoR6RHtselfdefined_79RJ(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRK!scCs|jtjjjƒdS(N(RoR6RHRŒRJ(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRL"scCs|jjƒdS(N(RAR{(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRM#scCs|jjƒdS(N(RAR|(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRN$scCs|jddƒdS(Niÿÿÿÿtpress(tgoToSeekKey(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRO%scCs|jddƒdS(Niÿÿÿÿtrepeat(RŽ(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRP&scCs|jddƒdS(NiR(RŽ(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRQ'scCs|jddƒdS(NiR(RŽ(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRR(scCs|jddƒdS(NiÿÿÿÿR(tgoSubKey(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRS)scCs|jddƒdS(NiÿÿÿÿR(R(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRT*scCs|jddƒdS(NiR(R(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRU+scCs|jddƒdS(NiR(R(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRV,scCsÃd|jkr¯|jjƒr¯|jddkr¯|jddkr¯||jd7}|dkrjd}n+||jddkr•|jdd}n|jjt|ƒƒdS|jj|ƒdS(NRiRi
(RXR³RTRrRARqR€Ro(RPR‚((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRo.s&	cCs4d|jdkr#|jjƒn
|jjƒdS(NRR(RrRAR]R_(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRW9scCs4|jdr |jjdƒn|jjdƒdS(NRii(RrRARl(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR\=s
cCs|jƒdS(N(R(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRXCscCs|jƒdS(N(Rž(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRYFscCs|jƒdS(N(RŸ(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRZIscCs|jƒdS(N(R(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR[LscCs'|jr#|jr#|jdƒdSdS(NR™i(R;R³RB(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR]Os
RcCsô|jds#d|jjƒkr1|jƒdS|jddr||jjƒ}||d7}|jj|ƒ|jƒntd|jkr¢|jd|jd<n|jdcd|7<|j	ƒd|jd	krð|j
|jd	tƒndS(
NRîRùRôiôtorig_posR˜iûÿÿÿiÿÿÿÿRê(RiRXRqRøRlR7tsetSubtitleTrackDelayR&RšR°R±RY(RPt	directiontstatetcurrentDelay((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRUs#


cCs¾|jdds5|jds5d|jjƒkrC|jƒdS|jjƒ}|dkrgd}nd}|d|d7}|d	j|ƒd
|jdkrº|j|jdƒndS(NRùRôRîit+Rws%.1fsg@@RõiÿÿÿÿRê(RiRXRqRøRlR7R?R±(RPR•t	textDelay((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR&fs5
	cCs¾d|kr!d|_d|_n9d|jkrKd|_|jd9_n|jd7_|j|jddkr‹|jdd|_nd|jkr¦d|_n|j|j|ƒdS(	NRiiiiRi
i(RuRtRrR(RPR“R”((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRŽss		cCs]|r%|jddr%|jƒn4|jdrLt|jd<|jƒn
|jdƒdS(NRùRôR!RE(RiRlRvRZRxRB(RPtfromInfo((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRˆ…s



cCsN|jds=|jrJ|jrJt|jd<|jƒqJn
|jtƒdS(NRôR!(RvRyRbRYRqRˆ(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR‰Žs


cCsÔtd|ƒ|jrdStdƒ}d|jdkrs||j|jd|f}|j|tj|j	ƒn]d|j
krÆd|krÆ||jtdƒ|f}|j|tj|j	ƒn
|j	ƒdS(Ns,IPTVExtMoviePlayer.eplayer3Finished code[%r]sSIt seems that the video player "%s" does not work properly.

STS: %s
ERROR CODE: %rR'RºR«iös€ERROR: pipeline could not be constructed: no element "playbin2" 
Please check if gstreamer plugins are available in your system.(RRbR-RXRR.RæR9R-t
onLeavePlayerR(RPR"R1((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyteplayer3Finished•s	cCsAtdƒd|jkr3tdƒ|jjƒn|jƒdS(Ns+IPTVExtMoviePlayer.waitCloseTimeoutCallbacks)Force close movie player by sending CtrlC(RRXR·t	sendCtrlCR™(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR}¢s


cCs°d|ks|jrdSd|kr5|jjƒnd|krht|jd<|jdjdtƒn|jdr¬d|kr¬|jdjƒ|jdjdtƒndS(Nsgot buffer empty from driver!swait EOS aborted!!R$RïiÐtpoll(RXRbRAR[RYRzR4(RPRº((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyteplayer3DataAvailable2©s
cCs`td„}d„}d|ks*|jr.dSd|jdkrW|jdc|7<n|j|}d|dkr}t}nt}|jdƒ}|r¯|d|_|d=nxª|D]¢}|jdƒr¶y3tj	|j
ƒƒ}|jƒd}||}Wntk
rt
|ƒq¶nXd	|kr?|j|d
ƒqXd|kr•|jƒ|jjdƒd|d
krU|jiddgd6ƒqUqXd|kr®|jƒqXd|krëd|d
krë|jit|dƒd6ƒqXd|kr(d|d
kr(|jit|dƒd6ƒqXd|kr§|ddkr§it|ddƒd6}d|kr†t|ddƒ|d<n|j|ƒ|j|dƒqXd|krô||tƒ}	|	jddƒdkrU|ji|	d6ƒqUqXd|kr>||ƒ}	|	jddƒdkrU|ji|	d 6ƒqUqXd!|kr‹g}
x!|D]}|
j||ƒƒqWW|ji|
d"6ƒqXd#|kræ||ƒ}	|	jddƒdkrU|ji|	d$6ƒ|j|	dƒqUqXd%|kr3g}
x!|D]}|
j||ƒƒqÿW|ji|
d&6ƒqXd'|krr|jd(rU||ƒ}|jd)j|ƒqUqXd*|kr’|jd)jƒqXd+|kr¹|ji|d,d-6ƒqXd.|kr—|d/rý|jid0d1gd6ƒ|jd2jƒqU|d3r.|jid4t|d5ƒgd6ƒqUd|d6krc|jid6d7|d6gd6ƒqU|d8rŠ|jiddgd6ƒqUtd9ƒqXd:|kr·|d|jd<qXd;|kr×|d|jd<qXd<|ksïd=|kr#|jd>|d?jd@ƒ|dAft j!dƒqXdB|krX|j|d?jd@ƒt j"dƒqXq¶q¶WdS(CNc	Ssâtd|ƒi}t|dƒ|d<t|ddƒ|d<t|dƒ|d<|rÞt|dƒd	|d
<t|dƒ|d<t|d
ƒ|d<d|d<y+t|dƒrÄt|d<n
t|d<Wntk
rétƒnXyÌt|j	ddƒ|dƒt|j	ddƒ|dƒ}g}x\d(d)d*d+d,d-d.gD]?}t
t|d#ƒ|d|ƒ}|j||dfƒqMW|jd$d%„ƒ|d#d|d&<WqÞtk
rÚd'|d&<tƒqÞXn|S(/Ns>>>> _mapTrack [%s]RateiRâtnRÇtfg@@RltwR”thRRiRjtanitadii	t16_9iit4_3i
t16_10t3_2it5_4gš™™™™™ý?s1.85gÍÌÌÌÌÌ@s2.35iRtcSs|dS(Ni((RQ((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyt<lambda>ÒsRmR(ii	R¥(iiR¦(ii
R§(iiR¨(iiR©(gš™™™™™ý?is1.85(gÍÌÌÌÌÌ@is2.35(
RRR€RLRXRYRZRkRR0RARKtsort(tobjtvideotparamstDARtaTabRQRn((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyt	_mapTrack»s8


>""

cSshtd|ƒi}t|dƒ|d<t|dƒ|d<t|dƒ|d<t|dƒ|d<|S(	Ns>>>> _mapTrack [%s]RatsR4RžtendttRÛ(RRR€(R¬R®((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyt_mapSubAtomÚsR'Rºs
iÿÿÿÿt{itTtct
PLAYBACK_PLAYièR0Rt1RRWRvtlengthRRxtsecRtJtmstlmsR	tv_cRaRta_cRta_lRts_cRts_lRts_aRîRìts_ftNtisLoopRRƒtisPausedRt0RïtisForwardingRtSpeedRs1/%dt	isPlayings/eplayer3DataAvailable PLAYBACK_INFO not handledtGSTPLAYER_EXTENDEDtEPLAYER3_EXTENDEDt	GST_ERRORtFF_ERRORs
%s
code:%sR1sutf-8R"tGST_MISSING_PLUGIN(#RZRXRbRRcRYR	RÓtjsontloadsRtkeysRkRR6t
onStartPlayerRdR4R{R™RR0RKRRit
addSubAtomRR[R€RRæRâR9R-Rç(RPRºR±Rµt	truncatedRQR¬RttupdateInfoParamsttmpTrackR%tsubAtom((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyteplayer3DataAvailable¹s¸		
	





 
!!





'%

4cCsVtd|ƒd|jkrRd|jkr?|jjdƒqR|jjdƒndS(Ns-IPTVExtMoviePlayer.onDownloadFinished sts[%s]R«i(RRXRARRgRj(RPR0((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytonDownloadFinishedQs
cCs¦tdƒt|_d|jkr2|jjƒnd|_d|jkrZ|jjƒnd|_d|jdkr±d|jd<d|jd<|jdjƒd|jd<nd|j	dkrØ|j	djƒnd|j	d<d|j
kr(d|_d|_d|_
|j
jƒd|_
nd|jkrM|jj|jƒnd|_|jr€|jdjƒd|jd<n|jdjƒd|jd<d|jd<d|jd<|jdjƒd|jd<d|_x$|jjƒD]}d|j|<qïW|jj|jƒg|_td	|jƒtd	|jƒt }x^d
ddgD]M}|j|}|j|}||jd
|krZ||krZt}PqZqZW|rÄ|j!|jƒn|j"ƒ}ddg}xL|D]D}||dkrã|||j#|krãt$||j#|ƒqãqãW|j%j&ƒd|j'krw|j'd|j'dkrw|j(j)|j'ƒnyd|j*_+Wnt,k
r¡t-ƒnXdS(Ns >>>>>>>>>>>>>>>>>>>>>> __onCloseR·R¸R¹R"R#RïRðs#>>>>>>>>>>>>>>>>>>>>> __onClose[%s]RûRýRÿs
%s_choicesRRR‘R˜(.RRYRbRXR‡tkillR>R?R›R@R·tconsole_appClosed_conntconsole_stderrAvail_conntconsole_stdoutAvail_connR³tunsubscribeFor_FinishRÝR RvR[RzR|RiRfRrtiterkeysR^tremoveR_R€RmRoRZR´RÂRpRRqtsaveRšR(tsetSubtitleFontSettingsRARERkR(RPRtRºR½R‚tval2R¼taudioOptions((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyt	__onCloseYs|
			


			
		



		

#
'
)
cCst|_|jƒdS(N(RYRyRq(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRÖ¦s	c	Cs´tdƒ|jdr>d|jdkr>|jdjƒn|jjƒ|jdjƒt|jd<|jƒt	|_
|jddt|j
|j|jjddƒƒƒdS(Ns IPTVExtMoviePlayer.onLeavePlayerR&RïR!R
i(RR|RXR[RdRiRZRvRxRYRbRæR;textmovieplayerCloseR~RrR0(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR™ªs
 


	cCs>|jdkr*t|j||ƒ|_n|j||ƒdS(Ni(R†R;tcloseWithIframeClearR…(RPR0tcurrentTime((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRêµscCs¾d}|jdr#|jd}n!|jjƒrD|jjƒ}n|dkrªtdƒrªt|ƒrª|jdsªtdj|ƒt|j	||ƒƒ|jd<dSn|j	||ƒdS(NRwR¼R¾t
showiframeR¿sshowiframe "{0}"R·(
R@R(tclearVideoByIframeInjectiontgetBlankIframeFilePathRR<RRŸR;tiptvDoClose(RPR0RìtblankIframeFilePath((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRë»s
$
.cCsd|jdkr'|jdjƒnd|jkrF|jjƒnd|_d|jdkrv|jdjƒnd|jd<|j|||jƒdS(NR·(RXR?R›R>RÞR@tcloseR‰(RPR0RìR"Rº((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRðÈs	
cOs&|jd7_|jj||ŽdS(Ni(R†R4Rc(RPtargstkwargs((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR–ÖscGsH|jd8_||Œd|jkrD|jdkrD|jƒndS(Ni(R†RXR…(RPR^Ró((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR—Ús
cCsÊ|jdkr't|jjƒƒ}nt|jƒ}dt|ƒkrŒ|jt|j|j	ƒt
i|jdd6|d6|jd6ƒn:|jt|j|j	ƒt
i|d6|jd6|d6ƒdS(NiRtduration_sect	movie_urltmovie_titletsub_list(R³RXRtgetUrlR7R~R–R;R—tdownloadSubCallbackR RrR8R!(RPtsimpleTracksTabturl((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRásDcCs_d|kr[|jdj|jddƒƒ|jj|ƒ}|jj|ƒ|jƒndS(NRëRCRw(RXRiRR0RqR!RüR(RPR†R¥((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRúës
 cCsö|jj|jƒd|jkrY|jdksD|jjdƒrYt|jƒ|_	n|j
drètdƒrèt|j
dƒrè|j
dr¸tdj
|j
dƒƒ|j
d<qètdj
|j
dƒ|jƒ|j
d<dSn|jƒdS(	NRwsext://R¼RíR½R¿sshowiframe "{0}"R·(R`RäRaR=R³RXR7RÓRR>R@RR<RŸtiptvGetUrlStart(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRaòs1
&)cCsÅ|jr|jƒdS|jdkr·|jdkr·|jjdƒr·tƒ|jd<t	|jdj
|jƒ|jd<t	|jdj|j
ƒ|jd<|jdj|jƒn
|jƒdS(NRwsext://R·R¸R¹(RbR™R³RXR=R7RÓR*R?Rt	appClosedt_updateGetUrlFinishedtstderrAvailt_updateGetUrlDataAvailtexecutetiptvDoStart(RPR"Rº((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRýs	
0##cCs,td|ƒ|jds(|jƒndS(Ns)_updateGetUrlFinished update code[%d]--- R»(RR?R™(RPR"((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRÿs
cCs|jr
dSd|krdt|ƒkr|jdc|7<|jdjdƒr|jdjdƒ}d}x,|D]$}|jdƒrw|jƒ}qwqwW|jdƒrð|jdsðt||j	j
ƒ|_	t|jd<|jƒqðnd|jd<qndS(NiRºs
RwthttpR»(
RbRXR~R?RR	RÓRRR7tmetaRYR(RPRºRüRQ((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRs 	


cCs[|jr|jƒdSd|d_d|d_dg|d_d|d_|jƒ|jjƒ|jƒ|jd}|jd}|dkrñ||krñt
ƒ}|jjdƒ}||krÞ||krÞt|ƒnt
ƒ|j
d<nd|jkr|jj|jƒnd|jkr`|jjd	ƒrYtd
ƒ}|j|tjƒntjjjj}|d|j}|jjƒ}|d|7}d|jkrÇ|jjƒrÇ|jd
}	nd}	|dj|	ƒ7}|jdr|djdƒ7}n|djdƒ7}d|jkrS|d|jd|jd|jd|jdf7}t |jƒ}
t!j"|
t#ƒ\}}x&|D]}
|d|
||
f7}q‰Wd|
j$krS|
j$d}
d|
krPd|
kr<t%j&d|
ƒ}
|
rJ|d|
j'dƒ|
j'dƒ|
j'dƒ|
j'dƒf7}qJqM|d|
7}qPqSn|d 7}nztjjj(j}|}t |jƒ}d!}|j}|jjd	ƒrPd"|j$krPd#|j$krP|j$d"}|j$d#}t)d$|ƒ\}}t)d%|ƒ\}}d&|}d&|}|sPtd'ƒt*ƒ}|j|tjƒqPnd|jkr†tjjj+j}t!j"|t#ƒ\}}d!}xY|D]Q}
|
d(kr®q–q–|
d)krÏ|d*||
7}q–|d+|
||
f7}q–Wt,|ƒr|d,|7}n|jd-ƒrQt-j.|ƒ}d.|j$j/d/d0ƒkrQ|d17}qQn|j$j/d2d!ƒ}|d!kr˜|d3|7}q˜ntjjj0j}|dkrµ|d4|7}ntjjj1jrÔ|d57}ntjjj2jró|d67}ntjjj3jdhkrŠtjjj4jr*|d;7}ntjjj5jrI|d<7}ntjjj6jrh|d=7}ntjjj7jrŠ|d>7}qŠnd?tjjj8jkr¯|d@7}ntjjj9jrÎ|dA7}nAtjjj3jdikr|dB7}d|jkr|dC7}qn|jjƒ}t:dD|ƒ|dkrI|dE|7}ntjjj3jdjkrž|jj;ƒ}t:dF|ƒ|dkrž|dG|7}qžn|d!kr»|dH|7}ndI|j$krâ|dJ|j$dI7}ndK|j$kr	|dL|j$dK7}ndM|j$kr0|dN|j$dM7}ndO|j$krsdP|j$krs|dQ|j$dO|j$dPf7}n|j<j/dRd!ƒd!krÈ|dS|j<dR|j<dT|j<dU|j<dTf7}n|d|d 7}t=ƒ|_>t?|j>j@|jAƒ|_Bt?|j>jC|jDƒ|_Et:dV|ƒ|j>jFtG|dƒƒ|dWjH|jIdXdYƒ|dZjH|jId[d\ƒ|d]jH|jId]ƒ|d^jH|jJd_d`ƒdadbdcg}|jKjLƒ}x`|D]X}|jj|ƒ}|dkr
||j
|<qÔ	||dkrÔ	|||j
|<qÔ	qÔ	WtM}|jjN|jOƒƒxo|D]g}|j
|}||jdd|kr¦
||j|kr¦
t#}||j
|<qS
|j||j
|<qS
W|r×
|jP|j
ƒn|jQƒ|_R|jKjSƒ}dedfg}xI|D]A}||dkr|||jR|krtT|||ƒqqW|jUƒdS(kNiRÝRÞi †RßRRR«smerge://sOLink is not supported by the gstplayer. Please use the extelayer3 if available.s "%s"s %d sfile-download-timeouts {0} sfile-download-liveis://s "%s" "%s"  "%s"  "%s" sdownload-buffer-pathsring-buffer-max-sizesbuffer-durationsbuffer-sizes	 "%s=%s" t
http_proxyt@s#([^:]+?://)([^:]+?):([^@]+?)@(.+?)$s( "proxy=%s" "proxy-id=%s" "proxy-pw=%s" iiis "proxy=%s" s > /dev/nullRwt	audio_urlt	video_urls.iptv_audio_uris.iptv_video_urisiptv://s(An error occurred while writing into: %stRanges
User-Agents -u "%s"s%s: %s
s -h "%s"RRºsMPEGTS-LiveRÊs -v s
PROGRAM-IDs	 -P "%s" s -b %s s -s s -d tsh4tmipseltarmv7tarmv5ts -w s -m s -e s -3 tlpcms -l s -a 3 -p 10s -p 2s -o 1 s*>>>>>>>>>>>>>>>>>>>>>>>> audioTrackIdx[%d]s -t %d s->>>>>>>>>>>>>>>>>>>>>>>> subtitleTrackIdx[%d]s -9 %d s	 -x "%s" tiptv_video_rep_idxs -0 %s tiptv_audio_rep_idxs -1 %s tiptv_m3u8_live_start_indexs -f "live_start_index=%s" tiptv_m3u8_key_uri_replace_oldtiptv_m3u8_key_uri_replace_news) -f "key_uri_old=%s" -f "key_uri_new=%s" R±s -F "%s" -S %s -O %sR®R¯s->||||||| onStart cmd[%s]RÛR RRÜRRRÙRöRùRøRûRýRÿs
%s_choicesRR(ii †(RRR
R(RRR
R(RRR
R(VRbR™RJRžtinitGuiComponentsPosRqRóR†RmRXRR³RRoR³tsubscribeFor_FinishRÝRR7RÓR-RæR9R-R6RRt
gstplayerpathtgetAudioTrackIdxt
isDownloadingR/RŸRRt!getDownloaderParamFromUrlWithMetaRYRR
tsearchtgrouptexteplayer3pathRRtrambuffer_sizemb_network_protoR~R(tdecorateParamsFromUrlR0trambuffer_sizemb_fileststereo_software_decodetdts_software_decodetplarformtwma_software_decodetmp3_software_decodeteac3_software_decodetac3_software_decodetsoftware_decode_astaac_software_decodeRtgetEmbeddedSubtileTrackIdxR1R*R·RRþRšRßRRÜRàRRRrRrRiR(R²RZRsRÅR´RÂRptgetDefaultAudioOptionsRR(RPtdefVideoModet
videoModesRàt	videoModeR1t
gstplayerPathR„t
audioTrackIdxRfR¸Rüt
httpParamsRtRttmpUritaudioUritvideoUriR0tramBufferSizeMBtheaderst	programIdtsubtitleTrackIdxR»R¼R½R‚RºRè((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR%sH	









	

6

E
	0












%:


*
'cCstdƒjƒjƒ|djjƒjƒd}tdƒjƒjƒ|djjƒjƒ|j}|dkr~d}n|dkr“d}n||djd|_||djd}||jkrÛ||_nxG|jdD]8}||j	||jd|||jd|ƒqéWtdƒjƒjƒ|djjƒjƒd}tdƒjƒjƒ|djjƒjƒd}|dkr d}n|dkrµd}nxK|j
ddD]8}||j	||jd|||jd|ƒqÇWdS(	NiRÚiiRÙR÷RöRù(R+RœR”R¤RtY_CROPPING_GUARDR|RgRvR~Ri(RPtoffset_xtoffset_yR¸telem((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRõs(36		633		RàRâcCs|jdjƒx2|jdD]#}||kr||jƒqqWd|ks_|jdro|jd}nt|jd<|sŸ|jdj|jtƒn|jƒd|jdkrÖ|j	|jdtƒn|j
r|jƒ|jdjdƒndS(	NRïR÷R!RôiÿÿÿÿRêR"iè(RvR[R@RXRYR4RƒR°RiR±R Rw(RPtexcludeElemsR!R<((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRqs

	
cCsÃ|jdjƒ|jdr)|r)dSx2|jdD]#}||kr7||jƒq7q7Wt|jd<|jƒd|jdkr¢|j|jdtƒn|jr¿|jdjƒndS(NRïR!R÷RôiÿÿÿÿRêR"(	RvR[R;RZR°RiR±RYR (RPR=R9R<((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRx%s

	cCs\|jdkr,|djtjdƒƒn,|jdkrX|djtjdƒƒndS(Nt24Rès%H:%Mt12s%I:%M(R R?R2tstrftime(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRw7scCsVx>|jddD]+}|r/||jƒq||jƒqW||jdd<dS(NRùR÷Rô(RiR@R;(RPR@R<((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyt_showHideSubSynchroControl=s
cCs¢|jdr‘tdƒjƒjƒ}|jdkr‘||jd|jd}|jd}|||j}|dkrŽ||jd<dSq‘nd|jd<dS(NRôiiR˜R=Rú(RvR+RœRR›RšRgRi(RPRGtsubYtsubHtyOffset((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR°Es



cCs|jtƒ|jƒdS(N(RARYR&(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRÿSs
cCs|jtƒdS(N(RARZ(RPR=R9((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRlWscCsdS(N((RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyt__onShowZscCs3|jr
dSt|_|j|tj|jƒdS(N(R„RYRæR9R-t_fatalErrorCallback(RPR1((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytfatalErrorHandler^s		cCs|jƒdS(N(R}(RP((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRFcscCs…y!|jj|t|ƒƒdSWnDtk
rgy|jj|ƒdSWqhtk
rctƒqhXnXtdƒ}|j|ƒdS(Ns!Fatal error: consoleWrite failed!(R·twriteR~RkRR-RG(RPRºR1((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pytconsoleWritefs

cCsd|jkrtdƒtSd|krB|jdj|ƒƒn¿d|krb|jd|ƒnŸd|kr~|jdƒnƒd|krš|jd	ƒngd
|kr¶|jdƒnKd|krÖ|jd
|ƒn+d|krö|jd|ƒnd|krCd|dkr"|jdƒn|jd|ƒ|jdƒn¾|jdƒd|krl|jdƒn•d|kr™|jd|ƒ|jdƒnhd|kr¹|jd|ƒnHd|krÙ|jd|ƒn(d|krù|jd |ƒnd!|kr|jd"|ƒnèd#|kr9|jd$|ƒnÈd%|krïtd&ƒ|jd'sƒt|jd'<|jd(j	d)tƒnzNy/d*}t
j
t
jt
jƒ}|j
|ƒWntk
rÏtƒnXWd|jƒX|jd+ƒntd,|ƒtStS(-Ns=IPTVExtMoviePlayer.extPlayerSendCommand console not availableRSst{0}
Rksn%s
Rvsl
Rxsj
Rƒsi
Rest%s
Rhso%s
Rcs%ss-1sc
ss%s
ssc
R^sp
R`sa%s
sac
Rmskc%s
Rpsgf%s
Rrsf%s
tPLAYBACK_FASTBACKWARDsb%s
Rtsm%s
RWs5IPTVExtMoviePlayer.extPlayerSendCommand PLAYBACK_STOPR&Rïiˆs!/tmp/iptvplayer_extplayer_term_fdsq
s;IPTVExtMoviePlayer.extPlayerSendCommand unknown command[%s](RXR·RRZRIRŸRR|RYR4tsockettAF_UNIXtSOCK_STREAMtconnectRkRò(RPtcommandtarg1tsocket_pathtsock((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRTssn





cCs‰tjjjj}t}|dkr-t}nN|dkr{y+tdƒjƒj	ƒdkrct}nWq{t
k
rwq{Xn|r…tSdS(Ntyestautoii„(
R6RRtextplayer_summaryRJRZRYR+RœR”RktIPTVExtMoviePlayerSummaryRX(RPtsummarytcreate((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyt
createSummaryµs	

N(vR‡RˆR9RrR+RXRRRR˜RœRZR RÂRÅR´RŸRÊR×RÝRÒRÑRžRåRRùRRRRþRRRjR5R6R±RhRYR¯ReRSRæR_RdR{RWR{RqRR„R†RBRCRDRERFRGRHRIRJRKRLRMRNRORPRQRRRSRTRURVRoRWR\RXRYRZR[R]RR&RŽRˆR‰RšR}RRÜRÝR_RÖR™RêRëRðR–R—RRúRaRýRÿRRRRqRxRwRAR°RÿRlt_IPTVExtMoviePlayer__onShowRGRFRIRTRY(((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyR‰šsâ	j÷	
	R				$

			1	!	#		
)				B			
			Y	
	'		
																													
			
			˜		M				
		
	
		Ð								
BRVcBs¤eZy4edƒjƒjƒZedƒjƒjƒZWnek
rYdZdZnXedkr“edkr“deeededfZ	ndZ	d„Z
RS(ii„i@sµ
            <screen position="0,0" size="%s,%s">
                <widget source="parent.Title" render="Label" position="6,4" size="%s,%s" font="Regular;42" />
            </screen>iis
            <screen position="0,0" size="132,64">
                <widget source="global.CurrentTime" render="Label" position="0,0" size="120,42" font="Regular;18" noWrap="1">
                        <convert type="ClockToText"></convert>
                </widget>
            </screen>cCstj||d|ƒdS(Ntparent(R2RR(RPR4R[((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRR×s(R‡RˆR+RœR”tsummary_screenwidthRtsummary_screenheightRkR§RR(((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyRVÄs

!(nt+Plugins.Extensions.IPTVPlayer.iptvdm.iptvdhRt-Plugins.Extensions.IPTVPlayer.tools.iptvtypesRt.Plugins.Extensions.IPTVPlayer.components.coverRt-Plugins.Extensions.IPTVPlayer.tools.iptvtoolsRRRRRRR	R
RRR
RRRRRRRRRRRRRRt1Plugins.Extensions.IPTVPlayer.tools.iptvsubtitlesRRt5Plugins.Extensions.IPTVPlayer.tools.iptvmoviemetadataRt7Plugins.Extensions.IPTVPlayer.components.iptvplayerinitRR-t:Plugins.Extensions.IPTVPlayer.components.iptvsubdownloaderR t@Plugins.Extensions.IPTVPlayer.components.iptvsubsimpledownloaderR!t6Plugins.Extensions.IPTVPlayer.components.iptvchoiceboxR"R#t7Plugins.Extensions.IPTVPlayer.components.iptvdirbrowserR$t=Plugins.Extensions.IPTVPlayer.components.configextmovieplayerR%R&t*Plugins.Extensions.IPTVPlayer.libs.pCommonR't,Plugins.Extensions.IPTVPlayer.libs.urlparserR(tenigmaR)R*R+R,R-R.R/R0R1tScreens.ScreenR2tScreens.ChoiceBoxR3tComponents.AVSwitchR4tComponents.ActionMapR5tComponents.configR6tComponents.LabelR7tComponents.ProgressBarR8tScreens.MessageBoxR9tTools.LoadPixmapR:tTools.BoundFunctionR;tTools.DirectoriesR<R§R=R>tdatetimeR?tmathR@RARÓRkt
simplejsontosRBtos_chmodRCRR
R2RKRDR‰RV(((sV/usr/lib/enigma2/python/Plugins/Extensions/IPTVPlayer/components/iptvextmovieplayer.pyt<module>sf @

Zÿÿÿÿÿÿÿÿ2