Updated audio player with settings

This commit is contained in:
Marco Dalla Tiezza
2024-06-24 18:48:53 +02:00
parent 76bcbac60a
commit ddb952b894
7 changed files with 367 additions and 241 deletions

View File

@@ -5,6 +5,13 @@
## [Unreleased] ## [Unreleased]
### Added
- Created a setting panel for the audio player
- Selection of the audio output device. Close #4
### Fixed
- Fixed margins for downloader window
## [4.0.5] - 2024-06-15 ## [4.0.5] - 2024-06-15
### Added ### Added

View File

@@ -12,7 +12,6 @@
<file>images/icons/player_play.svg</file> <file>images/icons/player_play.svg</file>
<file>images/icons/player_stop.svg</file> <file>images/icons/player_stop.svg</file>
<file>images/icons/player_loop.svg</file> <file>images/icons/player_loop.svg</file>
<file>images/icons/player_mute.svg</file>
<file>images/icons/save.svg</file> <file>images/icons/save.svg</file>
<file>images/icons/delete.svg</file> <file>images/icons/delete.svg</file>
<file>images/icons/add.svg</file> <file>images/icons/add.svg</file>
@@ -22,6 +21,7 @@
<file>images/icons/browser.svg</file> <file>images/icons/browser.svg</file>
<file>images/icons/documents.svg</file> <file>images/icons/documents.svg</file>
<file>images/icons/abort.svg</file> <file>images/icons/abort.svg</file>
<file>images/icons/settings.svg</file>
<file>images/spectrum_not_available.svg</file> <file>images/spectrum_not_available.svg</file>
<file>images/artemis_not_available.svg</file> <file>images/artemis_not_available.svg</file>

View File

