Files
gti_radiostudio/__pycache__/deck_widget.cpython-314.pyc
T

167 lines
28 KiB
Plaintext
Raw Normal View History

2026-04-29 16:21:44 +10:00
+
2026-04-30 00:30:23 +10:00
&ňio<ăóĽ^RIHtHtHtHtHtHtHt^RIH t H
2026-04-29 16:21:44 +10:00
t
2026-04-30 00:30:23 +10:00
H t H t ^RI
HtHtHtHt^RIt^RIt!RR]4t!RR]4tR
R R
llt!R R ]4tR#)é)ÚQWidgetÚ QVBoxLayoutÚ QHBoxLayoutÚQLabelÚ QPushButtonÚQFrameÚ QSizePolicy)ÚQtÚQTimerÚSignalÚQRect)ÚQFontÚQColorÚQPainterÚQPenNcójaa]tRt^
toRtR V3RlltV3RlRltV3RlRltV3RltRt Vt
V;t #)
ÚWaveformWidgetz5Displays downsampled waveform with playhead position.có†<\SV`V4VP^<4VPR4RVnRVnR#)é<
QFrame {
background-color: #050505;
border: 1px solid #1a1a1a;
border-radius: 3px;
}
)ÚsuperÚ__init__ÚsetFixedHeightÚ
setStyleSheetÚ
waveform_dataÚ position_pct)ÚselfÚparentÚ __class__s&&€Ú,/home/garold/mybin/radiopanel/deck_widget.pyrÚWaveformWidget.__init__sCř€Ü
ŃÔ Ř ×ŃŘ ×Ńđ ô
đ"ÔŘ Öócó4<V^8„dQhRS[P/#)éÚaudio)ÚnpÚndarray)ÚformatÚ
__classdict__s"€r Ú __annotate__ÚWaveformWidget.__annotate__sř€÷ńˇ"§*ˇ*ńr"c
 ólVeVP^,^8XdRVnVP4R#\P!V^R7pVP 4pV^
8dRp\
^\V4V,4p\V4V,p\P!\V4Uu.uFKp\P!\P!W&V,V^,V,^,44NKM up\PR7VnVP4R#uupi)zH
Downsample audio to fit widget width.
audio shape: (2, samples) stereo
N)Úaxisiô)Údtype) ÚshaperÚupdater&ÚmeanÚwidthÚmaxÚlenÚarrayÚrangeÚsqrtÚfloat32)rr%Úmonor2Úsamples_per_pixelÚ
num_pixelsÚis&& r Ú set_waveformÚWaveformWidget.set_waveformđ
Š=EźK™K¨ťN¨aÔ/Ř!% Ř ŹK‰KŚMŮ ôŹwŠwu 1Ô%đ
Ř 2Ś:Ř ¤3 tŁ9°Ő#5ÓÜ IĐ):Ő:
äźXšXä'
á&ô
2026-04-29 16:21:44 +10:00
ŹGŠG”B—GGDĐ#4Ő!4°a¸µcĐ;LŐ5LĐMČqŐ '
ôôÔđ
Ź Ž
ůň '
sÂ2AD1có <V^8„dQhRS[/#)r$r©Úfloat)r(r)s"€r r*r+:sř€÷ń©ńr"c ó\\R\RV44VnVP4R#)z&Update playhead position (0.0 to 1.0).rçđ?N)r3Úminrr0)rrs&&r Ú set_positionÚWaveformWidget.set_position:s!ä ¤S¨¨lÓ%;Ó<ÔŘ Ź Ž
r"cóü<\SV`V4VPe\VP4^8XdR#\ V4pVP \P 4VP4pVP4pVP4p\P!VP4^8”d!\P!VP4MRpVPV, VR,,p\\R4^4pVPV4V\VP4, p \VP4FOwr«\!W©,4p \!Wz,4p
W],
^,pVP#WÎWÎV
,4KQ \!VP$V,4p\\R4^4pVPV4VP#V^Wő4R#)NrCgš™™™™™é?ú#00ff41z#ffffff)rÚ
paintEventrr4rÚ
setRenderHintÚ AntialiasingÚrectr2Úheightr&r3rrÚsetPenÚ enumerateÚintÚdrawLiner)rÚeventÚpainterrLr2rMÚmax_valÚscaledÚpenÚx_scaler<ÚrmsÚbar_hÚy_topÚ
playhead_xrs&& €r rIÚWaveformWidget.paintEvent?sř€Ü
2026-04-30 00:30:23 +10:00
Ń × Ń Ň ¨T×-?Ń-?Ó)@ŔAÔ)EŮ ä4“.Ř×Ńśh×ŘŘô13·˛°t×7IŃ7IÓ0JČQÔ0N”"—&&×,ĐTWŘ×Ő/°F¸SµLŐAô”6$ aÓ(ŘŹŕś#1Ü × 2Ń 2Ö3‰FťÓ%ť“^•n¨Ő* × Ń Q q°%­ ×*¨UŐ3
Ü”6$ aÓ(ŘŹŘ×Ń Q¨
2026-04-29 16:21:44 +10:00
Ö;r")rr©N) Ú__name__Ú
__module__Ú __qualname__Ú__firstlineno__Ú__doc__rr=rErIÚ__static_attributes__Ú__classdictcell__Ú
2026-04-30 00:30:23 +10:00
__classcell__©rr)s@@r rr
s+ů‡Ů đ÷8đ÷
2026-04-29 16:21:44 +10:00
 <r"rcóaa]tRt^btoR
