videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybacktoolbar.cpp
author hgs
Thu, 24 Jun 2010 09:49:13 +0300
changeset 41 229f037ce963
parent 39 f6d44a0cd476
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
37
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:  Implementation of QMPXVideoPlaybackToolBar
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
41
hgs
parents: 39
diff changeset
    18
// Version : %version:  7 %
37
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include <QTimer>
hgs
parents:
diff changeset
    23
#include <QGraphicsLayout>
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
#include <hbaction.h>
hgs
parents:
diff changeset
    26
#include <hbtoolbar.h>
hgs
parents:
diff changeset
    27
#include <hbinstance.h>
hgs
parents:
diff changeset
    28
#include <hbtoolbutton.h>
hgs
parents:
diff changeset
    29
#include <w32std.h>
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
#include "mpxvideo_debug.h"
hgs
parents:
diff changeset
    32
#include "hbvideobaseplaybackview.h"
hgs
parents:
diff changeset
    33
#include "mpxvideoplaybacktoolbar.h"
hgs
parents:
diff changeset
    34
#include "mpxcommonvideoplaybackview.hrh"
hgs
parents:
diff changeset
    35
#include "mpxvideoplaybackdocumentloader.h"
hgs
parents:
diff changeset
    36
#include "mpxvideoplaybackviewfiledetails.h"
hgs
parents:
diff changeset
    37
#include "mpxvideoplaybackcontrolscontroller.h"
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
const int KSeekStartTimeOut = 700;
hgs
parents:
diff changeset
    40
const int KRetrieveButtonTimeOut = 1000;
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    43
// QMPXVideoPlaybackToolBar::QMPXVideoPlaybackToolBar()
hgs
parents:
diff changeset
    44
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    45
//
41
hgs
parents: 39
diff changeset
    46
QMPXVideoPlaybackToolBar::QMPXVideoPlaybackToolBar(
37
hgs
parents:
diff changeset
    47
        QMPXVideoPlaybackControlsController* controller )
hgs
parents:
diff changeset
    48
    : mController( controller )
hgs
parents:
diff changeset
    49
    , mSeekStartTimer( NULL )
hgs
parents:
diff changeset
    50
    , mRetrieveButtonTimer( NULL )
hgs
parents:
diff changeset
    51
    , mSeekingState( EMPXNotSeeking )
hgs
parents:
diff changeset
    52
    , mInitialized( false )
hgs
parents:
diff changeset
    53
    , mPosition( 0 )
hgs
parents:
diff changeset
    54
    , mDuration( 0 )
hgs
parents:
diff changeset
    55
    , mAspectRatio( EMPXPbvCmdNaturalAspectRatio )
hgs
parents:
diff changeset
    56
{
hgs
parents:
diff changeset
    57
    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackToolBar::QMPXVideoPlaybackToolBar"));
hgs
parents:
diff changeset
    58
hgs
parents:
diff changeset
    59
    mToolBar = mController->view()->toolBar();
hgs
parents:
diff changeset
    60
    mToolBar->setOrientation( Qt::Horizontal );
41
hgs
parents: 39
diff changeset
    61
37
hgs
parents:
diff changeset
    62
    mController->view()->hideItems( Hb::ToolBarItem );
hgs
parents:
diff changeset
    63
hgs
parents:
diff changeset
    64
    initialize();
hgs
parents:
diff changeset
    65
}
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    68
// QMPXVideoPlaybackToolBar::~QMPXVideoPlaybackToolBar()
hgs
parents:
diff changeset
    69
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    70
//
hgs
parents:
diff changeset
    71
QMPXVideoPlaybackToolBar::~QMPXVideoPlaybackToolBar()
hgs
parents:
diff changeset
    72
{
hgs
parents:
diff changeset
    73
    MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::~QMPXVideoPlaybackToolBar()"));
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
    mToolBar->clearActions();
hgs
parents:
diff changeset
    76
hgs
parents:
diff changeset
    77
    for ( int i = 0 ; i < mButtonIcons.count() ; i++ )
hgs
parents:
diff changeset
    78
    {
hgs
parents:
diff changeset
    79
        if ( mButtonIcons[i] )
hgs
parents:
diff changeset
    80
        {
hgs
parents:
diff changeset
    81
            delete mButtonIcons[i];
hgs
parents:
diff changeset
    82
        }
hgs
parents:
diff changeset
    83
    }
hgs
parents:
diff changeset
    84
    mButtonIcons.clear();
hgs
parents:
diff changeset
    85
hgs
parents:
diff changeset
    86
    if ( mSeekStartTimer )
hgs
parents:
diff changeset
    87
    {
hgs
parents:
diff changeset
    88
        if ( mSeekStartTimer->isActive() )
hgs
parents:
diff changeset
    89
        {
hgs
parents:
diff changeset
    90
            mSeekStartTimer->stop();
hgs
parents:
diff changeset
    91
        }
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
        delete mSeekStartTimer;
hgs
parents:
diff changeset
    94
        mSeekStartTimer = NULL;
hgs
parents:
diff changeset
    95
    }
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
    if ( mRetrieveButtonTimer )
hgs
parents:
diff changeset
    98
    {
hgs
parents:
diff changeset
    99
        if ( mRetrieveButtonTimer->isActive() )
hgs
parents:
diff changeset
   100
        {
hgs
parents:
diff changeset
   101
            mRetrieveButtonTimer->stop();
hgs
parents:
diff changeset
   102
        }
hgs
parents:
diff changeset
   103
hgs
parents:
diff changeset
   104
        delete mRetrieveButtonTimer;
hgs
parents:
diff changeset
   105
        mRetrieveButtonTimer = NULL;
hgs
parents:
diff changeset
   106
    }
hgs
parents:
diff changeset
   107
}
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   110
// QMPXVideoPlaybackToolBar::initialize()
hgs
parents:
diff changeset
   111
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   112
//
hgs
parents:
diff changeset
   113