@@ -4595,6 +4595,52 @@ q0-33 23.5-56.5T\
0q-33 0-56.5-23.\ 0q-33 0-56.5-23.\
5T240-320Z\x22/></s\ 5T240-320Z\x22/></s\
vg>\ vg>\
\x00\x00\x02\xb2\
<\
svg xmlns=\x22http:\
//www.w3.org/200\
0/svg\x22 height=\x222\
4px\x22 viewBox=\x220 \
-960 960 960\x22 wi\
dth=\x2224px\x22 fill=\
\x22#5f6368\x22><path \
d=\x22M433-80q-27 0\
-46.5-18T363-142\
l-9-66q-13-5-24.\
5-12T307-235l-62\
26q-25 11-50 2t\
-39-32l-47-82q-1\
4-23-8-49t27-43l\
53-40q-1-7-1-13.\
5v-27q0-6.5 1-13\
.5l-53-40q-21-17\
-27-43t8-49l47-8\
2q14-23 39-32t50\
2l62 26q11-8 23\
-15t24-12l9-66q4\
-26 23.5-44t46.5\
-18h94q27 0 46.5\
18t23.5 44l9 66\
q13 5 24.5 12t22\
.5 15l62-26q25-1\
1 50-2t39 32l47 \
82q14 23 8 49t-2\
7 43l-53 40q1 7 \
1 13.5v27q0 6.5-\
2 13.5l53 40q21 \
17 27 43t-8 49l-\
48 82q-14 23-39 \
32t-50-2l-60-26q\
-11 8-23 15t-24 \
12l-9 66q-4 26-2\
3.5 44T527-80h-9\
4Zm49-260q58 0 9\
9-41t41-99q0-58-\
41-99t-99-41q-59\
0-99.5 41T342-4\
80q0 58 40.5 99t\
99.5 41Z\x22/></svg\
>\
\x00\x00\x02,\ \x00\x00\x02,\
<\ <\
svg xmlns=\x22http:\ svg xmlns=\x22http:\
@@ -4789,57 +4835,6 @@ q0-17-11.5-28.5T\
17 11.5 28.5T460\ 17 11.5 28.5T460\
-340h80Z\x22/></svg\ -340h80Z\x22/></svg\
>\ >\
\x00\x00\x03\x0f\
<\
svg xmlns=\x22http:\
//www.w3.org/200\
0/svg\x22 height=\x222\
4px\x22 viewBox=\x220 \
-960 960 960\x22 wi\
dth=\x2224px\x22 fill=\
\x22#5f6368\x22><path \
d=\x22M671-177q-11 \
7-22 13t-23 11q-\
15 7-30.5 0T574-\
176q-6-15 1.5-29\
.5T598-227q7-3 1\
3-6.5t12-7.5L480\
-368v111q0 27-24\
.5 37.5T412-228L\
280-360H160q-17 \
0-28.5-11.5T120-\
400v-160q0-17 11\
.5-28.5T160-600h\
88L84-764q-11-11\
-11-28t11-28q11-\
11 28-11t28 11l6\
80 680q11 11 11 \
28t-11 28q-11 11\
-28 11t-28-11l-9\
3-93Zm89-304q0-8\
3-44-151.5T598-7\
35q-15-7-22-21.5\
t-2-29.5q6-16 21\
.5-23t31.5 0q97 \
43 155 131t58 19\
7q0 33-6 65.5T81\
7-353q-8 22-24.5\
27.5t-30.5.5q-1\
4-5-22.5-18t-.5-\
30q11-26 16-52.5\
t5-55.5ZM591-623\
q33 21 51 63t18 \
80v10q0 5-1 10-2\
13-14 17t-22-6l\
-51-51q-6-6-9-13\
.5t-3-15.5v-77q0\
-12 10.5-17.5t20\
.5.5Zm-201-59q-6\
-6-6-14t6-14l22-\
22q19-19 43.5-8.\
5T480-703v63q0 1\
4-12 19t-22-5l-5\
6-56Z\x22/></svg>\
\x00\x00\x02\xa7\ \x00\x00\x02\xa7\
<\ <\
svg xmlns=\x22http:\ svg xmlns=\x22http:\
@@ -6645,7 +6640,7 @@ G@\x11\x10HG\x93Hp\xec\x0au\xe3\xcd\x1e\xf4\
>k\xd0\xd3b\x1eG\xb5_d\xde\xb6{\x8f\x95\xc5\ >k\xd0\xd3b\x1eG\xb5_d\xde\xb6{\x8f\x95\xc5\
U\xaf\xbc\xfd\xe9\xb5\x9f\xe5\xe3}r\xba?\xbbI\x06\ U\xaf\xbc\xfd\xe9\xb5\x9f\xe5\xe3}r\xba?\xbbI\x06\
\xfe\xfc\x0f\xf4\xcd*2\ \xfe\xfc\x0f\xf4\xcd*2\
\x00\x00\x07^\ \x00\x00\x07\xf0\
i\ i\
mport QtQuick\x0d\x0ai\ mport QtQuick\x0d\x0ai\
mport QtQuick.Wi\ mport QtQuick.Wi\
@@ -6706,65 +6701,74 @@ ColumnLayout {\x0d\x0a\
columnLayout\x0d\x0a \ columnLayout\x0d\x0a \
anchor\ anchor\
s.fill: parent\x0d\x0a\ s.fill: parent\x0d\x0a\
\x0d\x0a La\ anch\
bel {\x0d\x0a \ ors.rightMargin:\
text: qsT\ 10\x0d\x0a \
r(\x22Downloading i\ anchors.leftMar\
n progress...\x22)\x0d\ gin: 10\x0d\x0a \
\x0a \ anchors.bot\
Layout.alignmen\ tomMargin: 10\x0d\x0a \
t: Qt.AlignHCent\ ancho\
er | Qt.AlignVCe\ rs.topMargin: 10\
nter\x0d\x0a \ \x0d\x0a\x0d\x0a \
}\x0d\x0a\x0d\x0a \ Label {\x0d\x0a \
ProgressBar {\ text: q\
sTr(\x22Downloading\
in progress...\x22\
)\x0d\x0a \
Layout.alignm\
ent: Qt.AlignHCe\
nter | Qt.AlignV\
Center\x0d\x0a \
}\x0d\x0a\x0d\x0a \
ProgressBar\
{\x0d\x0a \
id: progress\
Bar\x0d\x0a \
Layout.righ\
tMargin: 20\x0d\x0a \
Lay\
out.leftMargin: \
20\x0d\x0a \
Layout.fillW\
idth: true\x0d\x0a \
inde\
terminate: false\
\x0d\x0a \ \x0d\x0a \
id: progressBa\ value: 0\x0d\x0a \
r\x0d\x0a \ to: \
Layout.rightM\ 0\x0d\x0a }\
argin: 20\x0d\x0a \ \x0d\x0a\x0d\x0a \
Layou\ Label {\x0d\x0a \
t.leftMargin: 20\ id: pro\
\x0d\x0a \ gressLabel\x0d\x0a \
Layout.fillWid\ Layo\
th: true\x0d\x0a \ ut.alignment: Qt\
indete\ .AlignHCenter | \
rminate: false\x0d\x0a\ Qt.AlignVCenter\x0d\
\
value: 0\x0d\x0a \
to: 0\x0d\
\x0a }\x0d\x0a\ \x0a }\x0d\x0a\
\x0d\x0a La\ \x0d\x0a Bu\
bel {\x0d\x0a \ tton {\x0d\x0a \
id: progr\ Layout.a\
essLabel\x0d\x0a \ lignment: Qt.Ali\
Layout\ gnHCenter | Qt.A\
.alignment: Qt.A\ lignBottom\x0d\x0a \
lignHCenter | Qt\ text\
.AlignVCenter\x0d\x0a \ : qsTr(\x22Abort\x22)\x0d\
}\x0d\x0a\x0d\x0a\ \x0a \
Butt\ icon.source: \x22q\
on {\x0d\x0a \ rc:/images/icons\
Layout.ali\ /abort.svg\x22\x0d\x0a \
gnment: Qt.Align\ dis\
HCenter | Qt.Ali\ play: AbstractBu\
gnBottom\x0d\x0a \ tton.TextBesideI\
text: \ con\x0d\x0a \
qsTr(\x22Abort\x22)\x0d\x0a \ flat: true\x0d\
i\ \x0a \
con.source: \x22qrc\ onClicked: { on\
:/images/icons/a\ Abort() }\x0d\x0a \
bort.svg\x22\x0d\x0a \ }\x0d\x0a \
displ\ }\x0d\x0a }\x0d\x0a}\x0d\x0a\
ay: AbstractButt\
on.TextBesideIco\
n\x0d\x0a \
flat: true\x0d\x0a \
o\
nClicked: { onAb\
ort() }\x0d\x0a \
}\x0d\x0a \
}\x0d\x0a }\x0d\x0a}\x0d\x0a\
\x00\x00\x05\xac\ \x00\x00\x05\xac\
i\ i\
mport QtQuick\x0d\x0ai\ mport QtQuick\x0d\x0ai\
@@ -6954,64 +6958,94 @@ x\x1e.\x13\x91\x01\xec\xe48\xd2v\xff\xae\x97t\xa0\
\x1e\xe8\xe4\xf3\xeb\x07\xa8i\x9fC\x1b\x96\xd0\xe6\x96\xd8\ \x1e\xe8\xe4\xf3\xeb\x07\xa8i\x9fC\x1b\x96\xd0\xe6\x96\xd8\
\xfe\x0bm\x972F\x97\x87Vhv\x8a\x7f_\xa4\xe9\ \xfe\x0bm\x972F\x97\x87Vhv\x8a\x7f_\xa4\xe9\
\x8f\xea\x87>\xb7\x1e\x9b\xfc\xff\x02j\xe6B\xc4\ \x8f\xea\x87>\xb7\x1e\x9b\xfc\xff\x02j\xe6B\xc4\
\x00\x00\x03~\ \x00\x00\x05Q\
\x00\ \x00\
\x00\x160x\xda\xcdX[O\xdb0\x14~G\xe2?\ \x00 &x\xda\xd5Y\xdfo\xdb6\x10~\x0f\x90\xff\
X\xbc\xd0\xee!\xed\x98&M\x91\xba\x89\xf5\x05$*\ \x81\xc8K\x9d\x01\x93\xdd`\x01\x0a\x01\xd9\xe0\xba\x0f\x0d\
`\x95\xc6#r\x13'\xb5p\xec\xcc\xb1\x8b\xd0\xc6\x7f\ \xd0\xa0i\x5c4\x0f\xc3P\xd0\x12m\x13\xa1E\x95\xa4\
\x9fO\xd2\xa4\xb99\xedZ\xc8j\x90\x22\x1f\x1f\xe7\x5c\ \x12{\x9b\xff\xf7\x1dE\xc9\xa2~P\x92\xdd4s\x95\
\xbe\xcf\xc7'\xa5Q,\xa4B\xf7\xea^S\xef\xe9\xf4\ \x00\xb6\xc8\x8f\xe4\xdd}\xc7\xe3\xf1LW1\x17\x0a}\
\x84V\xe6\xce\x03\xe5\xbexn\x88o\xf0\x8b\xd0*i\ R\x9f\x12\x1a<\x9c\x9e\xd0\xd2\xbbwO\xa3\x90?\xd5\
\xc8\xa7\x82+)\x98}\xc1\x99aE$\xc5\xac\xa41\ \x9a?\xe0\x0dO\x94\xac\xb5Ox\xa4\x04g\xee\x0e\xef\
\xd3L\xd1\x88\xf8\x14\x9f\x9e\xc0\xdf\xb5\x22\x11\xfa}z\ \x06+\x22(f\x16\xe2&a\x8a\xaeHH\xf1\xe9\x89\
\x82\xccx\xa6\xbeZ\xba\xe8\xe3\x97q6_\x12\x1a.\ \xfe\xbbVd\x85\xfe9=A\xf0<\xd1P-}t\
\x95\x11|\xba\x00U\x10\xc5R\xc4D\xaa\x17\xb4\x10\x82\ 1\x1a\x99\xf7%\xa1\x8b\xa5\xf2\xd1\x9b\x91F\xea\x96X\
!&D\xec\xa2\x00\xb3\x84\xe4\x0a\x81\xe6\x9e\xa2\x82\x9b\ \xf0\x98\x08\xb5A3\xce\x19b\x9c\xc7>\x9ac&I\
5\xec\xcf\x85\xe6\xfe\x00k\x9f\x8a\xc7\x18\xab\xe50\xb7\ \x0e\x98'Q\xa0(\x8f\xa0\x0f\x87S\x9eD\xe1\x00'\
\x94\xbe\x8a\xe1\x17\x22\x9dD\x89x0l\x8a\x85\x96\x1e\ !\xe5_c\xac\x96\xe7\xf9B\xe9T\x0co\x88\xf0\xa4\
A\x13\xb4\xd9\xbd\xd1Yh\xa5\x04\xbf3\x9a\x0e\xf5\x04\ \xe2\xf1\xe0\xbc\xde\xcc\x13\x11\x10t\x85\x8a\xd1\x05f\x96\
w<\xc1\x844\xbay\xbc\x0e\xf6<\xc2U\xeb\x06\xc2\ (\xc5\xa3[@z4\xe0\x91\x17p\xc6\x05`su\
\xf1\x82\x11\xdfh+\xa9I]\xe5\xc6D\xd4\xaa\xf2\xda\ =\x1c\x04$R\x8d\x03H\x84g\x8c\x84\x80V\x22!\
\x08\x10\x1c\xcd\x02\xac\x84\xb5\xd5\xb7@H\x12J\xd8\xd8\ U\xc8\x07\xd0\xa8\x11\xb2\xad)\xa8\x055\x0a\x96\xd4\xea\
\xd8\x84uB\xfe)\xa2\xb9I\xde!)XC\xd7\xe6\ \x94m\xce\x05Y\x08=\xb06\x08'\x92\xec\xa5\xd1\x14\
Fw\x9eR\xc3{\xa62EY$\x14\xb28g\xd4\ \x8c\xf7=&\xc8\xa8k\x12\xa3\xddN\xe9\xc2\x07\x9a2\
7ho\xd4r\xf8\x09y\x02Q\x83\x17\xf0\xc8\xe9\xd2\ e\x99K\xaa\xad8e4\x04\xb6\x0bXN?!\x0f\
\x82\x09\xb8\xbe\x0f(\x96lu\x00\xd2\x01\xe3v\x9a\xd5\ \xba\xa9\xe6\x17\xfa#w\x97\x06N\xb4\xe8\x87\x90\xe2\xb0\
S\x5c\xc3!\x8f\x15\xb4\xec\xc1\xc2\xc9\xf9\xdf\xb1v\x10\ V\x0b!-4v\xbbY\xd5\xc4\x15\x1er]5\xca\
\xd0\xbe)eF\xffYmen\xabN\x8d\xba5\x1d\ \xad\xac\xde9\xff\xb7\xae-\x0e\xe8\x1e\x94z\xc6\xcb[\
\xa8zV\xcc\xca\xe5\xac\x09\x99$\x09Qw\xa9\xe6`\ \xb5\xd1s\x1b1\x15\xd7\xad`t\xd4srf\x87\xb3\
\x9fbx~\xbe\xcd\x8dw*?G\xc8\x80\x9dj\xd7\ :e\x82H\xa2nS\xe4\xe0\x90`\xf8\xeaU\x97\x18\
;Q\xc0Z\xbeJz\x05\xfaS\xc1t\xc4\xb3[\xbc\ ?(\xfc\x1c\xa1\x07\xf4\x8a]?\xc8\x05\x9c\xe1\xcb\xc2\
\x8c9\xe6\xdeR\xc8\xc4\x09(c\xae)]\xb2r*\ \xed\xd87\xa7\xba\xcd6\x0d}s\xaeM\x89R4Z\
\x93\x18{\x94\x87.\x1aod?\xc4s\xf356e\ \xe4\xe7~\x81\xc8N\xe2\xdf.GE[~\x1a\xbf\xbe\
\x18\x99\xb6\x83\x19\x0dyd^\xef\x9a\x0e\xc0\xb9\x84\xd9\ \x1c\xd9\xd0\x15^\xd3U\xb2z\x9f\xf5\x1aT\xad\xfb\xde\
\xd5\xd4L\x89D\x7f\x0a\xc9\xcfL\x92{\xbd\xb1i\xa0\ L\x98\xce[\x1aM\xa3\xd6\xd1\xa6\xdb9\x9a\x87\x98Q\
\xf8\x9e\xe6\xa4n\x15\x06\xf5\xdd\x12<-\xeb\x05\xc8n\ \xb5\xf1!\xb1\xf0\xc6q\xcch\x80\xb5]nt{\x01\
7\xc6\x95\x0d\x19\xe1]t\xf6Kz\xee\x88F8$\ \x9b3\xbc\x90)\xe6\x1dP\xcc\x17\xf6\x14\x8a*F|\
\xc9\x08V\x92Qv$\x1e\xe1\xe1$\xab\xf0\xac\xf9\x06\ \xf4M~\x16\x83\xb3\xb1\x80l\x84J\xf4+\x1ak\xf3\
\x9f&\xb0\xea\xa2\xcbE\xa2$\xf6T\xe6\xbdsm\xf6\ \xb3UPf&yvn\x8f\x9cp\xc8i\x22\x08\
\xdfr\xd6\xe2\xe4\x1a?\xb7\x0es>\x02\x86M\xea\xaa\ e\x1e\x8f\xf4wF\x14\x01\xc3Zv\xd6\xcf\x1aX\x99\
%'\x1f\x82O\x99i\xba`w\xa9#\xa8\xea\xbd\xd6\ \x06\x82\x90\xc8K\xc5GCt\x01\xf3\xef\xbe\x97\xd1\x9b\
\x93Z\xee\xbaZ\xf0\x02F<d\xcdX\xd3\xe8\xeb\xfe\ \x02mL\x91\xc1\x8b\x97\x02\xbf\xb5\x85\xb9\xc5\x0bR]\
\x08\xc1\xe1\xe8\x11\xa2\xf4,\x1e\x1bF\xa5\x0e\xe1(A\ \x1aG\xc1\x92\x0b\xe9\xcd)c>\x9cM\x22\x0d\xbbe\
\x82\xe2\xd4\x1fFp\xe1\x1c\x1bD\xa5\xbe\xe6(\x11\x82\ \xcc\x84\xb3d\x15\x99\x0c\xaf:\xde=\x87\x0b%\xb4\x94\
\xab\xa1?\x84\xe0\x9a?6\x84Z\xd2\x93F\x14\xa0\x01\ 7X,h\x04~2r\x03\x19\x99\xf7\xc2\xcd8l\
\xb8;\xb4)\xd8\xdb\x16{6\xb7\xf5\x06\x15L\x111\ \x86U\x1f$\xec)\x1bV\x07\xde\xf1'\xb7\x9a\xfa1\
o\xdd\xc1z{\x84\xdd\xc6\xebms\x8dL[D\xa5\ \xbd\xa9\xa6\x99\xbf\x99 \xefB\xcf\x08sM\x95:\x16\
i\x85y\xd6+=k-lL\xac6 \xd6\x13\x10\ Y\x83C\x9f\x19G\xfa\x98\xa88Qgn\xf4\x1cR\
K\x12\x10)\x89\x7f\xb5\xfe\x94\xbf\x18w\x90\xc2\xfa\xed\ f/\xa6k\xc2\xa6\xf4o\xf0\xc7\xd7\x17nl\xc0h\
\x95\x8f\x15f\x9a\x14z\xbe\x968\xedj\xbf\xa21\xfa\ \xecWN\xa0\xbe\xca4a\xb7.\x1d\xc1\xabg\xfc-\
V|\xb4\xac=C\xa3\x86^\xa3=\xd9\xf5\xacf\xf4\ _\xb7\xa9\xb9\x8b%F\xc5|H\xa7d\xb1 s\x22\
\x9b\x89U\x07\xf9\xea\xe6'\x0d\xf3\x1f\xeam[>\xed\ \x04\x09\xef+I\x7f\xd3\x03\xfb\x9c\x80\xfb\xa5\xd7\x86w\
\x1b\xbc\x154\x84\xe4-\xa0[\x032v>\xf7]\x04\ \xe4\x91\x06Dz\xd6\xa2\xb2\x9d\x85;\xaew\xf8YH\
gZ\xf5\xd8JD\xc6\xda\xdb\x17\xc1v\xa2\x1dV\x03\ d h\xac\xe3C\x0b\x11\xb0\x97\x13\xa1\xbd\xfc:\x0a\
\xcb\xd8:)<\x86\x89\xe3\xbd\x196\x83_\xea\xb2\x0f\ \xc9z\xb2\xc4\xd1\xa2aW\xd7\xbc\xb0\x10\xc6\x0bS\x01\
\xc6\xbaEZ\x9c\xd8\xaa<\xfd\xc1\xecV\xabX\x9b0\ a#;\xc5\xfd3\xb0\x96\xf8\xcb=\xf3\xd6\xc9W/\
J\x93\xaaV\xd6\xaf/\xb0\xf74W\x06\xa8\xe9\x12\xf3\ \x0a\x0f\xf6\xf8\xef\xf1\xf7/:\xa0\x90\xe3\xf5\xf4\xa6f\
\xd0\x12\x16\x94\xf5\xd2\xaf/\xc5\x1e4\x99L\xca\x0e:\ s\x8cvy\xf9c\xaa\x99\xc1\xf6w\xef\xfcd\xbb\x18\
\xd0\xba\xc4\xc4O\x17\x87\x07]\x12\xd6Nz\xf7Jo\ =\xef\x96x\xc4,\x01\xeb\x8d\xbc\xcb\x9f\xd0I\xee\x88\
\xed\x22\x0e\xaf\xd9\x97\x9b\xa4\xb6\x81b\xcdy\xc6\x0d\xb7\ \xce,\xd1@g9\xe7?\x97\xaf\xdc\xe9\xd4\xf0m\x9a\
\x85#\x15C\xeb\x87\xf9\xff\x0b\x83\x18\xec\xb5\ \xa3u9L\x91\xc9\xb5\xe0vI\xa8\xdf\x9e\x836\x0e\
4\x899\x18\xf4\x9b\x08\xfc!]A\x12 \x87\xbaG\
\x0eM\xea\xfeUg\xe9\x9e|\x5c\xb4\x189\xa4R\x83\
}4\x9eI%p\xa0\x8cv\xde5\xcc\xf31b\x1b\
\xf7\xc8,\xef\xf4\xab\xe9i\x8dF\x86U\x175\x10w\
!{{\xe8\x11k\xe9\x1c\x0d\xb4Z\xe7]@\xf7-\
\xa5\x9b\x8d\xae+A\xa3\xc7 \x02\xab\xec!U\xbbE\
\xda\x85\xaa\xde\xa2\xf7p\xe1g8Z\xec\xaa]\xcb&\
\xcb\x83_\xb3\xa2\x95\xc5\xb6\xa5\xd4\xb6\xb4\xb4+Km\
\xcfNe\x8c\x03H\xdb!H\x16m\xcep\xd7\x04\xb6\
\xb4\x81k\xc6\x22Z\xc1\xf4\xe6\xaa\xa1\xdf\xdeO\xe0\x15\
\x8e\x8d\x7fw-_LK\xd5`\x1d!\xa3\x08\x15\xfa\
\xba\xd1\xd0\xbfo\x88\xe8\x19\x1a\xf4\x87#4\xec\x1f\x12\
\xbaBA[\x08\xb0\xb6\xbeU\xd4\xac9G\xb9\xc1\xe5\
\x81}B\xfc\xf6p\x86\xf4\xfd\xfe\x05)J\xcb\x09\xc7\
\xc6\x91U\xe4<J\x92t}\xe5\xe58\xd25\xb3c\
\xa3\xc8*\xcd\x1e'CYA\xe5\x05X\x92\xd9R\xcf\
OQ3\x0b=\x19r\x9c\x9d\xf5\xaa\x9c'\x97\xfc\xa9\
Jc\xe7\xe9\xd9\xe3\xc0s_z4O\xe5\x0a\xa3\xd3\
?z]sv\x16s\xfe\xb8R\xb9\xd4d\xb80\x11\
i5\x0f\xfd\x8eF\xe8\x8f\xdd\xaf\x12\x99dhX\xc3\
\xd5\x0e\xef}r~]5|l\xa1\xa6\xba\xfcUm\
\xf9_\xaau\xd9\xfc\xf5`\xf2nt\x05!+BV\
\xc4\xa2;{V\x8a~E\x9d\xa1T\x98)\xa3L\xae\
1\xc3\xc1\xc3T\xc1.k+s\xe8t\xdb\xfa\xf1k\
7\x06]]]\xd9\x02z:\xec\xc6$L;\x9d\xb9\
y\xaf\xe4\xdd\x99\x05\xf4\xcf\xb4\x9d\x11\xb0=\xd3\xedC\
\xca\xb80j\x13)N\x9b\x9b\xbaP\xa5\x8a\x15\x929\
N\x98\x1a\xbb\x06\x99\xa2C\xb9\xf8\xe0\xa5\xdb\xa4\xcde\
\xb2\xd9\x9b\xc4\xb3WoJ\xb8\xe1\xff?Y\xf3*N\
\
\x00\x00\x02|\ \x00\x00\x02|\
\x00\ \x00\
\x00\x10'x\xda\xed\x97[o\xda0\x18\x86\xef'\xed\ \x00\x10'x\xda\xed\x97[o\xda0\x18\x86\xef'\xed\
@@ -7107,6 +7141,10 @@ qt_resource_name = b"\
\x0a\x9a\x0b'\ \x0a\x9a\x0b'\
\x00p\ \x00p\
\x00l\x00a\x00y\x00e\x00r\x00_\x00s\x00t\x00o\x00p\x00.\x00s\x00v\x00g\ \x00l\x00a\x00y\x00e\x00r\x00_\x00s\x00t\x00o\x00p\x00.\x00s\x00v\x00g\
\x00\x0c\
\x0b\xdf,\xc7\
\x00s\
\x00e\x00t\x00t\x00i\x00n\x00g\x00s\x00.\x00s\x00v\x00g\
\x00\x0a\ \x00\x0a\
\x0c\xad\x02\x87\ \x0c\xad\x02\x87\
\x00d\ \x00d\
@@ -7131,10 +7169,6 @@ qt_resource_name = b"\
\x07\xa7Z\x07\ \x07\xa7Z\x07\
\x00a\ \x00a\
\x00d\x00d\x00.\x00s\x00v\x00g\ \x00d\x00d\x00.\x00s\x00v\x00g\
\x00\x0f\
\x0da\x02\xe7\
\x00p\
\x00l\x00a\x00y\x00e\x00r\x00_\x00m\x00u\x00t\x00e\x00.\x00s\x00v\x00g\
\x00\x10\ \x00\x10\
\x0a\x075\xa7\ \x0a\x075\xa7\
\x00d\ \x00d\
@@ -7269,84 +7303,84 @@ qt_resource_struct = b"\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x00\xb2\x00\x00\x00\x00\x00\x01\x00\x00\xc2Z\ \x00\x00\x00\xb2\x00\x00\x00\x00\x00\x01\x00\x00\xc2Z\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x01\xf8\x00\x00\x00\x00\x00\x01\x00\x01\x22\xc9\ \x00\x00\x02\x16\x00\x00\x00\x00\x00\x01\x00\x01%\x7f\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x014\x00\x00\x00\x00\x00\x01\x00\x01\x19\x1c\ \x00\x00\x014\x00\x00\x00\x00\x00\x01\x00\x01\x19\x1c\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x01\xd4\x00\x00\x00\x00\x00\x01\x00\x01!\xad\ \x00\x00\x01\xf2\x00\x00\x00\x00\x00\x01\x00\x01$c\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x02\xd8\x00\x00\x00\x00\x00\x01\x00\x015\xa7\ \x00\x00\x02\xd2\x00\x00\x00\x00\x00\x01\x00\x015J\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x02\xc2\x00\x00\x00\x00\x00\x01\x00\x013\x90\ \x00\x00\x02\xbc\x00\x00\x00\x00\x00\x01\x00\x0133\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x01Z\x00\x00\x00\x00\x00\x01\x00\x01\x1az\ \x00\x00\x01Z\x00\x00\x00\x00\x00\x01\x00\x01\x1az\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x02\x18\x00\x00\x00\x00\x00\x01\x00\x01$;\ \x00\x00\x026\x00\x00\x00\x00\x00\x01\x00\x01&\xf1\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x00\xea\x00\x00\x00\x00\x00\x01\x00\x01\x12\xd8\ \x00\x00\x00\xea\x00\x00\x00\x00\x00\x01\x00\x01\x12\xd8\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x02.\x00\x00\x00\x00\x00\x01\x00\x01&w\ \x00\x00\x02L\x00\x00\x00\x00\x00\x01\x00\x01)-\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x02\x8c\x00\x00\x00\x00\x00\x01\x00\x01.\x9b\ \x00\x00\x02\x86\x00\x00\x00\x00\x00\x01\x00\x01.>\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x02\xfc\x00\x00\x00\x00\x00\x01\x00\x017\xb7\ \x00\x00\x02\xf6\x00\x00\x00\x00\x00\x01\x00\x017Z\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x01\xb0\x00\x00\x00\x00\x00\x01\x00\x01\x1f\xc0\ \x00\x00\x01\xce\x00\x00\x00\x00\x00\x01\x00\x01\x22v\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x02\xa6\x00\x00\x00\x00\x00\x01\x00\x01/\xf7\ \x00\x00\x02\xa0\x00\x00\x00\x00\x00\x01\x00\x01/\x9a\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x02f\x00\x00\x00\x00\x00\x01\x00\x01+\xf0\ \x00\x00\x02`\x00\x00\x00\x00\x00\x01\x00\x01+\x93\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x01r\x00\x00\x00\x00\x00\x01\x00\x01\x1c\x98\ \x00\x00\x01r\x00\x00\x00\x00\x00\x01\x00\x01\x1c\x98\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x01\x96\x00\x00\x00\x00\x00\x01\x00\x01\x1d\x90\ \x00\x00\x01\x96\x00\x00\x00\x00\x00\x01\x00\x01\x1d\x90\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x90K\x1aN%\
\x00\x00\x02B\x00\x00\x00\x00\x00\x01\x00\x01(\xdd\ \x00\x00\x01\xb4\x00\x00\x00\x00\x00\x01\x00\x01 F\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x01\x16\xe5\ \x00\x00\x01\x0e\x00\x00\x00\x00\x00\x01\x00\x01\x16\xe5\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x03\xb0\x00\x01\x00\x00\x00\x01\x00\x01Q\xd2\ \x00\x00\x03\xaa\x00\x01\x00\x00\x00\x01\x00\x01Qu\
\x00\x00\x01\x8f\xff^8_\ \x00\x00\x01\x8f\xff^8_\
\x00\x00\x04\x22\x00\x01\x00\x00\x00\x01\x00\x01[\xc7\ \x00\x00\x04\x1c\x00\x01\x00\x00\x00\x01\x00\x01[j\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x03\xe6\x00\x01\x00\x00\x00\x01\x00\x01T\xef\ \x00\x00\x03\xe0\x00\x01\x00\x00\x00\x01\x00\x01T\x92\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x03\x12\x00\x01\x00\x00\x00\x01\x00\x019\x8e\ \x00\x00\x03\x0c\x00\x01\x00\x00\x00\x01\x00\x0191\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x03<\x00\x01\x00\x00\x00\x01\x00\x01>\xe2\ \x00\x00\x036\x00\x01\x00\x00\x00\x01\x00\x01>\x85\
\x00\x00\x01\x90\x13\xddn\xea\ \x00\x00\x01\x90\x13\xddn\xea\
\x00\x00\x05\xa8\x00\x00\x00\x00\x00\x01\x00\x01\xa1U\ \x00\x00\x05\xa2\x00\x00\x00\x00\x00\x01\x00\x01\xa1\x8a\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x03r\x00\x01\x00\x00\x00\x01\x00\x01Ic\ \x00\x00\x03l\x00\x01\x00\x00\x00\x01\x00\x01I\x06\
\x00\x00\x01\x8f\xff^8_\ \x00\x00\x01\x8f\xff^8_\
\x00\x00\x05\x86\x00\x00\x00\x00\x00\x01\x00\x01\x99\xf3\ \x00\x00\x05\x80\x00\x00\x00\x00\x00\x01\x00\x01\x99\x96\
\x00\x00\x01\x90\x13\xddn\xea\ \x00\x00\x01\x90J\xbe\xce\x04\
\x00\x00\x03X\x00\x02\x00\x00\x00\x04\x00\x00\x00+\ \x00\x00\x03R\x00\x02\x00\x00\x00\x04\x00\x00\x00+\
\x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x04\xc4\x00\x01\x00\x00\x00\x01\x00\x01ve\ \x00\x00\x04\xbe\x00\x01\x00\x00\x00\x01\x00\x01v\x08\
\x00\x00\x01\x90\x13\xdd\x17\xd4\ \x00\x00\x01\x90\x13\xdd\x17\xd4\
\x00\x00\x05d\x00\x01\x00\x00\x00\x01\x00\x01\x8f\xd7\ \x00\x00\x05^\x00\x01\x00\x00\x00\x01\x00\x01\x8fz\
\x00\x00\x01\x90\x01\x93J\xb0\ \x00\x00\x01\x90\x01\x93J\xb0\
\x00\x00\x04\xe6\x00\x01\x00\x00\x00\x01\x00\x01\x7fW\ \x00\x00\x04\xe0\x00\x01\x00\x00\x00\x01\x00\x01~\xfa\
\x00\x00\x01\x90\x18\xf5\x014\ \x00\x00\x01\x90\x18\xf5\x014\
\x00\x00\x04H\x00\x01\x00\x00\x00\x01\x00\x01bS\ \x00\x00\x04B\x00\x01\x00\x00\x00\x01\x00\x01a\xf6\
\x00\x00\x01\x90\x13\xdd\x17\xd3\ \x00\x00\x01\x90\x13\xdd\x17\xd3\
\x00\x00\x04v\x00\x00\x00\x00\x00\x01\x00\x01nr\ \x00\x00\x04p\x00\x00\x00\x00\x00\x01\x00\x01n\x15\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x04\x9e\x00\x01\x00\x00\x00\x01\x00\x01t7\ \x00\x00\x04\x98\x00\x01\x00\x00\x00\x01\x00\x01s\xda\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x05@\x00\x01\x00\x00\x00\x01\x00\x01\x8bx\ \x00\x00\x05:\x00\x01\x00\x00\x00\x01\x00\x01\x8b\x1b\
\x00\x00\x01\x90\x1b[j\x99\ \x00\x00\x01\x90\x1b[j\x99\
\x00\x00\x05\x06\x00\x00\x00\x00\x00\x01\x00\x01\x86O\ \x00\x00\x05\x00\x00\x00\x00\x00\x00\x01\x00\x01\x85\xf2\
\x00\x00\x01\x8f\xff^8P\ \x00\x00\x01\x8f\xff^8P\
\x00\x00\x05\xdc\x00\x01\x00\x00\x00\x01\x00\x01\xaa\x08\ \x00\x00\x05\xd6\x00\x01\x00\x00\x00\x01\x00\x01\xaa=\
\x00\x00\x01\x8f\xff^8_\ \x00\x00\x01\x8f\xff^8_\
\x00\x00\x06$\x00\x01\x00\x00\x00\x01\x00\x01\xb0M\ \x00\x00\x06\x1e\x00\x01\x00\x00\x00\x01\x00\x01\xb2U\
\x00\x00\x01\x8f\xff^8_\ \x00\x00\x01\x8f\xff^8_\
\x00\x00\x05\xc0\x00\x01\x00\x00\x00\x01\x00\x01\xa7\x05\ \x00\x00\x05\xba\x00\x01\x00\x00\x00\x01\x00\x01\xa7:\
\x00\x00\x01\x8f\xff^8_\
\x00\x00\x06\x00\x00\x01\x00\x00\x00\x01\x00\x01\xac\xcb\
\x00\x00\x01\x8f\xff^8_\ \x00\x00\x01\x8f\xff^8_\
\x00\x00\x05\xfa\x00\x01\x00\x00\x00\x01\x00\x01\xad\x00\
\x00\x00\x01\x90K\x22\xa8\x89\
" "
def qInitResources(): def qInitResources():

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#5f6368"><path d="M671-177q-11 7-22 13t-23 11q-15 7-30.5 0T574-176q-6-15 1.5-29.5T598-227q7-3 13-6.5t12-7.5L480-368v111q0 27-24.5 37.5T412-228L280-360H160q-17 0-28.5-11.5T120-400v-160q0-17 11.5-28.5T160-600h88L84-764q-11-11-11-28t11-28q11-11 28-11t28 11l680 680q11 11 11 28t-11 28q-11 11-28 11t-28-11l-93-93Zm89-304q0-83-44-151.5T598-735q-15-7-22-21.5t-2-29.5q6-16 21.5-23t31.5 0q97 43 155 131t58 197q0 33-6 65.5T817-353q-8 22-24.5 27.5t-30.5.5q-14-5-22.5-18t-.5-30q11-26 16-52.5t5-55.5ZM591-623q33 21 51 63t18 80v10q0 5-1 10-2 13-14 17t-22-6l-51-51q-6-6-9-13.5t-3-15.5v-77q0-12 10.5-17.5t20.5.5Zm-201-59q-6-6-6-14t6-14l22-22q19-19 43.5-8.5T480-703v63q0 14-12 19t-22-5l-56-56Z"/></svg>