V3RlltV3RlRltV3RlRltV3RlRltV3RlR ltV3R
lR lt R t
Vt V;t #)Ú
LCDDisplaycóş<\SV`V4VP\P\P
2026-04-30 00:30:23 +10:00
,4VP
2026-04-29 16:21:44 +10:00
R4\V4pVP^
^^
2026-04-30 00:30:23 +10:00
^4VP^4\R4Vn VPP\R^
\P44VPP
2026-04-29 16:21:44 +10:00
R4VPP\ P"\ P$,4VPP'\(P*\(P,4\/4pVP^4\R4VnVP0P\R^ \P44VP0P
R4VP0P\ P"\ P$,4\R4VnVP2P\R^\P44VP2P
R4VP2P\ P4\ P$,4VP7VP04VP94VP7VP24\/4p\R4VnVP:P\R^ \P44VP:P
2026-04-30 00:30:23 +10:00
R4\R 4VnVP<P\R^
44VP<P
2026-04-29 16:21:44 +10:00
R4VP<P\ P44VP7VP:4VP94VP7VP<4VP7VP4VP?V4VP?V4R
#)
QFrame {
background-color: #0a1a0a;
border: 2px solid #1a2a1a;
border-radius: 4px;
}
úNO TRACK LOADEDz Courier Newz(color: #00ff41; background: transparent;ú00:00ú-00:00z(color: #00cc33; background: transparent;ÚSTOPPEDz(color: #008822; background: transparent;ú QUEUE: EMPTYN) rrÚ
setFrameStylerÚBoxÚSunkenrrÚsetContentsMarginsÚ
setSpacingrÚ track_labelÚsetFontrÚBoldÚ setAlignmentr
Ú AlignLeftÚ AlignVCenterÚ
setSizePolicyr Ú ExpandingÚFixedrÚ
elapsed_labelÚremaining_labelÚ
2026-04-30 00:30:23 +10:00
AlignRightÚ addWidgetÚ
2026-04-29 16:21:44 +10:00
addStretchÚ status_labelÚ queue_labelÚ addLayout)rrÚlayoutÚtime_rowÚ
2026-04-30 00:30:23 +10:00
status_rowrs&& €r rÚLCDDisplay.__init__csř€Ü
ŃÔ Ř ×Ńś6ź:™:¬Ż
©
Ő ×Ńđ ô
2026-04-29 16:21:44 +10:00
ô"Ř×! " ¨QÔ×Ńä!Đ"3Ó4ÔŘ ×Ń× Ń ¤ }°bĽ%ż*ą*Ó!EÔ ×Ń× 
đ
×Ń×%¤b§lˇl´R·_±_Ő&DÔ ×Ń×&¤{×'<Ń'<Ľk×>OŃ>OÔ“=Ř×Ńä# G›_ÔŘ ×Ń×"¤5¨¸ĽEżJąJÓ#GÔ ×Ń× 
đ
×Ńׯ © ´±Ő(FÔ% hÓ/ÔŘ ×Ń×$¤U¨=¸"ĽeżjąjÓ%IÔ ×Ń× 
đ
2026-04-30 00:30:23 +10:00
×Ń×)¬"Ż-©-Ľ"ż/ą/Ő*IÔ×Ń×ŃÔŘ×Ń “]
2026-04-29 16:21:44 +10:00
ä" 9Ó-ÔŘ ×Ń×!¤%¨
°rĽ5ż:ą:Ó"FÔ ×Ń× 
ô" .Ó1ÔŘ ×Ń× Ń ¤ }°bÓ!9Ô ×Ń× 
2026-04-30 00:30:23 +10:00
đ
×Ń×%¤b§mˇmÔ×Ń×ŃÔŘ×Ń×Ń××ŃÔ×ŃÖ$r"có <V^8„dQhRS[/#©r$Úname©Ústr)r(r)s"€r r*ÚLCDDisplay.__annotate__¦sř€÷ń'r"có|\V4^(8”dVR,R,pVPPV4R#)é(:Né%...N)r4ruÚsetText©rs&&r Ú update_trackÚLCDDisplay.update_track¦s/Ü t9rŚ>Ř•9$ ×Ń× Ń  Ö&r"có&<V^8„dQhRS[RS[/#)r$ÚelapsedÚ remainingrŤ)r(r)s"€r r*«sř€÷0ˇ3đ0±3ń0r"córVPPV4VPPV4R#r^)r~r”r)rr™s&&&r Ú update_timeÚLCDDisplay.update_time«s*Ř ×Ń×"  ×Ń×$ /r"có <V^8„dQhRS[/#)r$ÚstatusrŤ)r(r)s"€r r*Żsř€÷*ˇCń*r"có<VPPV4R#r^)rr”)rs&&r Ú
2026-04-29 16:21:44 +10:00
update_statusÚLCDDisplay.update_statusŻsŘ ×Ń×! )r"có <V^8„dQhRS[/#r)r(r)s"€r r*˛sř€÷ń5r"cóĐV'dC\V4^8”dVR,R,MTpVPPRV 24R#VPPR4R#)é:NrĄNr“zQUEUE: roN)r4r„r”)rÚshorts&& r Ú update_queueÚLCDDisplay.update_queue˛sNß Ü),¨T«°R¬D•I Ö%¸T × Ń × $ w¨u¨gĐ%6Ö × Ń × $  4r"có <V^8„dQhRS[/#)r$Úplaying)Úbool)r(r)s"€r r*ąsř€÷
ń
2026-04-30 00:30:23 +10:00
ˇ4ń
2026-04-29 16:21:44 +10:00
r"có\V'dRMRpVPPRV R24R#)rHz#00aa2azcolor: z; background: transparent;N)r~r)rÚcolours&& r Ú set_playingÚLCDDisplay.set_playingąs,ß%¨9Ř ×Ń×f 
r")r~r„rrrur^)
2026-04-30 00:30:23 +10:00
r_r`rarbrrrdrerfrgs@@r riribsCů‡÷A%÷F
2026-04-29 16:21:44 +10:00

