An attempt to support "modern" Winamp skins in a Qmmp plugin
C++ C QMake
Permalink
Failed to load latest commit information.
COPYING First commit Sep 16, 2016
README.md Update README.md Jan 27, 2017
animatedlayer.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
animatedlayer.h First commit Sep 16, 2016
bitmap.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
bitmap.h First commit Sep 16, 2016
bitmapfont.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
bitmapfont.h First commit Sep 16, 2016
bitmapstorage.h Convert ids to lower Oct 5, 2016
browser.cpp First commit Sep 16, 2016
browser.h First commit Sep 16, 2016
button.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
button.h Button: add left and right click events Oct 6, 2016
callback.cpp First commit Sep 16, 2016
callback.h First commit Sep 16, 2016
cfggroup.cpp First commit Sep 16, 2016
cfggroup.h First commit Sep 16, 2016
componentbucket.cpp First commit Sep 16, 2016
componentbucket.h First commit Sep 16, 2016
container.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
container.h First commit Sep 16, 2016
debug.h First commit Sep 16, 2016
dock.cpp First commit Sep 16, 2016
dock.h First commit Sep 16, 2016
dropdownlist.cpp First commit Sep 16, 2016
dropdownlist.h First commit Sep 16, 2016
edit.cpp First commit Sep 16, 2016
edit.h First commit Sep 16, 2016
eqvis.cpp First commit Sep 16, 2016
eqvis.h First commit Sep 16, 2016
fft.c Draft visualizer support Jan 27, 2017
fft.h Draft visualizer support Jan 27, 2017
function.h First commit Sep 16, 2016
group.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
group.h First commit Sep 16, 2016
grouplist.cpp First commit Sep 16, 2016
grouplist.h First commit Sep 16, 2016
guiobject.cpp Replace the player name in tooltips with Qmmp Jan 27, 2017
guiobject.h Replace the player name in tooltips with Qmmp Jan 27, 2017
inlines.h Draft visualizer support Jan 27, 2017
interpreter.cpp Draft visualizer support Jan 27, 2017
interpreter.h Add basic Region support Oct 4, 2016
layer.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
layer.h Add basic Region support Oct 4, 2016
layout.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
layout.h First commit Sep 16, 2016
layoutstatus.cpp First commit Sep 16, 2016
layoutstatus.h First commit Sep 16, 2016
list.cpp First commit Sep 16, 2016
list.h First commit Sep 16, 2016
mainwindow.cpp Draft visualizer support Jan 27, 2017
mainwindow.h Add layout switching support Oct 5, 2016
map.cpp Add basic Region support Oct 4, 2016
map.h Add basic Region support Oct 4, 2016
modernfactory.cpp First commit Sep 16, 2016
modernfactory.h First commit Sep 16, 2016
mouseredir.cpp First commit Sep 16, 2016
mouseredir.h First commit Sep 16, 2016
object.h First commit Sep 16, 2016
popupmenu.cpp First commit Sep 16, 2016
popupmenu.h First commit Sep 16, 2016
qmmp-modern.pro Draft visualizer support Jan 27, 2017
region.cpp Add basic Region support Oct 4, 2016
region.h Add basic Region support Oct 4, 2016
script.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
script.h First commit Sep 16, 2016
skin.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
skin.h Draft visualizer support Jan 27, 2017
skinreader.cpp First commit Sep 16, 2016
skinreader.h First commit Sep 16, 2016
slider.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
slider.h First commit Sep 16, 2016
status.cpp First commit Sep 16, 2016
status.h First commit Sep 16, 2016
system.cpp System: add integer(), fraction() Oct 6, 2016
system.h System: add integer(), fraction() Oct 6, 2016
tabsheet.cpp First commit Sep 16, 2016
tabsheet.h First commit Sep 16, 2016
text.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
text.h First commit Sep 16, 2016
timer.cpp Timer: add delay() Oct 6, 2016
timer.h Timer: add delay() Oct 6, 2016
title.cpp First commit Sep 16, 2016
title.h First commit Sep 16, 2016
togglebutton.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
togglebutton.h First commit Sep 16, 2016
truetypefont.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
truetypefont.h First commit Sep 16, 2016
variable.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
variable.h First commit Sep 16, 2016
visualizer.cpp Replace range-based loops with Q_FOREACH Feb 6, 2017
visualizer.h Draft visualizer support Jan 27, 2017
windowholder.cpp First commit Sep 16, 2016
windowholder.h First commit Sep 16, 2016
windowsystem.cpp First commit Sep 16, 2016
windowsystem.h First commit Sep 16, 2016

README.md

qmmp-modern

Building and installing:

git clone https://github.com/dsmorozov/qmmp-modern.git

qmake

make

sudo make install

Go to Qmmp settings -> Plugins -> User Interfaces -> Select "Modern User Interface" -> Close -> Restart the program

or

find "current_plugin" config entry in qmmprc and set it to "modern"

The latter is the only option to switch back to "skinned" plugin for now.

Dependencies:

  • C++11
  • Qmmp
  • Qt5 >= 5.4
  • Qt5X11Extras
  • unzip

More or less implemented:

  • XML parser
  • Basic GUI elements(e.g. button, slider, text)
  • Basic functionality (Play, Stop, Pause, Eject/File Open)
  • MAKI script loader
  • MAKI bytecode interpreter

One can try this skin to see what has been implemented so far.

Debug

QT_LOGGING_RULES="modernui.xml.parser.debug=true" qmmp enables skin xml parser debug QT_LOGGING_RULES="modernui.script.loader.debug=true" qmmp enables script loader debug QT_LOGGING_RULES="modernui.script.interpreter.debug=true" qmmp enables bytecode interpreter debug

Appendix:

Huge amount of things still remains to be implemented. Don't even try loading any complex skin.