- ${shuffle} ${repeat} ${playlist} ${prev} ${play-pause} ${next} ${cover} ${artist} ${track} ${release} ${curtime} ${seekbar} ${duration} ${volume}
+ ${audio}
+ ${prev}${play-pause}${next}
+
+ ${volume}
+
+
+ ${cover}
+
+
+ ${shuffle}${repeat}${playlist}
diff --git a/docroot/css/lms.css b/docroot/css/lms.css
index afe63087..6c0bf27d 100644
--- a/docroot/css/lms.css
+++ b/docroot/css/lms.css
@@ -1,5 +1,6 @@
.main-nav {
margin-bottom: 0px;
+ box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.4);
}
.Wt-hrh2 {
@@ -10,14 +11,10 @@
background-color: white;
}
-div.contents {
- padding: 0px 12px 6px;
- margin-bottom: 64px;
-}
-
.playqueue {
background-color: #EEE;
border-radius: 10px;
+ box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.4);
}
.playqueue-playing {
@@ -40,32 +37,98 @@ div.contents {
height: 64px;
}
-.mediaplayer {
- background-color: #CCC;
- border-radius: 10px;
- min-width: 360px;
-}
-
-.mediaplayer-btn-controls {
- font-weight: bold;
-}
-
-.mediaplayer-current-cover {
- width: 72px;
- height: 72px;
- border-radius: 8px;
- box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.5);
-}
-
-.mediaplayer-current-track {
+.mediaplayer-track {
font-weight: bold;
font-size: 120%;
}
-.mediaplayer-current-artist {
+.mediaplayer-artist {
font-style: italic;
}
+.mediaplayer {
+ background-color: #CCC;
+ border-radius: 10px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ height: 72px;
+ box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.4);
+}
+
+.mediaplayer-cover {
+ margin: 8px;
+ width: 64px;
+ min-width: 64px;
+ height: 64px;
+ min-height: 64px;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+
+.mediaplayer-cover img {
+ border-radius: 8px;
+ border-radius: 8px;
+ box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.4);
+}
+
+.mediaplayer-btn {
+ margin: 8px;
+}
+
+.mediaplayer-btn i {
+ cursor: pointer;
+ text-shadow: 0px 2px 3px rgba(0, 0, 0, 0.4);
+}
+
+.mediaplayer-btn-active {
+ color: #428bca;
+}
+
+.mediaplayer-info-container {
+ width: 100%;
+ min-width: 100px;
+ margin: 8px;
+}
+
+.mediaplayer-track-info {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+.mediaplayer-progress-container {
+ display: flex;
+ align-items: center;
+}
+
+.mediaplayer-badge {
+ min-width: initial;
+}
+
+.mediaplayer-current-duration {
+ margin-right: 8px;
+}
+.mediaplayer-total-duration {
+ margin-left: 8px;
+}
+
+.mediaplayer-seekbar {
+}
+
+.mediaplayer-volume-container {
+ width: 24px;
+ height: 64px;
+ margin: 8px;
+}
+
+.mediaplayer-volume {
+ height: 64px;
+ -webkit-appearance: slider-vertical;
+ writing-mode: bt-lr;
+}
+
.mobile-search-title {
font-weight: bold;
height: 32px;
diff --git a/src/Makefile.am b/src/Makefile.am
index 7cc1077c..e6b0f919 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -26,7 +26,6 @@ lms_SOURCES = \
$(srcdir)/ui/auth/LmsAuth.cpp \
$(srcdir)/ui/audio/AudioPlayer.cpp \
$(srcdir)/ui/audio/desktop/DesktopAudio.cpp \
- $(srcdir)/ui/audio/desktop/AudioMediaPlayer.cpp \
$(srcdir)/ui/audio/desktop/FilterChain.cpp \
$(srcdir)/ui/audio/desktop/KeywordSearchFilter.cpp \
$(srcdir)/ui/audio/desktop/PlayQueue.cpp \
diff --git a/src/av/AvTranscoder.hpp b/src/av/AvTranscoder.hpp
index 5706ea94..7e671fb8 100644
--- a/src/av/AvTranscoder.hpp
+++ b/src/av/AvTranscoder.hpp
@@ -91,6 +91,8 @@ class Transcoder
void process(std::vector