void QMPXVideoPlaybackToolBar::initialize()
hgs
parents:
diff changeset
   114
{
hgs
parents:
diff changeset
   115
    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackToolBar::initialize()"));
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
    //
hgs
parents:
diff changeset
   118
    // Don't need to initialize buttons once it gets initialized
hgs
parents:
diff changeset
   119
    //
hgs
parents:
diff changeset
   120
    if ( ! mInitialized )
hgs
parents:
diff changeset
   121
    {
hgs
parents:
diff changeset
   122
        mInitialized = true;
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
        QActionGroup *actionsGroup = new QActionGroup( mToolBar );
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
        for ( int i = 0 ; i < EMPXButtonCount ; i++ )
hgs
parents:
diff changeset
   127
        {
hgs
parents:
diff changeset
   128
            mButtonActions.append( new HbAction( actionsGroup ) );
hgs
parents:
diff changeset
   129
        }
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
        for ( int i = 0 ; i < EMPXIconCount ; i++ )
hgs
parents:
diff changeset
   132
        {
hgs
parents:
diff changeset
   133
            mButtonIcons.append( new HbIcon() );
hgs
parents:
diff changeset
   134
        }
hgs
parents:
diff changeset
   135
hgs
parents:
diff changeset
   136
        //
hgs
parents:
diff changeset
   137
        // RW button
hgs
parents:
diff changeset
   138
        //
hgs
parents:
diff changeset
   139
        mButtonIcons[EMPXRWIcon]->setIconName( "qtg_mono_previous" );
hgs
parents:
diff changeset
   140
        mButtonActions[EMPX2ndButton]->setIcon( *mButtonIcons[EMPXRWIcon] );
hgs
parents:
diff changeset
   141
hgs
parents:
diff changeset
   142
        //
hgs
parents:
diff changeset
   143
        // Play/Pause button
hgs
parents:
diff changeset
   144
        //
hgs
parents:
diff changeset
   145
        mButtonIcons[EMPXPlayIcon]->setIconName( "qtg_mono_play" );
hgs
parents:
diff changeset
   146
        mButtonIcons[EMPXPauseIcon]->setIconName( "qtg_mono_pause" );
hgs
parents:
diff changeset
   147
        mButtonActions[EMPX3rdButton]->setIcon( *mButtonIcons[EMPXPlayIcon] );
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
        //
hgs
parents:
diff changeset
   150
        // FF button
hgs
parents:
diff changeset
   151
        //
hgs
parents:
diff changeset
   152
        mButtonIcons[EMPXFFIcon]->setIconName( "qtg_mono_next" );
hgs
parents:
diff changeset
   153
        mButtonActions[EMPX4thButton]->setIcon( *mButtonIcons[EMPXFFIcon] );
hgs
parents:
diff changeset
   154
hgs
parents:
diff changeset
   155
        //
hgs
parents:
diff changeset
   156
        // Details button
hgs
parents:
diff changeset
   157
        //
hgs
parents:
diff changeset
   158
        mButtonIcons[EMPXDetailsIcon]->setIconName( "qtg_mono_info" );
hgs
parents:
diff changeset
   159
        mButtonActions[EMPX5thButton]->setIcon( *mButtonIcons[EMPXDetailsIcon] );
hgs
parents:
diff changeset
   160
hgs
parents:
diff changeset
   161
        //
hgs
parents:
diff changeset
   162
        // Aspect ratio buttons
hgs
parents:
diff changeset
   163
        //
hgs
parents:
diff changeset
   164
        mButtonIcons[EMPXNaturalIcon]->setIconName( "qtg_mono_aspect_ratio_natural" );
hgs
parents:
diff changeset
   165
        mButtonIcons[EMPXStretchIcon]->setIconName( "qtg_mono_aspect_ratio_stretched" );
hgs
parents:
diff changeset
   166
        mButtonIcons[EMPXZoomIcon]->setIconName( "qtg_mono_aspect_ratio_zoom" );
hgs
parents:
diff changeset
   167
        mButtonActions[EMPX1stButton]->setIcon( *mButtonIcons[EMPXNaturalIcon] );
hgs
parents:
diff changeset
   168
hgs
parents:
diff changeset
   169
        //
41
hgs
parents: 39
diff changeset
   170
        // Attach/Share button
37
hgs
parents:
diff changeset
   171
        //
hgs
parents:
diff changeset
   172
        mButtonIcons[EMPXAttachIcon]->setIconName( "qtg_mono_attach" );
hgs
parents:
diff changeset
   173
        mButtonIcons[EMPXShareIcon]->setIconName( "qtg_mono_share" );
hgs
parents:
diff changeset
   174
hgs
parents:
diff changeset
   175
        for ( int i = 0 ; i < EMPXButtonCount ; i++ )
hgs
parents:
diff changeset
   176
        {
hgs
parents:
diff changeset
   177
            mButtonActions[i]->setCheckable( false );
hgs
parents:
diff changeset
   178
            mToolBar->addAction( mButtonActions[i] );
hgs
parents:
diff changeset
   179
        }
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
        mDuration = (qreal)mController->fileDetails()->mDuration / (qreal)KPbMilliMultiplier;
hgs
parents:
diff changeset
   182
hgs
parents:
diff changeset
   183
        //
41
hgs
parents: 39
diff changeset
   184
        // Create a timer for seeking.
37
hgs
parents:
diff changeset
   185
        // We will issue SetPosition every KSeekingTimeOut msec to show the current frame to user
hgs
parents:
diff changeset
   186
        //
hgs
parents:
diff changeset
   187
        mSeekStartTimer = new QTimer();
hgs
parents:
diff changeset
   188
        mSeekStartTimer->setSingleShot( true );
hgs
parents:
diff changeset
   189
        mSeekStartTimer->setInterval( KSeekStartTimeOut );
41
hgs
parents: 39
diff changeset
   190
37
hgs
parents:
diff changeset
   191
        //
hgs
parents:
diff changeset
   192
        // get window size
hgs
parents:
diff changeset
   193
        //
41
hgs
parents: 39
diff changeset
   194
        RWindow *window = mController->view()->getWindow();
37
hgs
parents:
diff changeset
   195
        TRect displayRect = TRect( TPoint( window->Position() ), TSize( window->Size() ) );
41
hgs
parents: 39
diff changeset
   196
37
hgs
parents:
diff changeset
   197
        //
hgs
parents:
diff changeset
   198
        // get window aspect ratio
hgs
parents:
diff changeset
   199
        //   if device is in portrait mode, width > height
hgs
parents:
diff changeset
   200
        //   if device is in landscape mode, width < height
hgs
parents:
diff changeset
   201
        //
hgs
parents:
diff changeset
   202
        TReal32 width = (TReal32) displayRect.Width();
41
hgs
parents: 39
diff changeset
   203
        TReal32 height = (TReal32) displayRect.Height();
37
hgs
parents:
diff changeset
   204
        mDisplayAspectRatio = (width > height)? (width / height) : (height / width);
hgs
parents:
diff changeset
   205
    }
hgs
parents:
diff changeset
   206
}
hgs
parents:
diff changeset
   207
