aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/CommandLineOptions/IncDecVolumeOption
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-06-11 13:03:47 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-06-11 13:03:47 +0000
commit05881204465655b9657891cddb195e37dd5dd020 (patch)
tree1ed20dadbc38f361dda65e2771bddd71a4a599f5 /src/plugins/CommandLineOptions/IncDecVolumeOption
parentda088637dea9ba5aed112e88deb933201de8947a (diff)
downloadqmmp-05881204465655b9657891cddb195e37dd5dd020.tar.gz
qmmp-05881204465655b9657891cddb195e37dd5dd020.tar.bz2
qmmp-05881204465655b9657891cddb195e37dd5dd020.zip
enabled command line plugins support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@401 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/CommandLineOptions/IncDecVolumeOption')
-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
4 files changed, 159 insertions, 0 deletions
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
+