Before

Width:  |  Height:  |  Size: 783 B

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#5f6368"><path d="M433-80q-27 0-46.5-18T363-142l-9-66q-13-5-24.5-12T307-235l-62 26q-25 11-50 2t-39-32l-47-82q-14-23-8-49t27-43l53-40q-1-7-1-13.5v-27q0-6.5 1-13.5l-53-40q-21-17-27-43t8-49l47-82q14-23 39-32t50 2l62 26q11-8 23-15t24-12l9-66q4-26 23.5-44t46.5-18h94q27 0 46.5 18t23.5 44l9 66q13 5 24.5 12t22.5 15l62-26q25-11 50-2t39 32l47 82q14 23 8 49t-27 43l-53 40q1 7 1 13.5v27q0 6.5-2 13.5l53 40q21 17 27 43t-8 49l-48 82q-14 23-39 32t-50-2l-60-26q-11 8-23 15t-24 12l-9 66q-4 26-23.5 44T527-80h-94Zm49-260q58 0 99-41t41-99q0-58-41-99t-99-41q-59 0-99.5 41T342-480q0 58 40.5 99t99.5 41Z"/></svg>

After

Width:  |  Height:  |  Size: 690 B

View File

@@ -48,6 +48,10 @@ Window {
ColumnLayout { ColumnLayout {
id: columnLayout id: columnLayout
anchors.fill: parent anchors.fill: parent
anchors.rightMargin: 10
anchors.leftMargin: 10
anchors.bottomMargin: 10
anchors.topMargin: 10
Label { Label {
text: qsTr("Downloading in progress...") text: qsTr("Downloading in progress...")

View File

@@ -7,8 +7,8 @@ import QtMultimedia
Item { Item {
width: 180 width: 200
height: 132 height: 80
property bool loop: false property bool loop: false
@@ -68,6 +68,109 @@ Item {
positionSlider.enabled = false positionSlider.enabled = false
} }
Window {
id: audioSettingWindow
width: 450
height: 150
maximumHeight: height
maximumWidth: width
minimumHeight: height
minimumWidth: width
modality: Qt.ApplicationModal
flags: Qt.Dialog
title: qsTr("Artemis - Audio Player Settings")
Component.onCompleted: {
x = Screen.width / 2 - width / 2
y = Screen.height / 2 - height / 2
}
Page {
anchors.fill: parent
ColumnLayout {
anchors.fill: parent
anchors.rightMargin: 10
anchors.leftMargin: 10
anchors.bottomMargin: 10
anchors.topMargin: 10
RowLayout {
Layout.fillWidth: true
Label {
text: "Audio Output"
font.pixelSize: 12
clip: true
Layout.fillWidth: true
}
ComboBox {
id: audioOutputComboBox
Layout.preferredWidth: 200
model: mediaDevices.audioOutputs
textRole: "description"
onCurrentIndexChanged: {
audioOutput.device = mediaDevices.audioOutputs[currentIndex]
}
}
}
RowLayout {
Layout.fillWidth: true
Label {
text: "Volume"
font.pixelSize: 12
clip: true
Layout.fillWidth: true
}
Slider {
id: volumeSlider
Layout.preferredHeight: 20
Layout.preferredWidth: 200
value: 0.5
}
}
RowLayout {
Layout.fillWidth: true
Label {
text: "Replay (Loop)"
font.pixelSize: 12
clip: true
Layout.fillWidth: true
}
RoundButton {
id: buttonLoop
icon.color: Material.foreground
icon.source: "qrc:/images/icons/player_loop.svg"
display: AbstractButton.IconOnly
enabled: false
flat: true
onClicked: {
if (loop) {
loop = false
icon.color = Material.foreground
} else {
loop = true
icon.color = Material.accent
}
}
}
}
Item {
Layout.fillHeight: true
}
}
}
}
ColumnLayout { ColumnLayout {
anchors.fill: parent anchors.fill: parent
spacing: 0 spacing: 0
@@ -118,20 +221,14 @@ Item {
} }
RoundButton { RoundButton {
id: buttonLoop id: buttonSettings
icon.color: Material.foreground icon.color: Material.foreground
icon.source: "qrc:/images/icons/player_loop.svg" icon.source: "qrc:/images/icons/settings.svg"
display: AbstractButton.IconOnly display: AbstractButton.IconOnly
enabled: false enabled: true
flat: true flat: true
onClicked: { onClicked: {
if (loop) { audioSettingWindow.show()
loop = false
icon.color = Material.foreground
} else {
loop = true
icon.color = Material.accent
}
} }
} }
} }
@@ -149,27 +246,6 @@ Item {
} }
} }
RowLayout {
Slider {
id: volumeSlider
Layout.preferredHeight: 20
value: 0.5
Layout.fillWidth: true
}
RoundButton {
id: buttonMute
icon.color: Material.foreground
icon.source: "qrc:/images/icons/player_mute.svg"
display: AbstractButton.IconOnly
enabled: true
flat: true
onClicked: {
volumeSlider.value = 0
}
}
}
MediaPlayer { MediaPlayer {
id: player id: player
audioOutput: audioOutput audioOutput: audioOutput
@@ -186,7 +262,12 @@ Item {
AudioOutput { AudioOutput {
id: audioOutput id: audioOutput
device: mediaDevices.defaultAudioOutput
volume: volumeSlider.value volume: volumeSlider.value
} }
MediaDevices {
id: mediaDevices
}
} }
} }