hgs
parents:
diff changeset
   208
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   209
// QMPXVideoPlaybackToolBar::playPause()
hgs
parents:
diff changeset
   210
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   211
//
hgs
parents:
diff changeset
   212
void QMPXVideoPlaybackToolBar::playPause()
hgs
parents:
diff changeset
   213
{
hgs
parents:
diff changeset
   214
    MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::playPause()"));
hgs
parents:
diff changeset
   215
hgs
parents:
diff changeset
   216
    mController->resetDisappearingTimers( EMPXTimerReset );
hgs
parents:
diff changeset
   217
    mController->handleCommand( EMPXPbvCmdPlayPause );
hgs
parents:
diff changeset
   218
}
hgs
parents:
diff changeset
   219
hgs
parents:
diff changeset
   220
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   221
// QMPXVideoPlaybackToolBar::ffPressing()
hgs
parents:
diff changeset
   222
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   223
//
hgs
parents:
diff changeset
   224
void QMPXVideoPlaybackToolBar::ffPressing()
hgs
parents:
diff changeset
   225
{
hgs
parents:
diff changeset
   226
    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackToolBar::ffPressing()"),
hgs
parents:
diff changeset
   227
                   _L("mSeekingState = %d"), mSeekingState );
hgs
parents:
diff changeset
   228
hgs
parents:
diff changeset
   229
    if ( mSeekingState == EMPXNotSeeking )
hgs
parents:
diff changeset
   230
    {
hgs
parents:
diff changeset
   231
        mSeekingState = EMPXFastForwarding;
hgs
parents:
diff changeset
   232
41
hgs
parents: 39
diff changeset
   233
        mController->handleCommand( EMPXPbvCmdSeekForward );
37
hgs
parents:
diff changeset
   234
    }
hgs
parents:
diff changeset
   235
}
hgs
parents:
diff changeset
   236
hgs
parents:
diff changeset
   237
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   238
// QMPXVideoPlaybackToolBar::rwPressing()
hgs
parents:
diff changeset
   239
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   240
//
hgs
parents:
diff changeset
   241
void QMPXVideoPlaybackToolBar::rwPressing()
hgs
parents:
diff changeset
   242
{
hgs
parents:
diff changeset
   243
    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackToolBar::rwPressing()"),
hgs
parents:
diff changeset
   244
                   _L("mSeekingState = %d"), mSeekingState );
hgs
parents:
diff changeset
   245
hgs
parents:
diff changeset
   246
    if ( mSeekingState == EMPXNotSeeking )
hgs
parents:
diff changeset
   247
    {
hgs
parents:
diff changeset
   248
        mSeekingState = EMPXRewinding;
hgs
parents:
diff changeset
   249
hgs
parents:
diff changeset
   250
        mController->handleCommand( EMPXPbvCmdSeekBackward );
hgs
parents:
diff changeset
   251
    }
hgs
parents:
diff changeset
   252
}
hgs
parents:
diff changeset
   253
hgs
parents:
diff changeset
   254
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   255
// QMPXVideoPlaybackToolBar::ffReleased()
hgs
parents:
diff changeset
   256
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   257
//
hgs
parents:
diff changeset
   258
void QMPXVideoPlaybackToolBar::ffReleased()
hgs
parents:
diff changeset
   259
{
hgs
parents:
diff changeset
   260
    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackToolBar::ffReleased()"),
hgs
parents:
diff changeset
   261
                   _L("mSeekingState = %d"), mSeekingState );
hgs
parents:
diff changeset
   262
hgs
parents:
diff changeset
   263
    disconnect( mSeekStartTimer, SIGNAL( timeout() ), this, SLOT( ffPressing() ) );
hgs
parents:
diff changeset
   264
hgs
parents:
diff changeset
   265
    if ( mSeekStartTimer->isActive() )
hgs
parents:
diff changeset
   266
    {
hgs
parents:
diff changeset
   267
        mSeekStartTimer->stop();
hgs
parents:
diff changeset
   268
    }
hgs
parents:
diff changeset
   269
hgs
parents:
diff changeset
   270
    if ( mSeekingState == EMPXFastForwarding )
hgs
parents:
diff changeset
   271
    {
41
hgs
parents: 39
diff changeset
   272
        mController->handleCommand( EMPXPbvCmdEndSeek );
37
hgs
parents:
diff changeset
   273
    }
hgs
parents:
diff changeset
   274
    else
hgs
parents:
diff changeset
   275
    {
hgs
parents:
diff changeset
   276
        int temp = mPosition + KMPXFastForward;
hgs
parents:
diff changeset
   277
        MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::ffReleased() temp position = %d"), temp);
hgs
parents:
diff changeset
   278
hgs
parents:
diff changeset
   279
        //
hgs
parents:
diff changeset
   280
        // If it has the playing time which is less than KMPXFastForward, ignore
hgs
parents:
diff changeset
   281
        //
hgs
parents:
diff changeset
   282
        if ( temp < mDuration )
hgs
parents:
diff changeset
   283
        {
hgs
parents:
diff changeset
   284
            mController->handleCommand( EMPXPbvCmdSetPosition, temp );
hgs
parents:
diff changeset
   285
        }
hgs
parents:
diff changeset
   286
    }
hgs
parents:
diff changeset
   287
hgs
parents:
diff changeset
   288
    mSeekingState = EMPXNotSeeking;
hgs
parents:
diff changeset
   289
    mController->resetDisappearingTimers( EMPXTimerReset );
hgs
parents:
diff changeset
   290
}
hgs
parents:
diff changeset
   291
hgs
parents:
diff changeset
   292
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   293
// QMPXVideoPlaybackToolBar::rwReleased()
hgs
parents:
diff changeset
   294
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   295
//
hgs
parents:
diff changeset
   296
void QMPXVideoPlaybackToolBar::rwReleased()
hgs
parents:
diff changeset
   297
{
hgs
parents:
diff changeset
   298
    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackToolBar::rwReleased()"),
hgs
parents:
diff changeset
   299
                   _L("mSeekingState = %d"), mSeekingState );
hgs
parents:
diff changeset
   300
hgs
parents:
diff changeset
   301
    disconnect( mSeekStartTimer, SIGNAL( timeout() ), this, SLOT( rwPressing() ) );
