summaryrefslogtreecommitdiffstats
path: root/demos/player/playercontrols.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'demos/player/playercontrols.cpp')
-rw-r--r--demos/player/playercontrols.cpp67
1 files changed, 66 insertions, 1 deletions
diff --git a/demos/player/playercontrols.cpp b/demos/player/playercontrols.cpp
index bf4d96b2fd..103b4af5b4 100644
--- a/demos/player/playercontrols.cpp
+++ b/demos/player/playercontrols.cpp
@@ -46,7 +46,7 @@
#include <QtGui/qtoolbutton.h>
#include <QtGui/qcombobox.h>
-PlayerControls::PlayerControls(QWidget *parent)
+PlayerControls::PlayerControls(QWidget *parent, QMediaPlayer *player)
: QWidget(parent)
, playerState(QMediaPlayer::StoppedState)
, playerMuted(false)
@@ -58,6 +58,11 @@ PlayerControls::PlayerControls(QWidget *parent)
, volumeSlider(0)
, rateBox(0)
{
+#ifdef Q_OS_SYMBIAN
+ initRemCon();
+#endif // Q_OS_SYMBIAN
+ iplayer = player;
+
playButton = new QToolButton(this);
playButton->setIcon(style()->standardIcon(QStyle::SP_MediaPlay));
@@ -115,6 +120,13 @@ PlayerControls::PlayerControls(QWidget *parent)
setLayout(layout);
}
+PlayerControls::~PlayerControls()
+{
+#ifdef Q_OS_SYMBIAN
+ delete interfaceSelector;
+#endif
+}
+
QMediaPlayer::State PlayerControls::state() const
{
return playerState;
@@ -209,3 +221,56 @@ void PlayerControls::updateRate()
{
emit changeRate(playbackRate());
}
+
+#ifdef Q_OS_SYMBIAN
+void PlayerControls::MrccatoCommand(TRemConCoreApiOperationId aOperationId, TRemConCoreApiButtonAction aButtonAct)
+{
+ if (!coreTarget)
+ return;
+
+ switch (aOperationId){
+ case ERemConCoreApiVolumeUp:
+ if ((aButtonAct == ERemConCoreApiButtonClick) ||
+ (aButtonAct == ERemConCoreApiButtonPress) ||
+ (aButtonAct == ERemConCoreApiButtonRelease))
+ emit changeVolume((iplayer->volume()) + 10);
+ break;
+ case ERemConCoreApiVolumeDown:
+ if ((aButtonAct == ERemConCoreApiButtonClick) ||
+ (aButtonAct == ERemConCoreApiButtonPress) ||
+ (aButtonAct == ERemConCoreApiButtonRelease))
+ emit changeVolume((iplayer->volume()) - 10);
+ break;
+ case ERemConCoreApiPausePlayFunction:
+ if (aButtonAct == ERemConCoreApiButtonClick)
+ playClicked();
+ break;
+ case ERemConCoreApiStop:
+ if (aButtonAct == ERemConCoreApiButtonClick)
+ emit stop();
+ break;
+ case ERemConCoreApiBackward:
+ if (aButtonAct == ERemConCoreApiButtonClick)
+ emit previous();
+ break;
+ case ERemConCoreApiForward:
+ if (aButtonAct == ERemConCoreApiButtonClick)
+ emit next();
+ break;
+ }
+}
+
+void PlayerControls::initRemCon()
+{
+ try {
+ QT_TRAP_THROWING(
+ interfaceSelector = CRemConInterfaceSelector::NewL();
+ coreTarget = CRemConCoreApiTarget::NewL(*interfaceSelector, *this);
+ interfaceSelector->OpenTargetL());
+ } catch (const std::exception &e) {
+ delete interfaceSelector;
+ interfaceSelector = 0;
+ coreTarget = 0;
+ }
+}
+#endif // Q_OS_SYMBIAN