diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-02-21 11:52:44 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-02-21 11:52:44 +0000 |
| commit | 3aabf8541dbbf6e43debe6486ae9c3b8916b7555 (patch) | |
| tree | 7ca6259c0249e3fbc36f9376ef37f406f0f95c63 | |
| parent | d9142dde93fa47e5a33bb828cc369fe5ecd3edb0 (diff) | |
| download | qmmp-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.cpp | 36 | ||||
| -rw-r--r-- | src/plugins/General/hotkey/hotkeymanager.h | 5 | ||||
| -rw-r--r-- | src/plugins/General/hotkey/settingsdialog.cpp | 9 |
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; |