hgs
parents:
diff changeset
   302
hgs
parents:
diff changeset
   303
    if ( mSeekStartTimer->isActive() )
hgs
parents:
diff changeset
   304
    {
hgs
parents:
diff changeset
   305
        mSeekStartTimer->stop();
hgs
parents:
diff changeset
   306
    }
hgs
parents:
diff changeset
   307
hgs
parents:
diff changeset
   308
    if ( mSeekingState == EMPXRewinding )
hgs
parents:
diff changeset
   309
    {
41
hgs
parents: 39
diff changeset
   310
        mController->handleCommand( EMPXPbvCmdEndSeek );
37
hgs
parents:
diff changeset
   311
    }
hgs
parents:
diff changeset
   312
    else
hgs
parents:
diff changeset
   313
    {
hgs
parents:
diff changeset
   314
        int temp = mPosition + KMPXRewind;
hgs
parents:
diff changeset
   315
        MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::rwReleased() temp position = %d"), temp);
hgs
parents:
diff changeset
   316
hgs
parents:
diff changeset
   317
        //
hgs
parents:
diff changeset
   318
        // If it played less than KMPXRewind, jump to 0
hgs
parents:
diff changeset
   319
        //
hgs
parents:
diff changeset
   320
        if ( temp < 0 )
hgs
parents:
diff changeset
   321
        {
hgs
parents:
diff changeset
   322
            temp = 0;
hgs
parents:
diff changeset
   323
        }
hgs
parents:
diff changeset
   324
hgs
parents:
diff changeset
   325
        mController->handleCommand( EMPXPbvCmdSetPosition, temp );
hgs
parents:
diff changeset
   326
    }
hgs
parents:
diff changeset
   327
hgs
parents:
diff changeset
   328
    mSeekingState = EMPXNotSeeking;
hgs
parents:
diff changeset
   329
    mController->resetDisappearingTimers( EMPXTimerReset );
hgs
parents:
diff changeset
   330
}
hgs
parents:
diff changeset
   331
hgs
parents:
diff changeset
   332
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   333
// QMPXVideoPlaybackToolBar::changeAspectRatio()
hgs
parents:
diff changeset
   334
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   335
//
hgs
parents:
diff changeset
   336
void QMPXVideoPlaybackToolBar::changeAspectRatio()
hgs
parents:
diff changeset
   337
{
hgs
parents:
diff changeset
   338
    MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::changeAspectRatio()"));
hgs
parents:
diff changeset
   339
hgs
parents:
diff changeset
   340
    mController->resetDisappearingTimers( EMPXTimerReset );
41
hgs
parents: 39
diff changeset
   341
37
hgs
parents:
diff changeset
   342
    TMPXVideoPlaybackViewCommandIds cmd = EMPXPbvCmdStretchAspectRatio;
hgs
parents:
diff changeset
   343
hgs
parents:
diff changeset
   344
    switch( mAspectRatio )
hgs
parents:
diff changeset
   345
    {
hgs
parents:
diff changeset
   346
        case EMMFZoom:
hgs
parents:
diff changeset
   347
        {
hgs
parents:
diff changeset
   348
            cmd = EMPXPbvCmdNaturalAspectRatio;
hgs
parents:
diff changeset
   349
            break;
hgs
parents:
diff changeset
   350
        }
hgs
parents:
diff changeset
   351
        case EMMFStretch:
hgs
parents:
diff changeset
   352
        {
hgs
parents:
diff changeset
   353
            cmd = EMPXPbvCmdZoomAspectRatio;
hgs
parents:
diff changeset
   354
            break;
hgs
parents:
diff changeset
   355
        }
hgs
parents:
diff changeset
   356
    }
hgs
parents:
diff changeset
   357
hgs
parents:
diff changeset
   358
    mController->handleCommand( cmd );
hgs
parents:
diff changeset
   359
}
hgs
parents:
diff changeset
   360
hgs
parents:
diff changeset
   361
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   362
// QMPXVideoPlaybackToolBar::updateState()
hgs
parents:
diff changeset
   363
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   364
//
hgs
parents:
diff changeset
   365
void QMPXVideoPlaybackToolBar::updateState( TMPXPlaybackState state )
hgs
parents:
diff changeset
   366
{
hgs
parents:
diff changeset
   367
    MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::updateState() state = %d"), state );
hgs
parents:
diff changeset
   368
hgs
parents:
diff changeset
   369
    switch ( state )
hgs
parents:
diff changeset
   370
    {
hgs
parents:
diff changeset
   371
        case EPbStatePlaying:
hgs
parents:
diff changeset
   372
        {
hgs
parents:
diff changeset
   373
            mToolBar->setEnabled( true );
hgs
parents:
diff changeset
   374
hgs
parents:
diff changeset
   375
            mButtonActions[EMPX3rdButton]->setIcon( *mButtonIcons[EMPXPauseIcon] );
hgs
parents:
diff changeset
   376
hgs
parents:
diff changeset
   377
            break;
hgs
parents:
diff changeset
   378
        }
hgs
parents:
diff changeset
   379
        case EPbStatePaused:
hgs
parents:
diff changeset
   380
        {
hgs
parents:
diff changeset
   381
            mToolBar->setEnabled( true );
hgs
parents:
diff changeset
   382
hgs
parents:
diff changeset
   383
            mButtonActions[EMPX3rdButton]->setIcon( *mButtonIcons[EMPXPlayIcon] );
hgs
parents:
diff changeset
   384
hgs
parents:
diff changeset
   385
            break;
hgs
parents:
diff changeset
   386
        }
hgs
parents:
diff changeset
   387
        default:
hgs
parents:
diff changeset
   388
        {
hgs
parents:
diff changeset
   389
            mToolBar->setEnabled( false );
hgs
parents:
diff changeset
   390
hgs
parents:
diff changeset
   391
            break;
hgs
parents:
diff changeset
   392
        }
hgs
parents:
diff changeset
   393
    }
hgs
parents:
diff changeset
   394
}
hgs
parents:
diff changeset
   395
hgs
parents:
diff changeset
   396
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   397
// QMPXVideoPlaybackToolBar::aspectRatioChanged()
hgs
parents:
diff changeset
   398
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   399
//
hgs
parents:
diff changeset
   400
