Qmmp: bump version

This commit is contained in:
Gerasim Troeglazov
2019-02-13 21:58:14 +10:00
parent f1e17dc3b9
commit c6a76c0da5
2 changed files with 307 additions and 354 deletions

View File

@@ -1,293 +1,93 @@
From 42b234b71cfc75d88f7954a48dc3cfd1eab021f2 Mon Sep 17 00:00:00 2001
From 008061e5c914089e65e08eaa48c145ebd41349f4 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Tue, 28 Nov 2017 00:42:45 +1000
Subject: Fix build for Haiku
Date: Wed, 13 Feb 2019 20:35:27 +1000
Subject: Add haiku support
diff --git a/qmmp.pri b/qmmp.pri
index 47db18a..3dec1a5 100644
--- a/qmmp.pri
+++ b/qmmp.pri
@@ -13,7 +13,7 @@ RCC_DIR=./.build/rcc
#Defines
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0d0c1b5..2eea057 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -62,7 +62,6 @@ find_package(Qt5DBus 5.4.0)
find_package(Qt5Multimedia 5.4.0)
find_package(Qt5Sql 5.4.0)
find_package(QtWinExtras 5.4.0)
-ADD_DEFINITIONS(-DQMMP_WS_X11)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
set(CMAKE_CXX_STANDARD 11)
@@ -235,7 +234,7 @@ PRINT_SUMMARY ("Two-panel File File Dialog ............" USE_TWO_PANEL_DIALOG 1)
DEFINES += QT_NO_CAST_FROM_BYTEARRAY QT_STRICT_ITERATORS
-unix:DEFINES += QMMP_WS_X11
+unix:!haiku:DEFINES += QMMP_WS_X11
DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x050400
MESSAGE("")
MESSAGE("Advanced:")
-PRINT_SUMMARY ("Skinned user interface ................" USE_SKINNED X11_FOUND AND Qt5X11Extras_FOUND)
+PRINT_SUMMARY ("Skinned user interface ................" USE_SKINNED 1)
PRINT_SUMMARY ("Simple user interface (QSUI) .........." USE_QSUI 1)
PRINT_SUMMARY ("Automatic charset detection ..........." USE_ENCA ENCA_FOUND)
PRINT_SUMMARY ("Directory association ................." USE_DIR_ASSOC 1)
diff --git a/src/plugins/Input/gme/CMakeLists.txt b/src/plugins/Input/gme/CMakeLists.txt
index 0134f73..8cbc33c 100644
--- a/src/plugins/Input/gme/CMakeLists.txt
+++ b/src/plugins/Input/gme/CMakeLists.txt
@@ -9,16 +9,10 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../)
link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp)
#Configuration
diff --git a/src/app/app.pro b/src/app/app.pro
index 3f7ba55..87e38a9 100644
--- a/src/app/app.pro
+++ b/src/app/app.pro
@@ -4,6 +4,7 @@ TEMPLATE = app
unix:TARGET = ../../bin/qmmp
win32:TARGET = ../../../bin/qmmp
+haiku:TARGET = ../../Qmmp
QT += network
diff --git a/src/plugins/Effect/Effect.pro b/src/plugins/Effect/Effect.pro
index 5a1cc69..800ad00 100644
--- a/src/plugins/Effect/Effect.pro
+++ b/src/plugins/Effect/Effect.pro
@@ -2,11 +2,12 @@ include (../../../qmmp.pri)
TEMPLATE = subdirs
SUBDIRS += crossfade stereo
# libgme
-CHECK_INCLUDE_FILE_CXX(gme/gme.h GME_HEADER_FOUND)
-FIND_LIBRARY(GME_LIB NAME gme PATHS /usr/lib /usr/lib32 /usr/local/lib /usr/local/lib32)
-
+!haiku {
contains(CONFIG, BS2B_PLUGIN):SUBDIRS += bs2b
contains(CONFIG, SOXR_PLUGIN):SUBDIRS += soxr
+}
contains(CONFIG, FILEWRITER_PLUGIN):SUBDIRS += filewriter
-IF(GME_HEADER_FOUND AND (NOT GME_LIB MATCHES "^.*-NOTFOUND"))
-SET(GME_FOUND TRUE CACHE INTERNAL "GME")
-MESSAGE(STATUS "Found Game Music Emu: ${GME_LIB}")
-ELSE(GME_HEADER_FOUND AND (NOT GME_LIB MATCHES "^.*-NOTFOUND"))
-MESSAGE(STATUS "Could not find Game Music Emu library")
-ENDIF(GME_HEADER_FOUND AND (NOT GME_LIB MATCHES "^.*-NOTFOUND"))
-
+pkg_search_module(GME libgme)
+include_directories(${GME_INCLUDE_DIRS})
+link_directories(${GME_LIBRARY_DIRS})
+ADD_DEFINITIONS(${GME_CFLAGS})
-unix {
+unix:!haiku {
contains(CONFIG, LADSPA_PLUGIN):SUBDIRS += ladspa
}
diff --git a/src/plugins/General/General.pro b/src/plugins/General/General.pro
index a1f1129..47c3d69 100644
--- a/src/plugins/General/General.pro
+++ b/src/plugins/General/General.pro
@@ -1,7 +1,6 @@
include(../../../qmmp.pri)
SET(libgme_SRCS
decoder_gme.cpp
@@ -51,6 +45,6 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR})
IF(GME_FOUND)
ADD_LIBRARY(gme MODULE ${libgme_SRCS} ${libgme_RCC_SRCS} ${libgme_HDRS} ${libgme_UIS_H})
add_dependencies(gme libqmmp)
-target_link_libraries(gme Qt5::Widgets libqmmp ${GME_LIB})
+target_link_libraries(gme Qt5::Widgets libqmmp ${GME_LDFLAGS})
install(TARGETS gme DESTINATION ${PLUGIN_DIR}/Input)
ENDIF(GME_FOUND)
diff --git a/src/plugins/Output/CMakeLists.txt b/src/plugins/Output/CMakeLists.txt
index 60c2066..5eac3bc 100644
--- a/src/plugins/Output/CMakeLists.txt
+++ b/src/plugins/Output/CMakeLists.txt
@@ -9,6 +9,7 @@ SET(USE_DSOUND TRUE CACHE BOOL "enable/disable DirectSound plugin")
SET(USE_QTMULTIMEDIA TRUE CACHE BOOL "enable/disable Qt Multimedia output plugin")
SET(USE_WASAPI TRUE CACHE BOOL "enable/disable WASAPI plugin")
SET(USE_SHOUT TRUE CACHE BOOL "enable/disable Icecast plugin")
+SET(USE_MEDIAKIT TRUE CACHE BOOL "enable/disable MediaKit plugin")
SUBDIRS += statusicon \
- notifier \
lyrics \
scrobbler \
fileops \
@@ -9,19 +8,20 @@ SUBDIRS += statusicon \
streambrowser \
trackchange \
copypaste \
- rgscan \
- hotkey
-unix:SUBDIRS += mpris \
+ rgscan
+unix:!haiku:SUBDIRS += mpris \
+ notifier \
+ hotkey \
kdenotify \
converter \
gnomehotkey
contains(CONFIG, UDISKS2_PLUGIN){
- unix:SUBDIRS += udisks2
+ unix:!haiku:SUBDIRS += udisks2
}
contains(CONFIG, HAL_PLUGIN){
- unix:SUBDIRS += hal
+ unix:!haiku:SUBDIRS += hal
}
TEMPLATE = subdirs
diff --git a/src/plugins/Input/Input.pro b/src/plugins/Input/Input.pro
index eef4806..1262644 100644
--- a/src/plugins/Input/Input.pro
+++ b/src/plugins/Input/Input.pro
@@ -19,6 +19,7 @@ contains(CONFIG, FFMPEG_PLUGIN){
SUBDIRS += ffmpeg
}
+!haiku {
contains(CONFIG, GME_PLUGIN){
SUBDIRS += gme
}
@@ -34,6 +35,7 @@ contains(CONFIG, CDAUDIO_PLUGIN){
contains(CONFIG, SID_PLUGIN){
SUBDIRS += sid
}
+}
unix{
@@ -42,9 +44,11 @@ contains(CONFIG, AAC_PLUGIN){
}
+!haiku {
contains(CONFIG, WILDMIDI_PLUGIN){
SUBDIRS += wildmidi
}
+}
contains(CONFIG, ARCHIVE_PLUGIN){
TAGLIB_VERSION = $$system("pkg-config --modversion taglib")
diff --git a/src/plugins/Output/Output.pro b/src/plugins/Output/Output.pro
index 1d745e4..194b25b 100644
--- a/src/plugins/Output/Output.pro
+++ b/src/plugins/Output/Output.pro
@@ -7,7 +7,7 @@ win32:SUBDIRS += wasapi
SUBDIRS += null
-unix{
+unix:!haiku{
contains(CONFIG, JACK_PLUGIN){
SUBDIRS += jack
@@ -34,9 +34,13 @@ contains(CONFIG, SHOUT_PLUGIN){
}
}
+haiku{
+ SUBDIRS += mediakit
+}
IF(USE_ALSA)
add_subdirectory(alsa)
@@ -53,3 +54,7 @@ ENDIF(USE_WASAPI)
IF(USE_SHOUT)
add_subdirectory(shout)
ENDIF(USE_SHOUT)
+
#all platforms
qtHaveModule(multimedia){
contains(CONFIG, QTMULTIMEDIA_PLUGIN){
- SUBDIRS += qtmultimedia
+ !haiku:SUBDIRS += qtmultimedia
}
}
diff --git a/src/plugins/Ui/skinned/skinned.pro b/src/plugins/Ui/skinned/skinned.pro
index 9e55ab2..4565cf3 100644
--- a/src/plugins/Ui/skinned/skinned.pro
+++ b/src/plugins/Ui/skinned/skinned.pro
@@ -121,7 +121,7 @@ RESOURCES = resources/resources.qrc \
LIBS += $$QMMPUI_LIB
-unix {
+unix:!haiku {
target.path = $$LIB_DIR/qmmp/Ui
INSTALLS += target
PKGCONFIG += x11
diff --git a/src/plugins/Ui/skinned/symboldisplay.cpp b/src/plugins/Ui/skinned/symboldisplay.cpp
index 49a6ce3..d5a6e33 100644
--- a/src/plugins/Ui/skinned/symboldisplay.cpp
+++ b/src/plugins/Ui/skinned/symboldisplay.cpp
@@ -32,7 +32,7 @@ SymbolDisplay::SymbolDisplay (QWidget *parent, int digits)
connect (m_skin, SIGNAL (skinChanged()), this, SLOT (draw()));
draw();
for (int i=0; i<m_digits; ++i)
-#if defined(Q_OS_FREEBSD) || defined(Q_OS_WIN) || defined (Q_OS_MAC)
+#if defined(Q_OS_FREEBSD) || defined(Q_OS_WIN) || defined (Q_OS_MAC) || defined (Q_OS_HAIKU)
m_max += 9 * (int) pow(10,i);
#else
m_max += 9 * (int) exp10(i);
diff --git a/src/plugins/Visual/Visual.pro b/src/plugins/Visual/Visual.pro
index e3f6d5e..1150b9a 100644
--- a/src/plugins/Visual/Visual.pro
+++ b/src/plugins/Visual/Visual.pro
@@ -3,5 +3,5 @@ TEMPLATE = subdirs
SUBDIRS += analyzer
contains(CONFIG, PROJECTM_PLUGIN){
- SUBDIRS += projectm
+ !haiku:SUBDIRS += projectm
}
diff --git a/src/plugins/plugins.pri b/src/plugins/plugins.pri
index 8e79777..9108023 100644
--- a/src/plugins/plugins.pri
+++ b/src/plugins/plugins.pri
@@ -9,7 +9,7 @@ win32 {
QMMPUI_LIB = -lqmmpui1
}
-unix {
+unix:!haiku {
isEmpty(LIB_DIR){
LIB_DIR = /lib
}
@@ -18,6 +18,14 @@ unix {
QMMPUI_LIB = -lqmmpui
}
+haiku {
+ isEmpty(LIB_DIR){
+ LIB_DIR = /lib
+ }
+ PLUGINS_PREFIX=../../../../plugins
+ LIBS += -lqmmp
+ QMMPUI_LIB = -lqmmpui
+}
CONFIG += warn_on plugin lib thread link_pkgconfig hide_symbols
TEMPLATE = lib
diff --git a/src/qmmp/qmmp.cpp b/src/qmmp/qmmp.cpp
index 44f404e..9b20982 100644
--- a/src/qmmp/qmmp.cpp
+++ b/src/qmmp/qmmp.cpp
@@ -56,6 +56,8 @@ const QString Qmmp::configDir()
}
else
return m_configDir;
+#elif defined(Q_OS_HAIKU)
+ return m_configDir.isEmpty() ? QDir::homePath() +"/config/settings/Qmmp/" : m_configDir;
#else
return m_configDir.isEmpty() ? QDir::homePath() +"/.qmmp/" : m_configDir;
#endif
@@ -93,7 +95,7 @@ const QString Qmmp::pluginsPath()
QDir dir(QMMP_INSTALL_PREFIX "/" LIB_DIR "/qmmp");
//qDebug(QMMP_INSTALL_PREFIX"/"LIB_DIR"/qmmp");
#else
-#if defined(Q_OS_WIN) && !defined(Q_OS_CYGWIN)
+#if defined(Q_OS_WIN) && !defined(Q_OS_CYGWIN) || defined(Q_OS_HAIKU)
QDir dir(qApp->applicationDirPath() + "/plugins");
#else
QDir dir(qApp->applicationDirPath() + "/../" LIB_DIR "/qmmp");
diff --git a/src/qmmpui/configdialog.cpp b/src/qmmpui/configdialog.cpp
index de0e271..a8173f8 100644
--- a/src/qmmpui/configdialog.cpp
+++ b/src/qmmpui/configdialog.cpp
@@ -56,6 +56,11 @@ ConfigDialog::ConfigDialog (QWidget *parent) : QDialog (parent)
m_insert_row = 0;
setAttribute(Qt::WA_QuitOnClose, false);
setAttribute(Qt::WA_DeleteOnClose, false);
+#if defined(Q_OS_HAIKU)
+ hide();
+ setWindowModality(Qt::NonModal);
+ show();
+#endif
m_ui->preferencesButton->setEnabled(false);
m_ui->informationButton->setEnabled(false);
m_ui->treeWidget->setItemDelegate(new RadioItemDelegate(this));
--
2.15.0
From 57dc32beb35771fa790587982bb41d625abff59e Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Tue, 28 Nov 2017 00:46:04 +1000
Subject: Add mediakit output plugin
+IF(USE_MEDIAKIT)
+add_subdirectory(mediakit)
+ENDIF(USE_MEDIAKIT)
diff --git a/src/plugins/Output/mediakit/CMakeLists.txt b/src/plugins/Output/mediakit/CMakeLists.txt
new file mode 100644
index 0000000..55c1bdc
index 0000000..c1fe674
--- /dev/null
+++ b/src/plugins/Output/mediakit/CMakeLists.txt
@@ -0,0 +1,58 @@
@@ -0,0 +1,31 @@
+project(libmediakit)
+
+cmake_minimum_required(VERSION 2.4.7)
+
+if(COMMAND cmake_policy)
+cmake_policy(SET CMP0003 NEW)
+endif(COMMAND cmake_policy)
+
+# qt plugin
+ADD_DEFINITIONS( -Wall )
+ADD_DEFINITIONS(${QT_DEFINITIONS})
+ADD_DEFINITIONS(-DQT_PLUGIN)
+ADD_DEFINITIONS(-DQT_NO_DEBUG)
+ADD_DEFINITIONS(-DQT_SHARED)
+ADD_DEFINITIONS(-DQT_THREAD)
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+SET(QT_INCLUDES
+ ${QT_INCLUDES}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../../
+)
+
+# libqmmp
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../)
+link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp)
@@ -297,38 +97,30 @@ index 0000000..55c1bdc
+ outputmediakitfactory.cpp
+)
+
+SET(libmediakit_MOC_HDRS
+ outputmediakitfactory.h
+)
+
+SET(libmediakit_HDRS
+ outputmediakit.h
+ outputmediakitfactory.h
+)
+
+SET(libmediakit_RCCS translations/translations.qrc)
+
+QT4_ADD_RESOURCES(libmediakit_RCC_SRCS ${libmediakit_RCCS})
+
+QT4_WRAP_CPP(libmediakit_MOC_SRCS ${libmediakit_MOC_HDRS})
+
+QT5_ADD_RESOURCES(libmediakit_RCC_SRCS ${libmediakit_RCCS})
+
+# Don't forget to include output directory, otherwise
+# the UI file won't be wrapped!
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+ADD_LIBRARY(mediakit MODULE ${libmediakit_SRCS} ${libmediakit_MOC_SRCS} ${libmediakit_UIS_H}
+ ${libmediakit_RCC_SRCS} ${libmediakit_HDRS})
+add_dependencies(mediakit qmmp)
+target_link_libraries(mediakit ${QT_LIBRARIES} -lqmmp -lbe -lmedia -lgame)
+install(TARGETS mediakit DESTINATION ${LIB_DIR}/qmmp/Output)
+
+
+ADD_LIBRARY(mediakit MODULE ${libmediakit_SRCS} ${libmediakit_UIS_H} ${libmediakit_RCC_SRCS} ${libmediakit_HDRS})
+add_dependencies(mediakit libqmmp)
+target_link_libraries(mediakit Qt5::Widgets libqmmp media)
+install(TARGETS mediakit DESTINATION ${PLUGIN_DIR}/Output)
diff --git a/src/plugins/Output/mediakit/mediakit.pro b/src/plugins/Output/mediakit/mediakit.pro
new file mode 100644
index 0000000..d18625e
index 0000000..86849a8
--- /dev/null
+++ b/src/plugins/Output/mediakit/mediakit.pro
@@ -0,0 +1,31 @@
@@ -0,0 +1,22 @@
+include(../../plugins.pri)
+
+HEADERS += outputmediakitfactory.h \
@@ -339,35 +131,26 @@ index 0000000..d18625e
+
+
+TARGET=$$PLUGINS_PREFIX/Output/mediakit
+QMAKE_CLEAN =$$PLUGINS_PREFIX/Output/libmediakit.so
+
+INCLUDEPATH += ../../../
+QMAKE_LIBDIR += ../../../../lib
+
+CONFIG += warn_on \
+thread \
+plugin \
+link_pkgconfig
+
+TEMPLATE = lib
+LIBS += -lqmmp -lbe -lmedia
+
+RESOURCES = translations/translations.qrc
+
+isEmpty (LIB_DIR){
+LIB_DIR = /lib
+}
+
+target.path = $$LIB_DIR/qmmp/Output
+target.path = $$PLUGIN_DIR/Output
+INSTALLS += target
diff --git a/src/plugins/Output/mediakit/outputmediakit.cpp b/src/plugins/Output/mediakit/outputmediakit.cpp
new file mode 100644
index 0000000..b0ea1b6
index 0000000..baf7326
--- /dev/null
+++ b/src/plugins/Output/mediakit/outputmediakit.cpp
@@ -0,0 +1,137 @@
+/***************************************************************************
+ * Copyright (C) 2013-2015 by Gerasim Troeglazov *
+ * Copyright (C) 2013-2019 by Gerasim Troeglazov *
+ * 3dEyes@gmail.com *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
@@ -505,12 +288,12 @@ index 0000000..b0ea1b6
+}
diff --git a/src/plugins/Output/mediakit/outputmediakit.h b/src/plugins/Output/mediakit/outputmediakit.h
new file mode 100644
index 0000000..0a65f44
index 0000000..cc1af5b
--- /dev/null
+++ b/src/plugins/Output/mediakit/outputmediakit.h
@@ -0,0 +1,56 @@
+/***************************************************************************
+ * Copyright (C) 2013-2015 by Gerasim Troeglazov *
+ * Copyright (C) 2013-2019 by Gerasim Troeglazov *
+ * 3dEyes@gmail.com *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
@@ -567,13 +350,13 @@ index 0000000..0a65f44
+#endif // OUTPUTMEDIAKIT_H
diff --git a/src/plugins/Output/mediakit/outputmediakitfactory.cpp b/src/plugins/Output/mediakit/outputmediakitfactory.cpp
new file mode 100644
index 0000000..f54967e
index 0000000..a503603
--- /dev/null
+++ b/src/plugins/Output/mediakit/outputmediakitfactory.cpp
@@ -0,0 +1,68 @@
@@ -0,0 +1,65 @@
+/***************************************************************************
+ * Copyright (C) 2007-2012 by Ilya Kotov *
+ * forkotov02@hotmail.ru *
+ * Copyright (C) 2013-2019 by Gerasim Troeglazov *
+ * 3dEyes@gmail.com *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
@@ -599,7 +382,7 @@ index 0000000..f54967e
+#include "outputmediakitfactory.h"
+
+
+const OutputProperties OutputMediaKitFactory::properties() const
+OutputProperties OutputMediaKitFactory::properties() const
+{
+ OutputProperties properties;
+ properties.name = "MediaKit Plugin";
@@ -627,27 +410,24 @@ index 0000000..f54967e
+void OutputMediaKitFactory::showAbout(QWidget *parent)
+{
+ QMessageBox::about (parent, "About MediaKit Output Plugin",
+ "Qmmp MediaKit Output Plugin\n(C) 2013-2015 3dEyes**");
+ "Qmmp MediaKit Output Plugin\n(C) 2013-2019 3dEyes**");
+}
+
+QTranslator *OutputMediaKitFactory::createTranslator(QObject *parent)
+QString OutputMediaKitFactory::translation() const
+{
+ QTranslator *translator = new QTranslator(parent);
+ QString locale = Qmmp::systemLanguageID();
+ translator->load(QString(":/mediakit_plugin_") + locale);
+ return translator;
+ return QLatin1String(":/mediakit_plugin_");
+}
+
+//Q_EXPORT_PLUGIN2(mediakit, OutputMediaKitFactory)
diff --git a/src/plugins/Output/mediakit/outputmediakitfactory.h b/src/plugins/Output/mediakit/outputmediakitfactory.h
new file mode 100644
index 0000000..6f3c721
index 0000000..e90eb23
--- /dev/null
+++ b/src/plugins/Output/mediakit/outputmediakitfactory.h
@@ -0,0 +1,49 @@
@@ -0,0 +1,50 @@
+/***************************************************************************
+ * Copyright (C) 2007-2012 by Ilya Kotov *
+ * forkotov02@hotmail.ru *
+ * Copyright (C) 2013-2019 by Gerasim Troeglazov *
+ * 3dEyes@gmail.com *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
@@ -664,6 +444,7 @@ index 0000000..6f3c721
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+#ifndef OUTPUTMEDIAKITFACTORY_H
+#define OUTPUTMEDIAKITFACTORY_H
+
@@ -685,12 +466,12 @@ index 0000000..6f3c721
+Q_INTERFACES(OutputFactory)
+
+public:
+ const OutputProperties properties() const;
+ Output* create();
+ Volume *createVolume();
+ void showSettings(QWidget* parent);
+ void showAbout(QWidget *parent);
+ QTranslator *createTranslator(QObject *parent);
+ OutputProperties properties() const override;
+ Output* create() override;
+ Volume *createVolume() override;
+ void showSettings(QWidget* parent) override;
+ void showAbout(QWidget *parent) override;
+ QString translation() const override;
+};
+
+#endif
@@ -718,29 +499,168 @@ index 0000000..f678c61
+ <qresource>
+ </qresource>
+</RCC>
--
2.15.0
diff --git a/src/plugins/Ui/CMakeLists.txt b/src/plugins/Ui/CMakeLists.txt
index ca25b54..7670cdb 100644
--- a/src/plugins/Ui/CMakeLists.txt
+++ b/src/plugins/Ui/CMakeLists.txt
@@ -1,9 +1,9 @@
SET(USE_SKINNED TRUE CACHE BOOL "enable/disable skinned user interface")
SET(USE_QSUI TRUE CACHE BOOL "enable/disable simple user interface (qsui)")
-IF(USE_SKINNED AND Qt5X11Extras_FOUND)
+IF(USE_SKINNED)
add_subdirectory(skinned)
-ENDIF(USE_SKINNED AND Qt5X11Extras_FOUND)
+ENDIF(USE_SKINNED)
From 50c8b80d4a6f0c7fe59c9c0781c4b6e1407c1efd Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Tue, 28 Nov 2017 17:50:44 +1000
Subject: Fix skins directory for Haiku
IF(USE_QSUI)
add_subdirectory(qsui)
diff --git a/src/plugins/Ui/skinned/CMakeLists.txt b/src/plugins/Ui/skinned/CMakeLists.txt
index 6e2e14d..36916b3 100644
--- a/src/plugins/Ui/skinned/CMakeLists.txt
+++ b/src/plugins/Ui/skinned/CMakeLists.txt
@@ -5,11 +5,6 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../)
link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmpui)
link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp)
-# X11
-include_directories(${X11_INCLUDE_DIRS})
-link_directories(${X11_LIBRARY_DIRS})
-ADD_DEFINITIONS(${X11_CFLAGS})
-
SET(skinned_SRCS
fft.c
balancebar.cpp
@@ -95,10 +90,7 @@ QT5_WRAP_UI(skinned_UIS_H ${skinned_UIS})
# the UI file won't be wrapped!
include_directories(${CMAKE_CURRENT_BINARY_DIR})
-IF(X11_FOUND)
ADD_LIBRARY(skinned MODULE ${skinned_SRCS} ${skinned_UIS_H} ${skinned_RCC_SRCS} ${skinned_HDRS})
add_dependencies(skinned libqmmpui libqmmp)
-target_link_libraries(skinned Qt5::Widgets Qt5::X11Extras libqmmpui libqmmp ${X11_LDFLAGS})
+target_link_libraries(skinned Qt5::Widgets libqmmpui libqmmp)
install(TARGETS skinned DESTINATION ${PLUGIN_DIR}/Ui)
-install(FILES scripts/kwin.sh DESTINATION ${CMAKE_INSTALL_DATADIR}/qmmp${APP_NAME_SUFFIX}/scripts)
-ENDIF(X11_FOUND)
diff --git a/src/plugins/Ui/skinned/display.cpp b/src/plugins/Ui/skinned/display.cpp
index 2ae37d3..04d90a2 100644
--- a/src/plugins/Ui/skinned/display.cpp
+++ b/src/plugins/Ui/skinned/display.cpp
@@ -345,7 +345,9 @@ void MainDisplay::mousePressEvent(QMouseEvent *e)
{
if (e->button() == Qt::RightButton)
m_mw->menu()->exec(e->globalPos());
+#ifndef Q_OS_HAIKU
else if(e->button() == Qt::LeftButton && m_aboutWidget->underMouse())
m_mw->about();
+#endif
PixmapWidget::mousePressEvent(e);
}
diff --git a/src/plugins/Ui/skinned/skinreader.cpp b/src/plugins/Ui/skinned/skinreader.cpp
index 160e9b4..6c66770 100644
index 0494af7..5b4bcbc 100644
--- a/src/plugins/Ui/skinned/skinreader.cpp
+++ b/src/plugins/Ui/skinned/skinreader.cpp
@@ -49,7 +49,7 @@ void SkinReader::generateThumbs()
QDir dir(Qmmp::configDir() + "skins");
QDir dir(Qmmp::configDir() + "/skins");
dir.setFilter( QDir::Files | QDir::Hidden | QDir::NoSymLinks);
QFileInfoList f = dir.entryInfoList();
-#if defined(Q_OS_WIN) && !defined(Q_OS_CYGWIN)
+#if (defined(Q_OS_WIN) && !defined(Q_OS_CYGWIN)) || defined(Q_OS_HAIKU)
dir.setPath(qApp->applicationDirPath()+"/skins");
#else
dir.setPath(qApp->applicationDirPath()+"/../share/qmmp/skins");
dir.setPath(Qmmp::dataPath());
diff --git a/src/plugins/Ui/skinned/symboldisplay.cpp b/src/plugins/Ui/skinned/symboldisplay.cpp
index 49a6ce3..d5a6e33 100644
--- a/src/plugins/Ui/skinned/symboldisplay.cpp
+++ b/src/plugins/Ui/skinned/symboldisplay.cpp
@@ -32,7 +32,7 @@ SymbolDisplay::SymbolDisplay (QWidget *parent, int digits)
connect (m_skin, SIGNAL (skinChanged()), this, SLOT (draw()));
draw();
for (int i=0; i<m_digits; ++i)
-#if defined(Q_OS_FREEBSD) || defined(Q_OS_WIN) || defined (Q_OS_MAC)
+#if defined(Q_OS_FREEBSD) || defined(Q_OS_WIN) || defined (Q_OS_MAC) || defined (Q_OS_HAIKU)
m_max += 9 * (int) pow(10,i);
#else
m_max += 9 * (int) exp10(i);
diff --git a/src/qmmp/qmmp.cpp b/src/qmmp/qmmp.cpp
index 337936b..27d93fb 100644
--- a/src/qmmp/qmmp.cpp
+++ b/src/qmmp/qmmp.cpp
@@ -54,6 +54,8 @@ QString Qmmp::configDir()
}
else
return m_configDir;
+#elif defined(Q_OS_HAIKU)
+ return m_configDir.isEmpty() ? QDir::homePath() +"/config/settings/Qmmp/" : m_configDir;
#else
return m_configDir.isEmpty() ? QDir::homePath() +"/.qmmp" : m_configDir;
#endif
@@ -86,9 +88,9 @@ QString Qmmp::pluginPath()
if(!path.isEmpty())
return path;
QString fallbackPath = qApp->applicationDirPath() + "/../lib/qmmp-" STR(QMMP_VERSION_MAJOR) "." STR(QMMP_VERSION_MINOR);
-#ifdef QMMP_PLUGIN_DIR
+#if defined(QMMP_PLUGIN_DIR) && !defined(Q_OS_HAIKU)
QDir dir(QMMP_PLUGIN_DIR);
-#elif defined(Q_OS_WIN) && !defined(Q_OS_CYGWIN)
+#elif defined(Q_OS_WIN) && !defined(Q_OS_CYGWIN) || defined(Q_OS_HAIKU)
QDir dir(qApp->applicationDirPath() + "/plugins");
#else
QDir dir(fallbackPath);
diff --git a/src/qmmpui/configdialog.cpp b/src/qmmpui/configdialog.cpp
index 88f12e1..8b69e59 100644
--- a/src/qmmpui/configdialog.cpp
+++ b/src/qmmpui/configdialog.cpp
@@ -56,6 +56,11 @@ ConfigDialog::ConfigDialog (QWidget *parent) : QDialog (parent)
m_insert_row = 0;
setAttribute(Qt::WA_QuitOnClose, false);
setAttribute(Qt::WA_DeleteOnClose, false);
+#if defined(Q_OS_HAIKU)
+ hide();
+ setWindowModality(Qt::NonModal);
+ show();
+#endif
m_ui->preferencesButton->setEnabled(false);
m_ui->informationButton->setEnabled(false);
m_ui->treeWidget->setItemDelegate(new RadioItemDelegate(this));
--
2.15.0
2.19.1
From 59b4362badc1144be44ed4069655a2e9ab0b03f5 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Wed, 13 Feb 2019 21:21:54 +1000
Subject: Ugly hack for fix crush on exit
diff --git a/src/app/main.cpp b/src/app/main.cpp
index 815c748..6a2e5d7 100644
--- a/src/app/main.cpp
+++ b/src/app/main.cpp
@@ -30,6 +30,10 @@
#include <windows.h>
#include <winuser.h>
#endif
+#ifdef __HAIKU__
+#include <signal.h>
+#include <unistd.h>
+#endif
#include <qmmp/qmmp.h>
#include "qmmpstarter.h"
@@ -67,5 +71,11 @@ int main(int argc, char *argv[])
return starter.exitCode();
a.setQuitOnLastWindowClosed(false);
+#ifdef __HAIKU__
+ int res = a.exec();
+ kill(::getpid(), SIGKILL);
+ return res;
+#else
return a.exec();
+#endif
}
--
2.19.1

View File

@@ -2,11 +2,11 @@ SUMMARY="Qt-based audio player with winamp/xmms skins support"
DESCRIPTION="This program is an audio-player, written with the help of the Qt library. \
The user interface is similar to winamp or xmms."
HOMEPAGE="http://qmmp.ylsoftware.com/"
COPYRIGHT="2006-2018 Qmmp Development Team"
COPYRIGHT="2006-2019 Qmmp Development Team"
LICENSE="GNU GPL v2"
REVISION="1"
SOURCE_URI="https://sourceforge.net/projects/qmmp-dev/files/qmmp/qmmp-$portVersion.tar.bz2"
CHECKSUM_SHA256="224904f073e3921a080dca008e6c99e3d606f5442d1df08835cba000a069ae66"
CHECKSUM_SHA256="4da9884b598ac7157a353178eb022f3d56017df3096b3c367b9ae8e8b5dd2cfe"
PATCHES="qmmp-$portVersion.patchset"
ADDITIONAL_FILES="
qmmp.rdef.in
@@ -30,23 +30,33 @@ REQUIRES="
lib:libavcodec$secondaryArchSuffix
lib:libavformat$secondaryArchSuffix
lib:libavutil$secondaryArchSuffix
lib:libbs2b$secondaryArchSuffix
lib:libcddb$secondaryArchSuffix
lib:libcdio$secondaryArchSuffix >= 18
lib:libcdio_cdda$secondaryArchSuffix
lib:libcdio_paranoia$secondaryArchSuffix
lib:libcurl$secondaryArchSuffix
lib:libenca$secondaryArchSuffix
lib:libfaad$secondaryArchSuffix
lib:libflac$secondaryArchSuffix
lib:libgl$secondaryArchSuffix
lib:libglib_2.0$secondaryArchSuffix
lib:libgme$secondaryArchSuffix
lib:libiconv$secondaryArchSuffix
lib:libintl$secondaryArchSuffix
lib:libmad$secondaryArchSuffix
lib:libmms$secondaryArchSuffix
lib:libmodplug$secondaryArchSuffix
lib:libmpcdec$secondaryArchSuffix
lib:libmpg123$secondaryArchSuffix
lib:libogg$secondaryArchSuffix
lib:libopus$secondaryArchSuffix
lib:libopusfile$secondaryArchSuffix
lib:libQt5Core$secondaryArchSuffix
lib:libQt5Gui$secondaryArchSuffix
lib:libQt5Widgets$secondaryArchSuffix
lib:libsndfile$secondaryArchSuffix
lib:libsoxr$secondaryArchSuffix
lib:libtag$secondaryArchSuffix
lib:libvorbis$secondaryArchSuffix
lib:libwavpack$secondaryArchSuffix
@@ -66,31 +76,43 @@ BUILD_REQUIRES="
devel:libarchive$secondaryArchSuffix
devel:libavcodec$secondaryArchSuffix
devel:libavformat$secondaryArchSuffix
devel:libbs2b$secondaryArchSuffix
devel:libcddb$secondaryArchSuffix
devel:libcdio$secondaryArchSuffix >= 18
devel:libcdio_cdda$secondaryArchSuffix
devel:libcdio_paranoia$secondaryArchSuffix
devel:libcurl$secondaryArchSuffix
devel:libenca$secondaryArchSuffix
devel:libfaad$secondaryArchSuffix
devel:libflac$secondaryArchSuffix
devel:libglib_2.0$secondaryArchSuffix
devel:libgme$secondaryArchSuffix
devel:libiconv$secondaryArchSuffix
devel:libintl$secondaryArchSuffix
devel:libmad$secondaryArchSuffix
devel:libmms$secondaryArchSuffix
devel:libmodplug$secondaryArchSuffix
devel:libmpcdec$secondaryArchSuffix
devel:libmpg123$secondaryArchSuffix
devel:libogg$secondaryArchSuffix
devel:libQt5Core$secondaryArchSuffix >= 5.7
devel:libopus$secondaryArchSuffix
devel:libopusfile$secondaryArchSuffix
devel:libQt5Core$secondaryArchSuffix >= 5.12
devel:libsndfile$secondaryArchSuffix
devel:libsoxr$secondaryArchSuffix
devel:libtag$secondaryArchSuffix
devel:libvorbis$secondaryArchSuffix
devel:libwavpack$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:cmake
cmd:find
cmd:flex
cmd:gcc$secondaryArchSuffix
cmd:lrelease$secondaryArchSuffix >= 5.12
cmd:make
cmd:pkg_config$secondaryArchSuffix
cmd:qmake$secondaryArchSuffix >= 5.7
cmd:qmake$secondaryArchSuffix >= 5.12
cmd:unzip
cmd:xargs
cmd:yacc
@@ -103,25 +125,36 @@ PATCH()
BUILD()
{
unzip
qmake
mkdir -p build
cd build
cmake .. $cmakeDirArgs \
-DCMAKE_INSTALL_PREFIX=$appsDir/Qmmp \
-DCMAKE_INSTALL_BINDIR=$appsDir/Qmmp \
-DPLUGIN_DIR=$appsDir/Qmmp/plugins \
-DCMAKE_BUILD_TYPE=RELEASE \
-DUSE_GNOMEHOTKEY=OFF \
-DUSE_HAL=OFF \
-DUSE_HOTKEY=OFF \
-DUSE_KDENOTIFY=OFF \
-DUSE_LADSPA=OFF \
-DUSE_MEDIAKIT=ON \
-DUSE_MPRIS=OFF \
-DUSE_QTMULTIMEDIA=OFF \
-DUSE_SKINNED=ON \
-DUSE_UDISKS2=OFF
make $jobArgs
}
INSTALL()
{
mkdir -p $appsDir/Qmmp
make install INSTALL_ROOT=$appsDir/Qmmp
mv -f $appsDir/Qmmp/bin/Qmmp $appsDir/Qmmp/
cp -rf plugins $appsDir/Qmmp/plugins
mkdir -p $libDir
mv -f $appsDir/Qmmp/lib/*.so* $libDir
mv -f $appsDir/Qmmp/lib/pkgconfig $libDir
mkdir -p $includeDir
mv -f $appsDir/Qmmp/include/* $includeDir
rm -rf $appsDir/Qmmp/{bin,include,lib,share}
cd build
make install
mkdir -p $appsDir/Qmmp/skins
cp -f $portDir/additional-files/*.wsz $appsDir/Qmmp/skins
mv $appsDir/Qmmp/qmmp $appsDir/Qmmp/Qmmp
rm -rf $dataDir
fixPkgconfig
prepareInstalledDevelLibs libqmmp libqmmpui