Skip to content

Commit a017bc2

Browse files
authored
Merge pull request #102 from CodeF0x/prelive
Added volume slider
2 parents e16d376 + 805a7f7 commit a017bc2

10 files changed

Lines changed: 130 additions & 15 deletions

File tree

dist/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "violin",
33
"productName": "Violin",
4-
"version": "2.1.0",
4+
"version": "2.2.0",
55
"description": "A fast, lightweight, and minimalistic desktop music player.",
66
"main": "main.js",
77
"scripts": {

main.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ let window = null;
1313
function createWindow() {
1414
window = new BrowserWindow({
1515
width: 800,
16+
minWidth: 800,
1617
height: 600,
18+
minHeight: 600,
1719
titleBarStyle: 'hiddenInset',
1820
useContentSize: false,
1921
webPreferences: {

package-lock.json

Lines changed: 43 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,5 +54,8 @@
5454
"target": "msi",
5555
"icon": "src/img/icons/icon.ico"
5656
}
57+
},
58+
"dependencies": {
59+
"jsmediatags": "^3.9.2"
5760
}
5861
}

src/css/main.css

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,10 +337,78 @@ progress::-webkit-progress-value {
337337
}
338338

339339
.song-info {
340-
grid-row: 3;
341340
display: flex;
342341
justify-content: center;
343342
align-items: center;
344343
color: var(--text-color);
345344
font-size: 0.9em;
346345
}
346+
347+
#song-title,
348+
#song-artist {
349+
overflow: hidden;
350+
white-space: nowrap;
351+
text-overflow: ellipsis;
352+
}
353+
354+
355+
#volume-wrapper {
356+
position: absolute;
357+
right: 10px;
358+
}
359+
360+
#volume-button {
361+
float: left;
362+
height: 20px;
363+
width: 20px;
364+
background-image: url('../img/volume.png');
365+
background-repeat: no-repeat;
366+
background-size: cover;
367+
background-position: center;
368+
}
369+
370+
input[type='range'] {
371+
margin: 0;
372+
padding: 0;
373+
padding-left: 10px;
374+
}
375+
376+
input[type='range']::-webkit-slider-runnable-track {
377+
width: 100%;
378+
height: 5px;
379+
cursor: pointer;
380+
background: var(--song-con-active);
381+
border-radius: 1.3px;
382+
}
383+
384+
input[type='range']:focus::-webkit-slider-runnable-track {
385+
background: var(--song-con-active);
386+
}
387+
388+
input[type='range']::-webkit-slider-thumb {
389+
margin-top: -5px;
390+
cursor: pointer;
391+
}
392+
393+
#volume {
394+
background-color: transparent;
395+
}
396+
397+
/**
398+
* Because volume slider is positionied absolute,
399+
* we need this ugly rule to adjust song artist
400+
* and song title
401+
*/
402+
@media (max-width: 1000px) {
403+
#song-title,
404+
#song-artist {
405+
max-width: 10em;
406+
}
407+
}
408+
409+
@media (min-width: 1000px) {
410+
#song-title,
411+
#song-artist {
412+
max-width: 28em;
413+
}
414+
}

src/img/volume.png

13.7 KB
Loading

src/index.html

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<head>
44
<meta
55
name="viewport"
6-
content="width=device-width, initial-scale=1, shrink-to-fit=no"
6+
content="width=device-width, initial-scale=1"
77
/>
88
<meta
99
http-equiv="Content-Security-Policy"
@@ -47,8 +47,12 @@
4747
</div>
4848
<div class="song-info">
4949
<div id="song-title">Something</div>
50-
&nbsp;by&nbsp;
50+
<div>&nbsp;by&nbsp;</div>
5151
<div id="song-artist">Someone</div>
52+
<div id="volume-wrapper">
53+
<div id="volume-button"></div>
54+
<input type="range" min="0" max="100" value="100" id="volume" />
55+
</div>
5256
</div>
5357
</div>
5458
<script src="js/index.js"></script>

src/js/event-listener.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,10 @@ module.exports = function() {
9999
creatorLink.addEventListener('click', () => {
100100
require('electron').shell.openExternal('https://codef0x.dev');
101101
});
102+
103+
volumeSlider.addEventListener('input', () => {
104+
player.volume = volumeSlider.value / 100;
105+
});
102106
};
103107

104108
/**

src/js/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ let {
1515
searchField,
1616
creatorLink,
1717
loader,
18+
volumeSlider,
1819
base64String,
1920
globalFiles,
2021
originalGlobalFiles,

src/js/variables.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ module.exports = {
1212
searchField: document.getElementById('search'),
1313
creatorLink: document.getElementById('creator-link'),
1414
loader: document.getElementById('loader'),
15+
volumeSlider: document.getElementById('volume'),
1516
base64String: undefined,
1617
globalFiles: undefined,
1718
originalGlobalFiles: undefined,

0 commit comments

Comments
 (0)