void QMPXVideoPlaybackToolBar::aspectRatioChanged( int aspectRatio )
hgs
parents:
diff changeset
   401
{
hgs
parents:
diff changeset
   402
    MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::aspectRatioChanged() aspectRatio = %d"), aspectRatio );
hgs
parents:
diff changeset
   403
hgs
parents:
diff changeset
   404
    mAspectRatio = aspectRatio;
hgs
parents:
diff changeset
   405
39
hgs
parents: 38
diff changeset
   406
    //
hgs
parents: 38
diff changeset
   407
    // If we are in attach service or audio only view, then don't update the icon.
hgs
parents: 38
diff changeset
   408
	// Aspect ratio icon slots are shared with attach and share icon.
41
hgs
parents: 39
diff changeset
   409
	// Just update the mAspectRatio
39
hgs
parents: 38
diff changeset
   410
	// and once we go back to full screen, we will show the correct aspect ratio icon
hgs
parents: 38
diff changeset
   411
	//
hgs
parents: 38
diff changeset
   412
    if ( ! mController->isAttachOperation() && mController->viewMode() == EFullScreenView )
37
hgs
parents:
diff changeset
   413
    {
hgs
parents:
diff changeset
   414
        switch( mAspectRatio )
hgs
parents:
diff changeset
   415
        {
hgs
parents:
diff changeset
   416
            case EMMFNatural:
hgs
parents:
diff changeset
   417
            {
hgs
parents:
diff changeset
   418
                mButtonActions[EMPX1stButton]->setIcon( *mButtonIcons[EMPXStretchIcon] );
hgs
parents:
diff changeset
   419
                break;
hgs
parents:
diff changeset
   420
            }
hgs
parents:
diff changeset
   421
            case EMMFStretch:
hgs
parents:
diff changeset
   422
            {
hgs
parents:
diff changeset
   423
                mButtonActions[EMPX1stButton]->setIcon( *mButtonIcons[EMPXZoomIcon] );
hgs
parents:
diff changeset
   424
                break;
hgs
parents:
diff changeset
   425
            }
hgs
parents:
diff changeset
   426
            default:
hgs
parents:
diff changeset
   427
            {
hgs
parents:
diff changeset
   428
                mButtonActions[EMPX1stButton]->setIcon( *mButtonIcons[EMPXNaturalIcon] );
hgs
parents:
diff changeset
   429
                break;
hgs
parents:
diff changeset
   430
            }
41
hgs
parents: 39
diff changeset
   431
        }
37
hgs
parents:
diff changeset
   432
    }
hgs
parents:
diff changeset
   433
}
hgs
parents:
diff changeset
   434
hgs
parents:
diff changeset
   435
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   436
// QMPXVideoPlaybackToolBar::handleButtonPressed()
hgs
parents:
diff changeset
   437
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   438
//
hgs
parents:
diff changeset
   439
void QMPXVideoPlaybackToolBar::handleButtonPressed()
hgs
parents:
diff changeset
   440
{
hgs
parents:
diff changeset
   441
    MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::handleButtonPressed()"));
hgs
parents:
diff changeset
   442
hgs
parents:
diff changeset
   443
    mController->resetDisappearingTimers( EMPXTimerCancel );
hgs
parents:
diff changeset
   444
}
hgs
parents:
diff changeset
   445
hgs
parents:
diff changeset
   446
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   447
// QMPXVideoPlaybackToolBar::handleRWButtonPressed()
hgs
parents:
diff changeset
   448
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   449
//
hgs
parents:
diff changeset
   450
void QMPXVideoPlaybackToolBar::handleRWButtonPressed()
hgs
parents:
diff changeset
   451
{
hgs
parents:
diff changeset
   452
    MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::handleRWButtonPressed()"));
hgs
parents:
diff changeset
   453
hgs
parents:
diff changeset
   454
    mController->resetDisappearingTimers( EMPXTimerCancel );
hgs
parents:
diff changeset
   455
hgs
parents:
diff changeset
   456
    connect( mSeekStartTimer, SIGNAL( timeout() ), this, SLOT( rwPressing() ) );
hgs
parents:
diff changeset
   457
hgs
parents:
diff changeset
   458
    if ( mSeekStartTimer->isActive() )
hgs
parents:
diff changeset
   459
    {
hgs
parents:
diff changeset
   460
        mSeekStartTimer->stop();
hgs
parents:
diff changeset
   461
    }
hgs
parents:
diff changeset
   462
hgs
parents:
diff changeset
   463
    mSeekStartTimer->start();
hgs
parents:
diff changeset
   464
}
hgs
parents:
diff changeset
   465
hgs
parents:
diff changeset
   466
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   467
// QMPXVideoPlaybackToolBar::handleFFButtonPressed()
hgs
parents:
diff changeset
   468
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   469
//
hgs
parents:
diff changeset
   470
void QMPXVideoPlaybackToolBar::handleFFButtonPressed()
hgs
parents:
diff changeset
   471
{
hgs
parents:
diff changeset
   472
    MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::handleButtonPressed()"));
hgs
parents:
diff changeset
   473
hgs
parents:
diff changeset
   474
    mController->resetDisappearingTimers( EMPXTimerCancel );
hgs
parents:
diff changeset
   475
hgs
parents:
diff changeset
   476
    connect( mSeekStartTimer, SIGNAL( timeout() ), this, SLOT( ffPressing() ) );
hgs
parents:
diff changeset
   477
hgs
parents:
diff changeset
   478
    if ( mSeekStartTimer->isActive() )
hgs
parents:
diff changeset
   479
    {
hgs
parents:
diff changeset
   480
        mSeekStartTimer->stop();
hgs
parents:
diff changeset
   481
    }
hgs
parents:
diff changeset
   482
hgs
parents:
diff changeset
   483
    mSeekStartTimer->start();
hgs
parents:
diff changeset
   484
}
hgs
parents:
diff changeset
   485
hgs
parents:
diff changeset
   486
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   487
// QMPXVideoPlaybackToolBar::updateWithFileDetails()
hgs
parents:
diff changeset
   488
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   489
//
hgs
parents:
diff changeset
   490
void QMPXVideoPlaybackToolBar::updateWithFileDetails(
hgs
parents:
diff changeset
   491
        QMPXVideoPlaybackViewFileDetails* details )
