aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2012-02-21 11:52:44 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2012-02-21 11:52:44 +0000
commit3aabf8541dbbf6e43debe6486ae9c3b8916b7555 (patch)
tree7ca6259c0249e3fbc36f9376ef37f406f0f95c63
parentd9142dde93fa47e5a33bb828cc369fe5ecd3edb0 (diff)
downloadqmmp-3aabf8541dbbf6e43debe6486ae9c3b8916b7555.tar.gz
qmmp-3aabf8541dbbf6e43debe6486ae9c3b8916b7555.tar.bz2
qmmp-3aabf8541dbbf6e43debe6486ae9c3b8916b7555.zip
added 'jump to track' and 'forward/rewind' global hotkeys
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2628 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/plugins/General/hotkey/hotkeymanager.cpp36
-rw-r--r--src/plugins/General/hotkey/hotkeymanager.h5
-rw-r--r--src/plugins/General/hotkey/settingsdialog.cpp9
3 files changed, 36 insertions, 14 deletions
diff --git a/src/plugins/General/hotkey/hotkeymanager.cpp b/src/plugins/General/hotkey/hotkeymanager.cpp
index 64b3ec27a..4f8fc1e7d 100644
--- a/src/plugins/General/hotkey/hotkeymanager.cpp
+++ b/src/plugins/General/hotkey/hotkeymanager.cpp
@@ -66,6 +66,9 @@ quint32 Hotkey::defaultKey(int act)
keyMap[SHOW_HIDE] = 0;
keyMap[VOLUME_UP] = XF86XK_AudioRaiseVolume;
keyMap[VOLUME_DOWN] = XF86XK_AudioLowerVolume;
+ keyMap[FORWARD] = 0;
+ keyMap[REWIND] = 0;
+ keyMap[JUMP_TO_TRACK] = 0;
return keyMap[act];
}
@@ -75,7 +78,7 @@ HotkeyManager::HotkeyManager(QObject *parent) : QObject(parent)
WId rootWindow = QX11Info::appRootWindow();
QSettings settings(Qmmp::configFile(), QSettings::IniFormat); //load settings
settings.beginGroup("Hotkey");
- for (int i = Hotkey::PLAY, j = 0; i <= Hotkey::VOLUME_DOWN; ++i, ++j)
+ for (int i = Hotkey::PLAY, j = 0; i <= Hotkey::JUMP_TO_TRACK; ++i, ++j)
{
quint32 key = settings.value(QString("key_%1").arg(i), Hotkey::defaultKey(i)).toUInt();
quint32 mod = settings.value(QString("modifiers_%1").arg(i), 0).toUInt();
@@ -135,6 +138,8 @@ bool HotkeyManager::eventFilter(QObject* o, QEvent* e)
QKeyEvent* k = static_cast<QKeyEvent*>(e);
quint32 key = XKeycodeToKeysym(QX11Info::display(), k->nativeScanCode (), 0);
quint32 mod = k->nativeModifiers ();
+ SoundCore *core = SoundCore::instance();
+ MediaPlayer *player = MediaPlayer::instance();
foreach(Hotkey *hotkey, m_grabbedKeys)
{
if (hotkey->key != key || hotkey->mod != mod)
@@ -144,32 +149,32 @@ bool HotkeyManager::eventFilter(QObject* o, QEvent* e)
switch (hotkey->action)
{
case Hotkey::PLAY:
- MediaPlayer::instance()->play();
+ player->play();
break;
case Hotkey::STOP:
- MediaPlayer::instance()->stop();
+ player->stop();
break;
case Hotkey::PAUSE:
- SoundCore::instance()->pause();
+ core->pause();
break;
case Hotkey::PLAY_PAUSE:
- if (SoundCore::instance()->state() == Qmmp::Stopped)
+ if (core->state() == Qmmp::Stopped)
MediaPlayer::instance()->play();
- else if (SoundCore::instance()->state() != Qmmp::FatalError)
- SoundCore::instance()->pause();
+ else if (core->state() != Qmmp::FatalError)
+ core->pause();
break;
case Hotkey::NEXT:
- MediaPlayer::instance()->next();
+ player->next();
break;
case Hotkey::PREVIOUS:
- MediaPlayer::instance()->previous();
+ player->previous();
break;
case Hotkey::SHOW_HIDE:
UiHelper::instance()->toggleVisibility();
break;
case Hotkey::VOLUME_UP:
case Hotkey::VOLUME_DOWN:
- SoundCore *core = SoundCore::instance();
+ {
int volume = qMax(core->leftVolume(), core->rightVolume());
int balance = 0;
int left = core->leftVolume();
@@ -182,7 +187,18 @@ bool HotkeyManager::eventFilter(QObject* o, QEvent* e)
volume = qMax (0, volume - 5);
core->setVolume(volume-qMax(balance,0)*volume/100,
volume+qMin(balance,0)*volume/100);
+ }
break;
+ case Hotkey::FORWARD:
+ core->seek(core->elapsed() + 5000);
+ break;
+ case Hotkey::REWIND:
+ core->seek(qMax(qint64(0), core->elapsed() - 5000));
+ break;
+ case Hotkey::JUMP_TO_TRACK:
+ UiHelper::instance()->jumpToTrack();
+ break;
+
}
qApp->processEvents();
}
diff --git a/src/plugins/General/hotkey/hotkeymanager.h b/src/plugins/General/hotkey/hotkeymanager.h
index d4d53078f..a2c2ab5b3 100644
--- a/src/plugins/General/hotkey/hotkeymanager.h
+++ b/src/plugins/General/hotkey/hotkeymanager.h
@@ -44,7 +44,10 @@ public:
PREVIOUS,
SHOW_HIDE,
VOLUME_UP,
- VOLUME_DOWN
+ VOLUME_DOWN,
+ FORWARD,
+ REWIND,
+ JUMP_TO_TRACK
};
Hotkey()
diff --git a/src/plugins/General/hotkey/settingsdialog.cpp b/src/plugins/General/hotkey/settingsdialog.cpp
index bc4e897e5..93df935db 100644
--- a/src/plugins/General/hotkey/settingsdialog.cpp
+++ b/src/plugins/General/hotkey/settingsdialog.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2009 by Ilya Kotov *
+ * Copyright (C) 2009-2012 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -38,7 +38,7 @@ SettingsDialog::SettingsDialog(QWidget *parent)
ui.tableWidget->verticalHeader()->setResizeMode(QHeaderView::Fixed);
ui.tableWidget->verticalHeader()->hide();
ui.tableWidget->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
- ui.tableWidget->setRowCount (9);
+ ui.tableWidget->setRowCount (12);
ui.tableWidget->setItem(0,0, new QTableWidgetItem(tr("Play")));
ui.tableWidget->setItem(1,0, new QTableWidgetItem(tr("Stop")));
ui.tableWidget->setItem(2,0, new QTableWidgetItem(tr("Pause")));
@@ -48,10 +48,13 @@ SettingsDialog::SettingsDialog(QWidget *parent)
ui.tableWidget->setItem(6,0, new QTableWidgetItem(tr("Show/Hide")));
ui.tableWidget->setItem(7,0, new QTableWidgetItem(tr("Volume +")));
ui.tableWidget->setItem(8,0, new QTableWidgetItem(tr("Volume -")));
+ ui.tableWidget->setItem(9,0, new QTableWidgetItem(tr("Forward 5 seconds")));
+ ui.tableWidget->setItem(10,0, new QTableWidgetItem(tr("Rewind 5 seconds")));
+ ui.tableWidget->setItem(11,0, new QTableWidgetItem(tr("Jump to track")));
QSettings settings(Qmmp::configFile(), QSettings::IniFormat);
settings.beginGroup("Hotkey");
- for (int i = Hotkey::PLAY, j = 0; i <= Hotkey::VOLUME_DOWN; ++i, ++j)
+ for (int i = Hotkey::PLAY, j = 0; i <= Hotkey::JUMP_TO_TRACK; ++i, ++j)
{
Hotkey *hotkey = new Hotkey;
hotkey->action = i;