videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackprogressbar.cpp
changeset 44 518105d52e45
parent 42 17f382c040b1
child 49 824471cb468a
--- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackprogressbar.cpp	Fri Jul 02 17:14:33 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,435 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Implementation of QMPXVideoPlaybackProgressBar
-*
-*/
-
-// Version : %version: da1mmcf#24 %
-
-
-
-
-#include <QTime>
-#include <QTimer>
-#include <QGraphicsSceneMouseEvent>
-
-#include <hblabel.h>
-#include <hbframeitem.h>
-#include <hbframedrawer.h>
-#include <hbprogressslider.h>
-#include <hbextendedlocale.h>
-
-#include "mpxvideo_debug.h"
-#include "mpxvideoplaybackprogressbar.h"
-#include "mpxvideoplaybackdocumentloader.h"
-#include "mpxvideoplaybackcontrolscontroller.h"
-
-const int KSeekingTimeOut = 250;
-
-// -------------------------------------------------------------------------------------------------
-// QMPXVideoPlaybackProgressBar::QMPXVideoPlaybackProgressBar
-// -------------------------------------------------------------------------------------------------
-//
-QMPXVideoPlaybackProgressBar::QMPXVideoPlaybackProgressBar(
-        QMPXVideoPlaybackControlsController* controller )
-    : mController( controller )
-    , mDraggingPosition( 0 )
-    , mSetPosition( -1 )
-    , mNeedToResumeAfterSetPosition( false )
-    , mInitialized( false )
-    , mSliderDragging( false )
-    , mLongTimeFormat( false )
-    , mLiveStreaming( false )
-    , mSeekingTimer( NULL )
-{
-    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackProgressBar::QMPXVideoPlaybackProgressBar()"));
-}
-
-// -------------------------------------------------------------------------------------------------
-// QMPXVideoPlaybackProgressBar::~QMPXVideoPlaybackProgressBar
-// -------------------------------------------------------------------------------------------------
-//
-QMPXVideoPlaybackProgressBar::~QMPXVideoPlaybackProgressBar()
-{
-    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackProgressBar::~QMPXVideoPlaybackProgressBar()"));
-
-    if ( mSeekingTimer )
-    {
-        disconnect( mSeekingTimer, SIGNAL( timeout() ), this, SLOT( handleSeekingTimeout() ) );
-
-        if ( mSeekingTimer->isActive() )
-        {
-            mSeekingTimer->stop();
-        }
-
-        delete mSeekingTimer;
-        mSeekingTimer = NULL;
-    }
-}
-
-// -------------------------------------------------------------------------------------------------
-// QMPXVideoPlaybackProgressBar::initialize
-// -------------------------------------------------------------------------------------------------
-//
-void QMPXVideoPlaybackProgressBar::initialize()
-{
-    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackProgressBar::initialize()"));
-
-    QMPXVideoPlaybackDocumentLoader *loader = mController->layoutLoader();
-
-    //
-    // Don't need to initialize buttons once it gets initialized
-    //
-    if ( loader && ! mInitialized )
-    {
-        mInitialized = true;
-        mLiveStreaming =
-                ( mController->fileDetails()->mPlaybackMode == EMPXVideoLiveStreaming )? true:false;
-
-        //
-        // Create a timer for seeking.
-        // We will issue SetPosition every KSeekingTimeOut msec to show the current frame to user
-        //
-        mSeekingTimer = new QTimer();
-        mSeekingTimer->setSingleShot( false );
-        mSeekingTimer->setInterval( KSeekingTimeOut );
-        connect( mSeekingTimer, SIGNAL( timeout() ), this, SLOT( handleSeekingTimeout() ) );
-
-        //
-        // progress slider
-        //
-        QGraphicsWidget *widget = loader->findWidget( QString( "progressSlider" ) );
-        mProgressSlider = qobject_cast<HbProgressSlider*>( widget );
-
-        connect( mProgressSlider, SIGNAL( sliderPressed() ), this, SLOT( handleSliderPressed() ) );
-        connect( mProgressSlider, SIGNAL( sliderReleased() ), this, SLOT( handleSliderReleased() ) );
-        connect( mProgressSlider, SIGNAL( sliderMoved( int ) ), this, SLOT( handleSliderMoved( int ) ) );
-
-        //
-        // If we init the progress bar after pp sends the duration informatin
-        // we need to set the duration manually
-        //
-        durationChanged( (qreal)mController->fileDetails()->mDuration / (qreal)KPbMilliMultiplier );
-
-        //
-        // Set the position to 0 until we get position information
-        //
-        positionChanged( 0 );
-
-        //
-        // Set framedrawer for semi transparent background
-        //
-        HbFrameItem *frameItem = new HbFrameItem();
-        frameItem->frameDrawer().setFrameGraphicsName( "qtg_fr_multimedia_trans" );
-        frameItem->frameDrawer().setFrameType( HbFrameDrawer::NinePieces );
-        frameItem->frameDrawer().setFillWholeRect( true );
-        mProgressSlider->setBackgroundItem( frameItem );
-    }
-}
-
-// -------------------------------------------------------------------------------------------------
-// QMPXVideoPlaybackProgressBar::durationChanged
-// -------------------------------------------------------------------------------------------------
-//
-void QMPXVideoPlaybackProgressBar::durationChanged( int duration )
-{
-    MPX_DEBUG(_L("QMPXVideoPlaybackControlsController::durationChanged duration = %d"), duration );
-
-    if ( mLiveStreaming )
-    {
-        mDuration = 0;
-        mProgressSlider->setMaxText( "Live" );
-    }
-    else
-    {
-        mDuration = duration;
-
-        if ( ( mDuration / 3600 ) > 0 )
-        {
-            mLongTimeFormat = true;
-        }
-        else
-        {
-            mLongTimeFormat = false;
-        }
-
-        mProgressSlider->setMaxText( valueToReadableFormat( mDuration ) );
-    }
-
-    mProgressSlider->setRange( 0, mDuration );
-}
-
-// -------------------------------------------------------------------------------------------------
-// QMPXVideoPlaybackProgressBar::positionChanged
-// -------------------------------------------------------------------------------------------------
-//
-void QMPXVideoPlaybackProgressBar::positionChanged( int position )
-{
-    MPX_DEBUG(_L("QMPXVideoPlaybackControlsController::positionChanged position = %d"), position );
-
-    //
-    // While dragging event, don't update old position information from mpx framework
-    //
-    if ( ! mSliderDragging )
-    {
-        updatePostion( position );
-    }
-}
-
-// -------------------------------------------------------------------------------------------------
-// QMPXVideoPlaybackProgressBar::updatePostion
-// -------------------------------------------------------------------------------------------------
-//
-void QMPXVideoPlaybackProgressBar::updatePostion( int position )
-{
-    if ( position < 0 )
-    {
-        position = 0;
-    }
-    else if ( position > mDuration && ! mLiveStreaming )
-    {
-        position = mDuration;
-    }
-
-    MPX_DEBUG(_L("QMPXVideoPlaybackProgressBar::updatePostion position = %d"), position );
-
-    mProgressSlider->setMinText( valueToReadableFormat( position ) );
-
-    //
-    // Don't need to set the slider for live streaming
-    //
-    if ( ! mLiveStreaming )
-    {
-        mProgressSlider->setSliderValue( position );
-        mProgressSlider->setProgressValue( position );
-    }
-}
-
-// -------------------------------------------------------------------------------------------------
-// QMPXVideoPlaybackProgressBar::valueToReadableFormat
-// -------------------------------------------------------------------------------------------------
-//
-QString QMPXVideoPlaybackProgressBar::valueToReadableFormat( int value )
-{
-    MPX_DEBUG(_L("QMPXVideoPlaybackControlsController::valueToReadableFormat value = %d"), value);
-
-    int hour = value / 3600;
-    value = value % 3600;
-    int minutes = value / 60;
-    value = value % 60;
-    int second = value;
-
-    QTime time( hour ,minutes ,second );
-    QString str;
-
-    HbExtendedLocale locale = HbExtendedLocale::system();
-
-    if ( mLongTimeFormat )
-    {
-        str = locale.format( time, r_qtn_time_durat_long );
-    }
-    else
-    {
-        str = locale.format( time, r_qtn_time_durat_min_sec );
-    }
-
-    return str;
-}
-
-// -------------------------------------------------------------------------------------------------
-// QMPXVideoPlaybackProgressBar::handleSliderPressed
-// -------------------------------------------------------------------------------------------------
-//
-void QMPXVideoPlaybackProgressBar::handleSliderPressed()
-{
-    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackProgressBar::handleSliderPressed()"));
-
-    mSliderDragging = true;
-
-    mController->resetDisappearingTimers( EMPXTimerCancel );
-
-    //
-    // Pause the playback if it's playing
-    //
-    if( mController->state() == EPbStatePlaying )
-    {
-        mNeedToResumeAfterSetPosition = true;
-        mController->handleCommand( EMPXPbvCmdCustomPause );
-    }
-}
-
-// -------------------------------------------------------------------------------------------------
-// QMPXVideoPlaybackProgressBar::handleSliderMoved
-// -------------------------------------------------------------------------------------------------
-//
-void QMPXVideoPlaybackProgressBar::handleSliderMoved( int value )
-{
-    MPX_DEBUG(_L("QMPXVideoPlaybackProgressBar::handleSliderMoved() position = %d"), value);
-
-    updatePostion( value );
-
-    //
-    // If the slider is dragging, start the timer and seek every KSeekingTimeOut msec
-    //
-    if ( mSliderDragging )
-    {
-        mDraggingPosition = value;
-        MPX_DEBUG(_L("QMPXVideoPlaybackProgressBar::handleSliderMoved() mDraggingPosition = %d"), mDraggingPosition);
-
-        if ( mSeekingTimer && ! mSeekingTimer->isActive() )
-        {
-            mSeekingTimer->start();
-        }
-    }
-    else
-    {
-        if ( value >= mDuration )
-        {
-            MPX_DEBUG(_L("QMPXVideoPlaybackProgressBar::setPosition() reached end of the clip"));
-
-            mController->handleCommand( EMPXPbvCmdEndOfClip );
-        }
-        else
-        {
-            value = mProgressSlider->sliderValue();
-
-            MPX_DEBUG(_L("QMPXVideoPlaybackProgressBar::setPosition() position = %d"), value);
-            mController->handleCommand( EMPXPbvCmdSetPosition, value );
-        }
-    }
-}
-
-// -------------------------------------------------------------------------------------------------
-// QMPXVideoPlaybackProgressBar::handleSliderReleased
-// -------------------------------------------------------------------------------------------------
-//
-void QMPXVideoPlaybackProgressBar::handleSliderReleased()
-{
-    MPX_ENTER_EXIT(_L("QMPXVideoPlaybackProgressBar::handleSliderReleased()"));
-
-    mSliderDragging = false;
-
-    if ( mSeekingTimer && mSeekingTimer->isActive() )
-    {
-        mSeekingTimer->stop();
-    }
-
-    mController->resetDisappearingTimers( EMPXTimerReset );
-    int value = mProgressSlider->sliderValue();
-
-    if ( value >= mDuration )
-    {
-        MPX_DEBUG(_L("QMPXVideoPlaybackProgressBar::setPosition() reached end of the clip"));
-        mController->handleCommand( EMPXPbvCmdEndOfClip );
-    }
-    else
-    {
-        if ( value < 0 )
-        {
-            value = 0;
-        }
-
-        MPX_DEBUG(_L("QMPXVideoPlaybackProgressBar::setPosition() position = %d"), value);
-        mController->handleCommand( EMPXPbvCmdSetPosition, value );
-
-        //
-        // Resume if it was playing
-        //
-        if( mNeedToResumeAfterSetPosition )
-        {
-            mNeedToResumeAfterSetPosition = false;
-            mController->handleCommand( EMPXPbvCmdCustomPlay );
-        }
-    }
-}
-
-// -------------------------------------------------------------------------------------------------
-// QMPXVideoPlaybackProgressBar::updateWithFileDetails()
-// -------------------------------------------------------------------------------------------------
-//
-void QMPXVideoPlaybackProgressBar::updateWithFileDetails(
-        QMPXVideoPlaybackViewFileDetails* details )
-{
-    MPX_DEBUG(_L("QMPXVideoPlaybackProgressBar::updateControlsWithFileDetails()"));
-
-    if ( ! details->mPausableStream || ! details->mSeekable )
-    {
-        mProgressSlider->setEnabled( false );
-    }
-    else if ( ! mProgressSlider->isEnabled() )
-    {
-        mProgressSlider->setEnabled( true );
-    }
-
-    mProgressSlider->backgroundItem()->setVisible(
-            ( mController->viewMode() == EFullScreenView )? ETrue:EFalse );
-}
-
-// -------------------------------------------------------------------------------------------------
-// QMPXVideoPlaybackProgressBar::updateState()
-// -------------------------------------------------------------------------------------------------
-//
-void QMPXVideoPlaybackProgressBar::updateState( TMPXPlaybackState state )
-{
-    MPX_DEBUG(_L("QMPXVideoPlaybackProgressBar::updateState() state = %d"), state );
-
-    switch ( state )
-    {
-        case EPbStatePlaying:
-        case EPbStatePaused:
-        {
-            if ( ! mProgressSlider->isEnabled() )
-            {
-                mProgressSlider->setEnabled( true );
-            }
-
-            break;
-        }
-        default:
-        {
-            if ( mProgressSlider->isEnabled() )
-            {
-                mProgressSlider->setEnabled( false );
-            }
-            break;
-        }
-    }
-}
-
-// -------------------------------------------------------------------------------------------------
-// QMPXVideoPlaybackProgressBar::handleSeekingTimeout()
-// -------------------------------------------------------------------------------------------------
-//
-void QMPXVideoPlaybackProgressBar::handleSeekingTimeout()
-{
-    if ( mDraggingPosition >= mDuration )
-    {
-        mDraggingPosition = mDuration;
-    }
-    else if( mDraggingPosition < 0 )
-    {
-        mDraggingPosition = 0;
-    }
-
-    MPX_DEBUG(_L("QMPXVideoPlaybackProgressBar::handleSeekingTimeout() Dragging pos = %d, Set pos = %d")
-            , mDraggingPosition, mSetPosition );
-
-    if ( mSetPosition != mDraggingPosition )
-    {
-        mSetPosition = mDraggingPosition;
-        mController->handleCommand( EMPXPbvCmdSetPosition, mSetPosition );
-    }
-}
-
-//End of file