hgs
parents:
diff changeset
   492
{
hgs
parents:
diff changeset
   493
    MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::updateWithFileDetails()"));
hgs
parents:
diff changeset
   494
hgs
parents:
diff changeset
   495
    if ( mController->isAttachOperation() )
hgs
parents:
diff changeset
   496
    {
hgs
parents:
diff changeset
   497
        //
hgs
parents:
diff changeset
   498
        // Show attach button
hgs
parents:
diff changeset
   499
        //
hgs
parents:
diff changeset
   500
        mButtonActions[EMPX1stButton]->setIcon( *mButtonIcons[EMPXAttachIcon] );
hgs
parents:
diff changeset
   501
hgs
parents:
diff changeset
   502
        if ( mButtons.count() )
hgs
parents:
diff changeset
   503
        {
38
hgs
parents: 37
diff changeset
   504
            disconnect( mButtons[EMPX1stButton], SIGNAL( released() ), 0, 0 );
37
hgs
parents:
diff changeset
   505
            connect( mButtons[EMPX1stButton], SIGNAL( released() ),
hgs
parents:
diff changeset
   506
                     mController, SLOT( attachVideo() ) );
hgs
parents:
diff changeset
   507
        }
hgs
parents:
diff changeset
   508
    }
hgs
parents:
diff changeset
   509
    else
hgs
parents:
diff changeset
   510
    {
hgs
parents:
diff changeset
   511
        if ( mController->viewMode() == EFullScreenView )
hgs
parents:
diff changeset
   512
        {
hgs
parents:
diff changeset
   513
            //
hgs
parents:
diff changeset
   514
            // Show aspect ratio button
hgs
parents:
diff changeset
   515
            //
hgs
parents:
diff changeset
   516
            aspectRatioChanged( mAspectRatio );
hgs
parents:
diff changeset
   517
hgs
parents:
diff changeset
   518
            if ( ! details->mVideoEnabled ||
hgs
parents:
diff changeset
   519
                   details->mVideoHeight <= 0 ||
hgs
parents:
diff changeset
   520
                   details->mVideoWidth <= 0 ||
hgs
parents:
diff changeset
   521
                   details->mTvOutConnected )
hgs
parents:
diff changeset
   522
            {
hgs
parents:
diff changeset
   523
                //
hgs
parents:
diff changeset
   524
                // dim 'aspect ratio' buttons
hgs
parents:
diff changeset
   525
                //
hgs
parents:
diff changeset
   526
                mButtonActions[EMPX1stButton]->setEnabled( false );
hgs
parents:
diff changeset
   527
            }
hgs
parents:
diff changeset
   528
            else
hgs
parents:
diff changeset
   529
            {
hgs
parents:
diff changeset
   530
                //
41
hgs
parents: 39
diff changeset
   531
                // check if video clip has same aspect ratio as display window
37
hgs
parents:
diff changeset
   532
                //
41
hgs
parents: 39
diff changeset
   533
                TReal32 videoAspectRatio = (TReal32) details->mVideoWidth / (TReal32) details->mVideoHeight;
37
hgs
parents:
diff changeset
   534
                bool enabled = ( mDisplayAspectRatio == videoAspectRatio )? false : true;
41
hgs
parents: 39
diff changeset
   535
37
hgs
parents:
diff changeset
   536
                //
hgs
parents:
diff changeset
   537
                // enable or dim 'aspect ratio' buttons accordingly
hgs
parents:
diff changeset
   538
                //
hgs
parents:
diff changeset
   539
                mButtonActions[EMPX1stButton]->setEnabled( enabled );
hgs
parents:
diff changeset
   540
hgs
parents:
diff changeset
   541
                if ( mButtons.count() )
hgs
parents:
diff changeset
   542
                {
38
hgs
parents: 37
diff changeset
   543
                    disconnect( mButtons[EMPX1stButton], SIGNAL( released() ), 0, 0 );
37
hgs
parents:
diff changeset
   544
                    connect( mButtons[EMPX1stButton], SIGNAL( released() ),
hgs
parents:
diff changeset
   545
                             this, SLOT( changeAspectRatio() ) );
hgs
parents:
diff changeset
   546
                }
hgs
parents:
diff changeset
   547
            }
41
hgs
parents: 39
diff changeset
   548
        }
37
hgs
parents:
diff changeset
   549
        else if ( mController->viewMode() == EAudioOnlyView )
hgs
parents:
diff changeset
   550
        {
hgs
parents:
diff changeset
   551
            //
hgs
parents:
diff changeset
   552
            // Show share button
hgs
parents:
diff changeset
   553
            //
hgs
parents:
diff changeset
   554
            mButtonActions[EMPX1stButton]->setIcon( *mButtonIcons[EMPXShareIcon] );
hgs
parents:
diff changeset
   555
hgs
parents:
diff changeset
   556
            if ( mController->fileDetails()->mPlaybackMode == EMPXVideoStreaming ||
hgs
parents:
diff changeset
   557
                 mController->fileDetails()->mPlaybackMode == EMPXVideoLiveStreaming )
hgs
parents:
diff changeset
   558
            {
hgs
parents:
diff changeset
   559
                //
hgs
parents:
diff changeset
   560
                // dim 'share' button for streaming
hgs
parents:
diff changeset
   561
                //
hgs
parents:
diff changeset
   562
                mButtonActions[EMPX1stButton]->setEnabled( false );
hgs
parents:
diff changeset
   563
            }
hgs
parents:
diff changeset
   564
            else
hgs
parents:
diff changeset
   565
            {
hgs
parents:
diff changeset
   566
                //
hgs
parents:
diff changeset
   567
                // enable 'share' button
hgs
parents:
diff changeset
   568
                //
hgs
parents:
diff changeset
   569
                mButtonActions[EMPX1stButton]->setEnabled( true );
hgs
parents:
diff changeset
   570
hgs
parents:
diff changeset
   571
                if ( mButtons.count() )
hgs
parents:
diff changeset
   572
                {
38
hgs
parents: 37
diff changeset
   573
                    disconnect( mButtons[EMPX1stButton], SIGNAL( released() ), 0, 0 );
41
hgs
parents: 39
diff changeset
   574
                    connect( mButtons[EMPX1stButton], SIGNAL( released() ),
37
hgs
parents:
diff changeset
   575
                             mController, SLOT( sendVideo() ) );
hgs
parents:
diff changeset
   576
                }
hgs
parents:
diff changeset
   577
            }
hgs
parents:
diff changeset
   578
        }
hgs
parents:
diff changeset
   579
    }
hgs
parents:
diff changeset
   580
hgs
parents:
diff changeset
   581
    //
hgs
parents:
diff changeset
   582
    // for audio-only clips and tv-out, default view is audionOnlyView
hgs
parents:
diff changeset
   583
    // therefore, dim details button
hgs
parents:
diff changeset
   584
    //
hgs
parents:
diff changeset
   585
    if ( ! details->mVideoEnabled || details->mTvOutConnected )
hgs
parents:
diff changeset
   586
    {
hgs
parents:
diff changeset
   587
        mButtonActions[EMPX5thButton]->setEnabled( false );
hgs
parents:
diff changeset
   588
    }
hgs
parents:
diff changeset
   589
    else
hgs
parents:
diff changeset
   590
    {
hgs
parents:
diff changeset
   591
        mButtonActions[EMPX5thButton]->setEnabled( true );
hgs
parents:
diff changeset
   592
    }
hgs
parents:
diff changeset
   593
39
hgs
parents: 38
diff changeset
   594
    if ( details->mSeekable && details->mPausableStream )
37
hgs
parents:
diff changeset
   595
    {
hgs
parents:
diff changeset
   596
        mButtonActions[EMPX2ndButton]->setEnabled( true );
hgs
parents:
diff changeset
   597
        mButtonActions[EMPX4thButton]->setEnabled( true );
hgs
parents:
diff changeset
   598
    }
39
hgs
parents: 38
diff changeset
   599
    else
hgs
parents: 38
diff changeset
   600
    {
hgs
parents: 38
diff changeset
   601
        mButtonActions[EMPX2ndButton]->setEnabled( false );
hgs
parents: 38
diff changeset
   602
        mButtonActions[EMPX4thButton]->setEnabled( false );
hgs
parents: 38
diff changeset
   603
    }
37
hgs
parents:
diff changeset
   604
39
hgs
parents: 38
diff changeset
   605
    if ( details->mPausableStream )
hgs
parents: 38
diff changeset
   606
    {
hgs
parents: 38
diff changeset
   607
        mButtonActions[EMPX3rdButton]->setEnabled( true );
hgs
parents: 38
diff changeset
   608
    }
hgs
parents: 38
diff changeset
   609
    else
37
hgs
parents:
diff changeset
   610
    {
hgs
parents:
diff changeset
   611
        mButtonActions[EMPX3rdButton]->setEnabled( false );
hgs
parents:
diff changeset
   612
    }
39
hgs
parents: 38
diff changeset
   613
hgs
parents: 38
diff changeset
   614
    //
41
hgs
parents: 39
diff changeset
   615
    // toolbar creates button once it gets visible, so we don't know exact timing when toolbar
39
hgs
parents: 38
diff changeset
   616
    // creates button, so start timer to get layout information once the toolbar gets visible.
hgs
parents: 38
diff changeset
   617
    // This is needed since we don't use toolbar in proper way.
hgs
parents: 38
diff changeset
   618
    //
hgs
parents: 38
diff changeset
   619
    if ( ! mRetrieveButtonTimer && ! mButtons.count() )
37
hgs
parents:
diff changeset
   620
    {
39
hgs
parents: 38
diff changeset
   621
        mRetrieveButtonTimer = new QTimer();
hgs
parents: 38
diff changeset
   622
        mRetrieveButtonTimer->setSingleShot( false );
hgs
parents: 38
diff changeset
   623
        mRetrieveButtonTimer->setInterval( KRetrieveButtonTimeOut );
41
hgs
parents: 39
diff changeset
   624
        connect( mRetrieveButtonTimer, SIGNAL( timeout() ), this, SLOT( retrieveButtons() ) );
39
hgs
parents: 38
diff changeset
   625
41
hgs
parents: 39
diff changeset
   626
        mRetrieveButtonTimer->start();
39
hgs
parents: 38
diff changeset
   627
    }
hgs
parents: 38
diff changeset
   628
hgs
parents: 38
diff changeset
   629
    durationChanged( (qreal)mController->fileDetails()->mDuration / (qreal)KPbMilliMultiplier );
37
hgs
parents:
diff changeset
   630
}
hgs
parents:
diff changeset
   631
