qtmobility/examples/player/playercontrols.cpp
changeset 4 90517678cc4f
parent 1 2b40d63a9c3d
child 5 453da2cfceef
equal deleted inserted replaced
1:2b40d63a9c3d 4:90517678cc4f
    54     , playButton(0)
    54     , playButton(0)
    55     , stopButton(0)
    55     , stopButton(0)
    56     , nextButton(0)
    56     , nextButton(0)
    57     , previousButton(0)
    57     , previousButton(0)
    58     , muteButton(0)
    58     , muteButton(0)
    59 #ifdef Q_OS_SYMBIAN    
    59 #ifdef Q_OS_SYMBIAN
    60     , openButton(0)
    60     , openButton(0)
    61     , fullScreenButton(0)
    61     , fullScreenButton(0)
    62     , playListButton(0)
    62     , playListButton(0)
    63 #else
    63 #else
    64     , volumeSlider(0)
    64     , volumeSlider(0)
    65     , rateBox(0)
    65     , rateBox(0)
    66 #endif    
    66 #endif
    67 {
    67 {
    68     playButton = new QToolButton;
    68     playButton = new QToolButton(this);
    69     playButton->setIcon(style()->standardIcon(QStyle::SP_MediaPlay));
    69     playButton->setIcon(style()->standardIcon(QStyle::SP_MediaPlay));
    70 
    70 
    71     connect(playButton, SIGNAL(clicked()), this, SLOT(playClicked()));
    71     connect(playButton, SIGNAL(clicked()), this, SLOT(playClicked()));
    72 
    72 
    73     stopButton = new QToolButton;
    73     stopButton = new QToolButton(this);
    74     stopButton->setIcon(style()->standardIcon(QStyle::SP_MediaStop));
    74     stopButton->setIcon(style()->standardIcon(QStyle::SP_MediaStop));
    75     stopButton->setEnabled(false);
    75     stopButton->setEnabled(false);
    76 
    76 
    77     connect(stopButton, SIGNAL(clicked()), this, SIGNAL(stop()));
    77     connect(stopButton, SIGNAL(clicked()), this, SIGNAL(stop()));
    78 
    78 
    79     nextButton = new QToolButton;
    79     nextButton = new QToolButton(this);
    80     nextButton->setIcon(style()->standardIcon(QStyle::SP_MediaSkipForward));
    80     nextButton->setIcon(style()->standardIcon(QStyle::SP_MediaSkipForward));
    81 
    81 
    82     connect(nextButton, SIGNAL(clicked()), this, SIGNAL(next()));
    82     connect(nextButton, SIGNAL(clicked()), this, SIGNAL(next()));
    83 
    83 
    84     previousButton = new QToolButton;
    84     previousButton = new QToolButton(this);
    85     previousButton->setIcon(style()->standardIcon(QStyle::SP_MediaSkipBackward));
    85     previousButton->setIcon(style()->standardIcon(QStyle::SP_MediaSkipBackward));
    86 
    86 
    87     connect(previousButton, SIGNAL(clicked()), this, SIGNAL(previous()));
    87     connect(previousButton, SIGNAL(clicked()), this, SIGNAL(previous()));
    88 
    88 
    89     muteButton = new QToolButton;
    89     muteButton = new QToolButton(this);
    90     muteButton->setIcon(style()->standardIcon(QStyle::SP_MediaVolume));
    90     muteButton->setIcon(style()->standardIcon(QStyle::SP_MediaVolume));
    91 
    91 
    92     connect(muteButton, SIGNAL(clicked()), this, SLOT(muteClicked()));
    92     connect(muteButton, SIGNAL(clicked()), this, SLOT(muteClicked()));
    93 
    93 
    94 #ifdef Q_OS_SYMBIAN
    94 #ifndef Q_OS_SYMBIAN
    95 #else
    95     volumeSlider = new QSlider(Qt::Horizontal, this);
    96     volumeSlider = new QSlider(Qt::Horizontal);
    96 
       
    97 #ifndef Q_WS_MAEMO_5
    97     volumeSlider->setRange(0, 100);
    98     volumeSlider->setRange(0, 100);
    98 
    99 
    99     connect(volumeSlider, SIGNAL(sliderMoved(int)), this, SIGNAL(changeVolume(int)));
   100     connect(volumeSlider, SIGNAL(sliderMoved(int)), this, SIGNAL(changeVolume(int)));
   100 
   101 #endif
   101     rateBox = new QComboBox;
   102 
       
   103     rateBox = new QComboBox(this);
   102     rateBox->addItem("0.5x", QVariant(0.5));
   104     rateBox->addItem("0.5x", QVariant(0.5));
   103     rateBox->addItem("1.0x", QVariant(1.0));
   105     rateBox->addItem("1.0x", QVariant(1.0));
   104     rateBox->addItem("2.0x", QVariant(2.0));
   106     rateBox->addItem("2.0x", QVariant(2.0));
   105     rateBox->setCurrentIndex(1);
   107     rateBox->setCurrentIndex(1);
   106 
   108 
   107     connect(rateBox, SIGNAL(activated(int)), SLOT(updateRate()));
   109     connect(rateBox, SIGNAL(activated(int)), SLOT(updateRate()));
   108 
   110 
   109 #endif    
   111 #endif
   110 #ifdef Q_OS_SYMBIAN
   112 #ifdef Q_OS_SYMBIAN
   111     playButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
   113     playButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
   112     playButton->setMinimumSize(1, 1);
   114     playButton->setMinimumSize(1, 1);
   113     stopButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
   115     stopButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
   114     stopButton->setMinimumSize(1, 1);
   116     stopButton->setMinimumSize(1, 1);
   116     nextButton->setMinimumSize(1, 1);
   118     nextButton->setMinimumSize(1, 1);
   117     previousButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
   119     previousButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
   118     previousButton->setMinimumSize(1, 1);
   120     previousButton->setMinimumSize(1, 1);
   119     muteButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
   121     muteButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
   120     muteButton->setMinimumSize(1, 1);
   122     muteButton->setMinimumSize(1, 1);
   121     
   123 
   122     openButton = new QToolButton(this);
   124     openButton = new QToolButton(this);
   123     openButton->setIcon(style()->standardIcon(QStyle::SP_DirOpenIcon));
   125     openButton->setIcon(style()->standardIcon(QStyle::SP_DirOpenIcon));
   124     openButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
   126     openButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
   125     openButton->setMinimumSize(1, 1);
   127     openButton->setMinimumSize(1, 1);
   126     connect(openButton, SIGNAL(clicked()), this, SIGNAL(open()));
   128     connect(openButton, SIGNAL(clicked()), this, SIGNAL(open()));
   127     
   129 
   128     fullScreenButton = new QToolButton(this);
   130     fullScreenButton = new QToolButton(this);
   129     fullScreenButton->setIcon(style()->standardIcon(QStyle::SP_DesktopIcon));
   131     fullScreenButton->setIcon(style()->standardIcon(QStyle::SP_ComputerIcon));
   130     fullScreenButton->setCheckable(true);
   132     fullScreenButton->setCheckable(true);
   131     fullScreenButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
   133     fullScreenButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
   132     fullScreenButton->setMinimumSize(1, 1);
   134     fullScreenButton->setMinimumSize(1, 1);
   133     connect(fullScreenButton, SIGNAL(clicked(bool)), this, SIGNAL(fullScreen(bool)));
   135     connect(fullScreenButton, SIGNAL(toggled(bool)), this, SIGNAL(fullScreen(bool)));
   134     
   136 
   135     playListButton = new QToolButton(this);
   137     playListButton = new QToolButton(this);
   136     playListButton->setIcon(style()->standardIcon(QStyle::SP_FileDialogDetailedView));
   138     playListButton->setIcon(style()->standardIcon(QStyle::SP_FileDialogDetailedView));
   137     playListButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
   139     playListButton->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);
   138     playListButton->setMinimumSize(1, 1);
   140     playListButton->setMinimumSize(1, 1);
   139     connect(playListButton, SIGNAL(clicked(bool)), this, SIGNAL(openPlayList()));
   141     connect(playListButton, SIGNAL(clicked(bool)), this, SIGNAL(openPlayList()));
   140     
   142 
   141 #endif
   143 #endif
   142     
   144 
   143     QBoxLayout *layout = new QHBoxLayout;
   145     QBoxLayout *layout = new QHBoxLayout;
   144     layout->setMargin(0);
   146     layout->setMargin(0);
   145     layout->addWidget(stopButton);
   147     layout->addWidget(stopButton);
   146     layout->addWidget(previousButton);
   148     layout->addWidget(previousButton);
   147     layout->addWidget(playButton);
   149     layout->addWidget(playButton);
   149     layout->addWidget(muteButton);
   151     layout->addWidget(muteButton);
   150 #ifdef Q_OS_SYMBIAN
   152 #ifdef Q_OS_SYMBIAN
   151     layout->addWidget(openButton);
   153     layout->addWidget(openButton);
   152     layout->addWidget(playListButton);
   154     layout->addWidget(playListButton);
   153     layout->addWidget(fullScreenButton);
   155     layout->addWidget(fullScreenButton);
   154 #else    
   156 #else
   155     layout->addWidget(volumeSlider);
   157     if (volumeSlider)
   156     layout->addWidget(rateBox);
   158         layout->addWidget(volumeSlider);
       
   159 
       
   160     if (rateBox)
       
   161         layout->addWidget(rateBox);
   157 #endif
   162 #endif
   158     setLayout(layout);
   163     setLayout(layout);
   159 }
   164 }
   160 
   165 
   161 QMediaPlayer::State PlayerControls::state() const
   166 QMediaPlayer::State PlayerControls::state() const
   187 
   192 
   188 int PlayerControls::volume() const
   193 int PlayerControls::volume() const
   189 {
   194 {
   190 #ifdef Q_OS_SYMBIAN
   195 #ifdef Q_OS_SYMBIAN
   191     return 0;
   196     return 0;
   192 #else    
   197 #else
   193     return volumeSlider->value();
   198     return volumeSlider ? volumeSlider->value() : 0;
   194 #endif
   199 #endif
   195 }
   200 }
   196 
   201 
   197 void PlayerControls::setVolume(int volume)
   202 void PlayerControls::setVolume(int volume)
   198 {
   203 {
   199 #ifdef Q_OS_SYMBIAN
   204 #ifndef Q_OS_SYMBIAN
   200 #else    
   205     if (volumeSlider)
   201     volumeSlider->setValue(volume);
   206         volumeSlider->setValue(volume);
   202 #endif    
   207 #endif
   203 }
   208 }
   204 
   209 
   205 bool PlayerControls::isMuted() const
   210 bool PlayerControls::isMuted() const
   206 {
   211 {
   207     return playerMuted;
   212     return playerMuted;
   238 
   243 
   239 qreal PlayerControls::playbackRate() const
   244 qreal PlayerControls::playbackRate() const
   240 {
   245 {
   241 #ifdef Q_OS_SYMBIAN
   246 #ifdef Q_OS_SYMBIAN
   242     return 0;
   247     return 0;
   243 #else 
   248 #else
   244     return rateBox->itemData(rateBox->currentIndex()).toDouble();
   249     return rateBox->itemData(rateBox->currentIndex()).toDouble();
   245 #endif    
   250 #endif
   246 }
   251 }
   247 
   252 
   248 void PlayerControls::setPlaybackRate(float rate)
   253 void PlayerControls::setPlaybackRate(float rate)
   249 {
   254 {
   250 #ifdef Q_OS_SYMBIAN
   255 #ifndef Q_OS_SYMBIAN
   251 #else   
       
   252     for (int i=0; i<rateBox->count(); i++) {
   256     for (int i=0; i<rateBox->count(); i++) {
   253         if (qFuzzyCompare(rate, float(rateBox->itemData(i).toDouble()))) {
   257         if (qFuzzyCompare(rate, float(rateBox->itemData(i).toDouble()))) {
   254             rateBox->setCurrentIndex(i);
   258             rateBox->setCurrentIndex(i);
   255             return;
   259             return;
   256         }
   260         }
   257     }
   261     }
   258 
   262 
   259     rateBox->addItem( QString("%1x").arg(rate), QVariant(rate));
   263     rateBox->addItem( QString("%1x").arg(rate), QVariant(rate));
   260     rateBox->setCurrentIndex(rateBox->count()-1);
   264     rateBox->setCurrentIndex(rateBox->count()-1);
   261 #endif    
   265 #endif
   262 }
   266 }
   263 
   267 
   264 void PlayerControls::updateRate()
   268 void PlayerControls::updateRate()
   265 {
   269 {
   266 #ifdef Q_OS_SYMBIAN
   270 #ifndef Q_OS_SYMBIAN
   267 #else 
       
   268     emit changeRate(playbackRate());
   271     emit changeRate(playbackRate());
   269 #endif    
   272 #endif
   270 }
   273 }