÷
đ
r"ric ó`V^8„dQhR\R\R\R\R\R\/#)r$ÚtextÚcolorÚ
2026-04-30 00:30:23 +10:00
text_colorr2rMÚreturn)rPr)r(s"r r*r*ŔsA÷ń¤đÜ!$đä&)đô"%đô#&đ ô0;ń r"cóÂ\V4pVPW44VP\R^ \P44VP RV RV R24V#)ÚArialz5
QPushButton {
2026-04-29 16:21:44 +10:00
background-color: z;
2026-04-30 00:30:23 +10:00
color: a;
border: 1px solid #555;
border-radius: 4px;
}
QPushButton:hover {
background-color: #555;
}
QPushButton:pressed {
background-color: #222;
border: 1px solid #888;
}
)rÚ setFixedSizervrrwr)r˛r2rMÚbtns&&&&& r Úmake_transport_buttonrąŔshô

€CŘ×чKK”gr¤5§:ˇ:Ó×Ńđŕ$&Ř đô đ €Jr"cóîaa]tRt^Úto]!]4tRV3RlV3RllltV3RlRltV3RlRlt Rt
V3RlR lt V3R
lR lt R t
R
2026-04-29 16:21:44 +10:00
tV3RlRltRtRtRtRtV3RlRltRtRtVtV;t#)Ú
DeckWidgetcó,<V^8„dQhRS[RS[RS[/#)r$Údeck_keyÚlabelÚ accent_colorrŤ)r(r)s"€r r*ÚDeckWidget.__annotate__Ýs"ř€÷ńˇđ©SđÁńr"có‚<\SV`V4WnW@nW0nRVnVP
V4VP4\V4Vn VPP^d4VPPPVP4VPP4R#r^)rrÚenginerżÚ
current_themeÚ _build_uiÚ_connect_signalsr ÚtimerÚ setIntervalÚtimeoutÚconnectÚ_refresh_displayÚstart)rrrs&&&&&&€r rÚDeckWidget.__init__Ýsř€ä
ŃÔ Ř
Ř ŘŘ!Ôŕ ŹŘ ×ŃÔäD“\Ś
Ř Ź
2026-04-30 00:30:23 +10:00
2026-04-29 16:21:44 +10:00
×Ń Ź
×Ń×" 4×#8Ń#8Ô Ź
×ŃÖr"có <V^8„dQhRS[/#)r$)r(r)s"€r r*ísř€÷11"™sń1"r"cóVPRVP R24\V4pVP^
^
^
^
4VP ^4\ V4pVP
\R^
\P44VPRVP R24VP\P4VPV4\4VnVPVP4\4VnVPVP 4\#4pVP ^4\%RRR^4^04Vn\%RRR ^4^04Vn\%R
R R ^D^04Vn\%R
RR ^4^04Vn\%RRR^4^04Vn\%RRR^4^04VnVPVP&4VPVP(4VPVP*4VPVP,4VPVP.4VP34VPVP04VP5V4R#)zd
QWidget {
background-color: #1c1c1c;
2026-04-30 00:30:23 +10:00
border: 2px solid ú<;
border-radius: 6px;
2026-04-29 16:21:44 +10:00
}
2026-04-30 00:30:23 +10:00
z
color: zc;
background: transparent;
border: none;
padding: 2px;
u⏮ú#3a3a3aÚwhitez-15z#aaaaaaőâ–¶z#1a6b3arHz+15u⏭uâ– z#8a1a1az#ff4444N)rrrsrtrrvrrwrxr
Ú AlignCenterrriÚlcdrÚwaveformrÚ btn_to_startÚ btn_back_15Úbtn_playÚ
btn_fwd_15Ú
btn_to_endÚbtn_stoprr…)rÚrootÚheaderÚ transports&& r ÚDeckWidget._build_uiísŘ ×Ńđ$(×#4Ń#4Đ"5đ6 đ ô
ô Ř ×Ń  B¨¨BÔ ŹÔäŘŹ”uW b¬%Ż*©*Ó×Ńđ"Ř×' đ ô
đ ×ŃśBźN™NÔ Źä“<ŚŘ Źt—x ô(Ś
2026-04-29 16:21:44 +10:00
Ř Źt—}‘}Ô“M Ř×Ńä1°%¸ŔGĐPRĐTVÓWÔÜ1°%¸ŔIČrĐSUÓVÔÜ1°%¸)ŔYĐPRĐTVÓWŚ
2026-04-30 00:30:23 +10:00
Ü1°%¸ŔIČrĐSUÓVŚÜ1°%¸ŔGĐPRĐTVÓWŚÜ1°%¸)ŔYĐPRĐTVÓWŚ