hgs
parents:
diff changeset
   632
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   633
// QMPXVideoPlaybackToolBar::openDetailsView()
hgs
parents:
diff changeset
   634
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   635
//
hgs
parents:
diff changeset
   636
void QMPXVideoPlaybackToolBar::openDetailsView()
hgs
parents:
diff changeset
   637
{
hgs
parents:
diff changeset
   638
    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackToolBar::openDetailsView()"));
hgs
parents:
diff changeset
   639
hgs
parents:
diff changeset
   640
    TPlaybackViewMode viewMode = mController->viewMode();
hgs
parents:
diff changeset
   641
hgs
parents:
diff changeset
   642
    if ( viewMode == EFullScreenView )
hgs
parents:
diff changeset
   643
    {
hgs
parents:
diff changeset
   644
        mController->changeViewMode( EDetailsView );
hgs
parents:
diff changeset
   645
    }
hgs
parents:
diff changeset
   646
}
hgs
parents:
diff changeset
   647
hgs
parents:
diff changeset
   648
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   649
// QMPXVideoPlaybackToolBar::positionChanged
hgs
parents:
diff changeset
   650
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   651
//
hgs
parents:
diff changeset
   652
void QMPXVideoPlaybackToolBar::positionChanged( int position )
hgs
parents:
diff changeset
   653
{
hgs
parents:
diff changeset
   654
    MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::positionChanged position = %d"), position );
hgs
parents:
diff changeset
   655
hgs
parents:
diff changeset
   656
    mPosition = position;
hgs
parents:
diff changeset
   657
}
hgs
parents:
diff changeset
   658
hgs
parents:
diff changeset
   659
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   660
// QMPXVideoPlaybackToolBar::durationChanged
hgs
parents:
diff changeset
   661
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   662
//
hgs
parents:
diff changeset
   663
void QMPXVideoPlaybackToolBar::durationChanged( int duration )
hgs
parents:
diff changeset
   664
{
hgs
parents:
diff changeset
   665
    MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::durationChanged duration = %d"), duration );
hgs
parents:
diff changeset
   666
hgs
parents:
diff changeset
   667
    mDuration = duration;
hgs
parents:
diff changeset
   668
}
hgs
parents:
diff changeset
   669
hgs
parents:
diff changeset
   670
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   671
// QMPXVideoPlaybackToolBar::setVisible
hgs
parents:
diff changeset
   672
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   673
//
hgs
parents:
diff changeset
   674
