aboutsummaryrefslogtreecommitdiff
path: root/src/app/builtincommandlineoption.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-07-01 19:34:48 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2011-07-01 19:34:48 +0000
commit3ce26ad80c1abb283576b9f654df75372eda0cc3 (patch)
treeecf7f123116405adea60e1ce614808f6ea515c82 /src/app/builtincommandlineoption.cpp
parentb8b7804fcc229e9c34e18dc3ec6dfafd2e3485b0 (diff)
downloadqmmp-3ce26ad80c1abb283576b9f654df75372eda0cc3.tar.gz
qmmp-3ce26ad80c1abb283576b9f654df75372eda0cc3.tar.bz2
qmmp-3ce26ad80c1abb283576b9f654df75372eda0cc3.zip
renamed application directory
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2253 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/app/builtincommandlineoption.cpp')
-rw-r--r--src/app/builtincommandlineoption.cpp164
1 files changed, 164 insertions, 0 deletions
diff --git a/src/app/builtincommandlineoption.cpp b/src/app/builtincommandlineoption.cpp
new file mode 100644
index 000000000..29c2a50f5
--- /dev/null
+++ b/src/app/builtincommandlineoption.cpp
@@ -0,0 +1,164 @@
+/***************************************************************************
+ * Copyright (C) 2008-2011 by Ilya Kotov *
+ * forkotov02@hotmail.ru *
+ * *
+ * 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 *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ * This program is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
+ * GNU General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ ***************************************************************************/
+
+#include <QApplication>
+#include <qmmp/soundcore.h>
+#include <qmmpui/mediaplayer.h>
+#include "builtincommandlineoption.h"
+
+BuiltinCommandLineOption::BuiltinCommandLineOption(QObject *parent) : QObject(parent)
+{
+ m_options << "--enqueue" << "-e"
+ << "--play" << "-p"
+ << "--pause" << "-u"
+ << "--play-pause" << "-t"
+ << "--stop" << "-s"
+ << "--jump-to-file" << "-j"
+ << "--quit" << "-q"
+ << "--volume"
+ << "--next" << "--previous"
+ << "--toggle-visibility"
+ << "--add-file" << "--add-dir";
+}
+
+BuiltinCommandLineOption::~BuiltinCommandLineOption()
+{
+}
+
+// BuiltinCommandLineOption methods implementation
+bool BuiltinCommandLineOption::identify(const QString &str) const
+{
+ return m_options.contains(str);
+}
+
+const QString BuiltinCommandLineOption::helpString() const
+{
+ return QString(
+ "-e, --enqueue "+tr("Don't clear the playlist") + "\n" +
+ "-p, --play "+tr("Start playing current song")+"\n" +
+ "-u, --pause "+tr("Pause current song")+ "\n"
+ "-t, --play-pause "+tr("Pause if playing, play otherwise")+ "\n"
+ "-s, --stop "+tr("Stop current song")+ "\n" +
+ "-j, --jump-to-file "+tr("Display Jump to File dialog")+ "\n" +
+ "-q, --quit "+tr("Quit application") + "\n" +
+ "--volume <0..100> "+tr("Set playback volume (example: qmmp --volume 20)") + "\n"
+ "--next "+tr("Skip forward in playlist")+ "\n" +
+ "--previous "+tr("Skip backwards in playlist")+"\n" +
+ "--toggle-visibility "+tr("Show/hide application")+ "\n" +
+ "--add-file "+tr("Display Add File dialog")+ "\n" +
+ "--add-dir "+tr("Display Add Directory dialog")
+ );
+}
+
+void BuiltinCommandLineOption::executeCommand(const QString &option_string,
+ const QStringList &args,
+ const QString &cwd/*,
+ MainWindow *mw*/)
+{
+ SoundCore *core = SoundCore::instance();
+ MediaPlayer *player = MediaPlayer::instance();
+ if(!core || !player)
+ return;
+ /*if(option_string == "--enqueue" || option_string == "-e" || option_string.isEmpty())
+ {
+ //QStringList args = commands.value(key);
+ if(args.isEmpty())
+ return;
+ QStringList full_path_list;
+ foreach(QString s, args)
+ {
+ if ((s.startsWith("/")) || (s.contains("://"))) //is it absolute path or url?
+ full_path_list << s;
+ else
+ full_path_list << cwd + "/" + s;
+ }
+ //clear playlist if option is empty
+ //mw->setFileList(full_path_list, option_string.isEmpty());
+ }
+ else*/ if (option_string == "--play" || option_string == "-p")
+ {
+ player->play();
+ }
+ else if (option_string == "--stop" || option_string == "-s")
+ {
+ core->stop();
+ }
+ else if (option_string == "--pause" || option_string == "-u")
+ {
+ core->pause();
+ }
+ else if (option_string == "--next")
+ {
+ player->next();
+ if (core->state() == Qmmp::Stopped)
+ player->play();
+ }
+ else if (option_string == "--previous")
+ {
+ player->previous();
+ if (core->state() == Qmmp::Stopped)
+ player->play();
+ }
+ else if (option_string == "--play-pause" || option_string == "-t")
+ {
+ //mw->playPause();
+ }
+ else if (option_string == "--jump-to-file" || option_string == "-j")
+ {
+ //mw->jumpToFile();
+ }
+ else if (option_string == "--quit" || option_string == "-q")
+ {
+ //mw->close();
+ qApp->closeAllWindows();
+ }
+ else if (option_string == "--toggle-visibility")
+ {
+ //mw->toggleVisibility();
+ }
+ else if (option_string == "--add-file")
+ {
+ //mw->addFile();
+ }
+ else if (option_string == "--add-dir")
+ {
+ //mw->addDir();
+ }
+ else if (option_string == "--volume" && !args.isEmpty())
+ {
+ bool ok = false;
+ int volume = args.at(0).toInt(&ok);
+ if (ok)
+ core->setVolume(volume,volume);
+ }
+}
+
+QHash <QString, QStringList> BuiltinCommandLineOption::splitArgs(const QStringList &args) const
+{
+ QHash <QString, QStringList> commands;
+ foreach(QString arg, args)
+ {
+ if(arg.startsWith("-") || arg.startsWith("--"))
+ commands.insert(arg, QStringList());
+ else if(!commands.isEmpty())
+ commands[commands.keys().last()] << arg;
+ }
+ return commands;
+}