aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/CommandLineOptions
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/CommandLineOptions')
-rw-r--r--src/plugins/CommandLineOptions/CMakeLists.txt2
-rw-r--r--src/plugins/CommandLineOptions/CommandLineOptions.pro2
-rw-r--r--src/plugins/CommandLineOptions/IncDecVolumeOption/CMakeLists.txt48
-rw-r--r--src/plugins/CommandLineOptions/IncDecVolumeOption/IncDecVolumeOption.pro26
-rw-r--r--src/plugins/CommandLineOptions/IncDecVolumeOption/incdecvolumeoption.cpp60
-rw-r--r--src/plugins/CommandLineOptions/IncDecVolumeOption/incdecvolumeoption.h25
6 files changed, 163 insertions, 0 deletions
diff --git a/src/plugins/CommandLineOptions/CMakeLists.txt b/src/plugins/CommandLineOptions/CMakeLists.txt
new file mode 100644
index 000000000..594671745
--- /dev/null
+++ b/src/plugins/CommandLineOptions/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_subdirectory(IncDecVolumeOption)
+
diff --git a/src/plugins/CommandLineOptions/CommandLineOptions.pro b/src/plugins/CommandLineOptions/CommandLineOptions.pro
new file mode 100644
index 000000000..1832a0166
--- /dev/null
+++ b/src/plugins/CommandLineOptions/CommandLineOptions.pro
@@ -0,0 +1,2 @@
+TEMPLATE = subdirs
+SUBDIRS = IncDecVolumeOption
diff --git a/src/plugins/CommandLineOptions/IncDecVolumeOption/CMakeLists.txt b/src/plugins/CommandLineOptions/IncDecVolumeOption/CMakeLists.txt
new file mode 100644
index 000000000..542f4fab2
--- /dev/null
+++ b/src/plugins/CommandLineOptions/IncDecVolumeOption/CMakeLists.txt
@@ -0,0 +1,48 @@
+project(libincdecvolumeoption)
+
+cmake_minimum_required(VERSION 2.4.0)
+
+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_BINARY_DIR}/../../../
+)
+
+# libqmmpui
+include_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../)
+link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmpui)
+
+SET(libincdecvolumeoption_SRCS
+ incdecvolumeoption.cpp
+)
+
+SET(libincdecvolumeoption_MOC_HDRS
+ incdecvolumeoption.h
+)
+
+QT4_ADD_RESOURCES(libincdecvolumeoption_RCC_SRCS ${libincdecvolumeoption_RCCS})
+
+QT4_WRAP_CPP(libincdecvolumeoption_MOC_SRCS ${libincdecvolumeoption_MOC_HDRS})
+
+
+# Don't forget to include output directory, otherwise
+# the UI file won't be wrapped!
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+ADD_LIBRARY(incdecvolumeoption SHARED ${libincdecvolumeoption_SRCS} ${libincdecvolumeoption_MOC_SRCS})
+target_link_libraries(incdecvolumeoption ${QT_LIBRARIES} -lqmmpui)
+install(TARGETS incdecvolumeoption DESTINATION ${LIB_DIR}/qmmp/CommandLineOptions)
diff --git a/src/plugins/CommandLineOptions/IncDecVolumeOption/IncDecVolumeOption.pro b/src/plugins/CommandLineOptions/IncDecVolumeOption/IncDecVolumeOption.pro
new file mode 100644
index 000000000..8b98e14db
--- /dev/null
+++ b/src/plugins/CommandLineOptions/IncDecVolumeOption/IncDecVolumeOption.pro
@@ -0,0 +1,26 @@
+include(../../plugins.pri)
+
+CONFIG += release \
+warn_on \
+plugin \
+ lib
+
+TARGET =$$PLUGINS_PREFIX/CommandLineOptions/incdecvolumeoption
+QMAKE_CLEAN =$$PLUGINS_PREFIX/CommandLineOptions/libincdecvolumeoption.so
+
+TEMPLATE = lib
+QMAKE_LIBDIR += ../../../../lib
+
+isEmpty(LIB_DIR){
+ LIB_DIR = /lib
+}
+target.path = $$LIB_DIR/qmmp/CommandLineOptions
+INSTALLS += target
+
+INCLUDEPATH += ../../../../src
+
+LIBS += -lqmmpui
+
+HEADERS += incdecvolumeoption.h
+
+SOURCES += incdecvolumeoption.cpp
diff --git a/src/plugins/CommandLineOptions/IncDecVolumeOption/incdecvolumeoption.cpp b/src/plugins/CommandLineOptions/IncDecVolumeOption/incdecvolumeoption.cpp
new file mode 100644
index 000000000..93a7dd21d
--- /dev/null
+++ b/src/plugins/CommandLineOptions/IncDecVolumeOption/incdecvolumeoption.cpp
@@ -0,0 +1,60 @@
+#include <QtPlugin>
+#include <QTranslator>
+
+#include "incdecvolumeoption.h"
+
+bool IncDecVolumeCommandLineOption::identify(const QString & str) const
+{
+ if (
+ str == QString("--volume-inc") ||
+ str == QString("--volume-dec")
+ )
+ {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+const QString IncDecVolumeCommandLineOption::helpString() const
+{
+ return QString(
+ "--volume-inc " + tr("Increase volume with step 5")+"\n"
+ "--volume-dec " + tr("Decrease volume with step 5")+"\n"
+ );
+}
+
+
+void IncDecVolumeCommandLineOption::executeCommand(const QString& opt_str, CommandLineManager* clm, Control* ctrl)
+{
+ int volume = qMax(clm->leftVolume(), clm->rightVolume());
+ int balance = 0;
+ int left = clm->leftVolume();
+ int right = clm->rightVolume();
+ if (left || right)
+ balance = (right - left)*100/volume;
+
+ if (opt_str == "--volume-inc")
+ {
+ volume = qMin (100, volume + 5);
+ }
+ else if (opt_str == "--volume-dec")
+ {
+ volume = qMax (0, volume - 5);
+ }
+ ctrl->setVolume(volume-qMax(balance,0)*volume/100,
+ volume+qMin(balance,0)*volume/100);
+}
+
+const QString IncDecVolumeCommandLineOption::name() const
+{
+ return "IncDecVolumeCommandLineOption";
+}
+
+QTranslator *IncDecVolumeCommandLineOption::createTranslator(QObject *parent)
+{
+ Q_UNUSED(parent);
+ return 0;
+}
+
+Q_EXPORT_PLUGIN(IncDecVolumeCommandLineOption)
diff --git a/src/plugins/CommandLineOptions/IncDecVolumeOption/incdecvolumeoption.h b/src/plugins/CommandLineOptions/IncDecVolumeOption/incdecvolumeoption.h
new file mode 100644
index 000000000..cc27260f6
--- /dev/null
+++ b/src/plugins/CommandLineOptions/IncDecVolumeOption/incdecvolumeoption.h
@@ -0,0 +1,25 @@
+#ifndef IncDecVolumeCommandLineOption_H
+#define IncDecVolumeCommandLineOption_H
+
+#include <QString>
+#include <QObject>
+
+#include <qmmpui/commandlineoption.h>
+#include <qmmpui/control.h>
+#include <qmmpui/commandlinemanager.h>
+
+
+class IncDecVolumeCommandLineOption : public QObject, public CommandLineOption
+{
+Q_OBJECT
+Q_INTERFACES(CommandLineOption)
+public:
+ virtual bool identify(const QString& opt_str)const;
+ virtual const QString name()const;
+ virtual const QString helpString()const;
+ virtual void executeCommand(const QString& opt_str, CommandLineManager* clm, Control* ctrl);
+ virtual QTranslator *createTranslator(QObject *parent);
+};
+
+#endif
+