void QMPXVideoPlaybackToolBar::setVisible( bool visible )
hgs
parents:
diff changeset
   675
{
hgs
parents:
diff changeset
   676
    MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::setVisible visible = %d"), visible );
hgs
parents:
diff changeset
   677
hgs
parents:
diff changeset
   678
    if ( visible )
hgs
parents:
diff changeset
   679
    {
hgs
parents:
diff changeset
   680
        mController->view()->showItems( Hb::ToolBarItem );
hgs
parents:
diff changeset
   681
    }
hgs
parents:
diff changeset
   682
    else
hgs
parents:
diff changeset
   683
    {
hgs
parents:
diff changeset
   684
        mController->view()->hideItems( Hb::ToolBarItem );
hgs
parents:
diff changeset
   685
    }
hgs
parents:
diff changeset
   686
}
hgs
parents:
diff changeset
   687
hgs
parents:
diff changeset
   688
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   689
// QMPXVideoPlaybackToolBar::retrieveButtons()
hgs
parents:
diff changeset
   690
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   691
//
hgs
parents:
diff changeset
   692
void QMPXVideoPlaybackToolBar::retrieveButtons()
hgs
parents:
diff changeset
   693
{
hgs
parents:
diff changeset
   694
    MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::retrieveButtons()"));
hgs
parents:
diff changeset
   695
hgs
parents:
diff changeset
   696
    if ( mButtons.count() == 0 )
hgs
parents:
diff changeset
   697
    {
hgs
parents:
diff changeset
   698
        QGraphicsLayout *layout = mToolBar->layout();
hgs
parents:
diff changeset
   699
hgs
parents:
diff changeset
   700
        if ( layout )
hgs
parents:
diff changeset
   701
        {
39
hgs
parents: 38
diff changeset
   702
            if ( mRetrieveButtonTimer )
37
hgs
parents:
diff changeset
   703
            {
39
hgs
parents: 38
diff changeset
   704
                disconnect( mRetrieveButtonTimer, SIGNAL( timeout() ), this, SLOT( retrieveButtons() ) );
hgs
parents: 38
diff changeset
   705
                if ( mRetrieveButtonTimer->isActive() )
hgs
parents: 38
diff changeset
   706
                {
hgs
parents: 38
diff changeset
   707
                    mRetrieveButtonTimer->stop();
41
hgs
parents: 39
diff changeset
   708
                }
37
hgs
parents:
diff changeset
   709
            }
hgs
parents:
diff changeset
   710
hgs
parents:
diff changeset
   711
            for ( int i = 0 ; i < layout->count() ; i++ )
hgs
parents:
diff changeset
   712
            {
hgs
parents:
diff changeset
   713
                mButtons.append( dynamic_cast<HbToolButton*>( layout->itemAt( i ) ) );
hgs
parents:
diff changeset
   714
            }
hgs
parents:
diff changeset
   715
hgs
parents:
diff changeset
   716
            //
hgs
parents:
diff changeset
   717
            // Connect signal and slots
hgs
parents:
diff changeset
   718
            //
hgs
parents:
diff changeset
   719
            connect( mButtons[EMPX1stButton], SIGNAL( pressed() ), this, SLOT( handleButtonPressed() ) );
hgs
parents:
diff changeset
   720
hgs
parents:
diff changeset
   721
            connect( mButtons[EMPX2ndButton], SIGNAL( pressed() ), this, SLOT( handleRWButtonPressed() ) );
hgs
parents:
diff changeset
   722
            connect( mButtons[EMPX2ndButton], SIGNAL( released() ), this, SLOT( rwReleased() ) );
hgs
parents:
diff changeset
   723
hgs
parents:
diff changeset
   724
            connect( mButtons[EMPX3rdButton], SIGNAL( pressed() ), this, SLOT( handleButtonPressed() ) );
hgs
parents:
diff changeset
   725
            connect( mButtons[EMPX3rdButton], SIGNAL( released() ), this, SLOT( playPause() ) );
hgs
parents:
diff changeset
   726
hgs
parents:
diff changeset
   727
            connect( mButtons[EMPX4thButton], SIGNAL( pressed() ), this, SLOT( handleFFButtonPressed() ) );
hgs
parents:
diff changeset
   728
            connect( mButtons[EMPX4thButton], SIGNAL( released() ), this, SLOT( ffReleased() ) );
hgs
parents:
diff changeset
   729
hgs
parents:
diff changeset
   730
            connect( mButtons[EMPX5thButton], SIGNAL( pressed() ), this, SLOT( handleButtonPressed() ) );
hgs
parents:
diff changeset
   731
            connect( mButtons[EMPX5thButton], SIGNAL( released() ), this, SLOT( openDetailsView() ) );
hgs
parents:
diff changeset
   732
hgs
parents:
diff changeset
   733
            if ( mController->isAttachOperation() )
hgs
parents:
diff changeset
   734
            {
hgs
parents:
diff changeset
   735
                connect( mButtons[EMPX1stButton], SIGNAL( released() ),
hgs
parents:
diff changeset
   736
                         mController, SLOT( attachVideo() ) );
hgs
parents:
diff changeset
   737
            }
hgs
parents:
diff changeset
   738
            else
hgs
parents:
diff changeset
   739
            {
hgs
parents:
diff changeset
   740
                if ( mController->viewMode() == EFullScreenView )
hgs
parents:
diff changeset
   741
                {
hgs
parents:
diff changeset
   742
                    connect( mButtons[EMPX1stButton], SIGNAL( released() ),
hgs
parents:
diff changeset
   743
                             this, SLOT( changeAspectRatio() ) );
41
hgs
parents: 39
diff changeset
   744
                }
37
hgs
parents:
diff changeset
   745
                else if ( mController->viewMode() == EAudioOnlyView )
hgs
parents:
diff changeset
   746
                {
41
hgs
parents: 39
diff changeset
   747
                    connect( mButtons[EMPX1stButton], SIGNAL( released() ),
37
hgs
parents:
diff changeset
   748
                             mController, SLOT( sendVideo() ) );
hgs
parents:
diff changeset
   749
                }
hgs
parents:
diff changeset
   750
            }
hgs
parents:
diff changeset
   751
        }
hgs
parents:
diff changeset
   752
    }
hgs
parents:
diff changeset
   753
}
hgs
parents:
diff changeset
   754
hgs
parents:
diff changeset
   755
//End of file