videoplayerapp/videoplayerengine/src/mpxvideoplayerappuiengine.cpp
author hgs
Thu, 08 Jul 2010 13:05:19 +0300
changeset 44 518105d52e45
parent 40 13331705e488
child 49 824471cb468a
permissions -rw-r--r--
201027
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
30
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 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:  CMpxVideoPlayerAppUiEngine
hgs
parents:
diff changeset
    15
 *
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
44
hgs
parents: 40
diff changeset
    18
// Version : %version:  10 %
30
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include <mpxcommand.h>
hgs
parents:
diff changeset
    23
#include <mpxcommandgeneraldefs.h>
hgs
parents:
diff changeset
    24
#include <mpxmessagegeneraldefs.h>
hgs
parents:
diff changeset
    25
#include <mpxplaybackmessage.h>
hgs
parents:
diff changeset
    26
#include <mpxplaybackutility.h>
hgs
parents:
diff changeset
    27
#include <mpxcollectionmessage.h>
hgs
parents:
diff changeset
    28
#include <mpxmediageneraldefs.h>
hgs
parents:
diff changeset
    29
#include <mpxcollectionmessagedefs.h>
hgs
parents:
diff changeset
    30
#include <vcxmyvideosdefs.h>
hgs
parents:
diff changeset
    31
#include <mpxcollectionpath.h>
hgs
parents:
diff changeset
    32
#include <videoplayeractivationmessage.h>
hgs
parents:
diff changeset
    33
#include <mpxcollectionuihelper.h>
hgs
parents:
diff changeset
    34
#include <mpxcollectionhelperfactory.h>
hgs
parents:
diff changeset
    35
#include <mpxcollectionplugin.hrh>
hgs
parents:
diff changeset
    36
#include <mpxmediageneralextdefs.h>
34
hgs
parents: 30
diff changeset
    37
#include <mmf/common/mmfcontrollerframeworkbase.h>
30
hgs
parents:
diff changeset
    38
hgs
parents:
diff changeset
    39
#include <coeutils.h>
hgs
parents:
diff changeset
    40
#include <videoplaylistutility.h>
hgs
parents:
diff changeset
    41
#include <mpxvideoplaybackdefs.h>
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
#include "mpxvideoplayerappuiengine.h"
hgs
parents:
diff changeset
    44
#include "mpxvideoplayerconstants.h"
44
hgs
parents: 40
diff changeset
    45
#include "videoplaybackwrapper.h"
30
hgs
parents:
diff changeset
    46
#include "mpxhbvideocommondefs.h"
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
#include "mpxvideo_debug.h"
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    51
//   CMpxVideoPlayerAppUiEngine::CMpxVideoPlayerAppUiEngine
hgs
parents:
diff changeset
    52
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    53
//
44
hgs
parents: 40
diff changeset
    54
CMpxVideoPlayerAppUiEngine::CMpxVideoPlayerAppUiEngine( VideoPlaybackWrapper* aWrapper )
30
hgs
parents:
diff changeset
    55
    : iPlaybackUtility( NULL ),
hgs
parents:
diff changeset
    56
      iCollectionUtility( NULL ),
hgs
parents:
diff changeset
    57
      iRecognizer( NULL ),
34
hgs
parents: 30
diff changeset
    58
      iAccessPointId( KUseDefaultIap ),
30
hgs
parents:
diff changeset
    59
      iMultilinkPlaylist( EFalse ),
hgs
parents:
diff changeset
    60
      iSeekable( ETrue ),
hgs
parents:
diff changeset
    61
      iUpdateSeekInfo( EFalse ),
hgs
parents:
diff changeset
    62
      iPlaybackWrapper( aWrapper )
hgs
parents:
diff changeset
    63
{
hgs
parents:
diff changeset
    64
}
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    67
//   CMpxVideoPlayerAppUiEngine::NewL
hgs
parents:
diff changeset
    68
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    69
//
44
hgs
parents: 40
diff changeset
    70
CMpxVideoPlayerAppUiEngine* CMpxVideoPlayerAppUiEngine::NewL( VideoPlaybackWrapper* aWrapper )
30
hgs
parents:
diff changeset
    71
{
hgs
parents:
diff changeset
    72
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::NewL()"));
hgs
parents:
diff changeset
    73
hgs
parents:
diff changeset
    74
    CMpxVideoPlayerAppUiEngine* self = new( ELeave) CMpxVideoPlayerAppUiEngine( aWrapper );
hgs
parents:
diff changeset
    75
hgs
parents:
diff changeset
    76
    CleanupStack::PushL(self);
hgs
parents:
diff changeset
    77
    self->ConstructL();
hgs
parents:
diff changeset
    78
    CleanupStack::Pop(self);
hgs
parents:
diff changeset
    79
    return self;
hgs
parents:
diff changeset
    80
}
hgs
parents:
diff changeset
    81
hgs
parents:
diff changeset
    82
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    83
//   CMpxVideoPlayerAppUiEngine::ConstructL
hgs
parents:
diff changeset
    84
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    85
//
hgs
parents:
diff changeset
    86
void CMpxVideoPlayerAppUiEngine::ConstructL()
35
hgs
parents: 34
diff changeset
    87
{    
hgs
parents: 34
diff changeset
    88
    TUid collectionMode( KUidMpxVideoPlayerApplication );
30
hgs
parents:
diff changeset
    89
35
hgs
parents: 34
diff changeset
    90
    iCollectionUtility = MMPXCollectionUtility::NewL( this, collectionMode ); 
hgs
parents: 34
diff changeset
    91
}
30
hgs
parents:
diff changeset
    92
35
hgs
parents: 34
diff changeset
    93
// -------------------------------------------------------------------------------------------------
hgs
parents: 34
diff changeset
    94
//   CMpxVideoPlayerAppUiEngine::PostInitL
hgs
parents: 34
diff changeset
    95
// -------------------------------------------------------------------------------------------------
hgs
parents: 34
diff changeset
    96
//
hgs
parents: 34
diff changeset
    97
void CMpxVideoPlayerAppUiEngine::LateInitL()
hgs
parents: 34
diff changeset
    98
{	       
36
hgs
parents: 35
diff changeset
    99
    CreatePlaybackUtilityL();
37
hgs
parents: 36
diff changeset
   100
    
hgs
parents: 36
diff changeset
   101
    if ( ! iRecognizer )
hgs
parents: 36
diff changeset
   102
    {
hgs
parents: 36
diff changeset
   103
        iRecognizer = CMediaRecognizer::NewL();
hgs
parents: 36
diff changeset
   104
    }
30
hgs
parents:
diff changeset
   105
}
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   108
//   CMpxVideoPlayerAppUiEngine::CreateCollectionUtilityMemberVariablesL
hgs
parents:
diff changeset
   109
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   110
//
hgs
parents:
diff changeset
   111
void CMpxVideoPlayerAppUiEngine::CreateCollectionUtilityMemberVariablesL()
hgs
parents:
diff changeset
   112
{
hgs
parents:
diff changeset
   113
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::CreateCollectionUtilityMemberVariablesL()"));
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
    if ( ! iCollectionUtility )
hgs
parents:
diff changeset
   116
    {
hgs
parents:
diff changeset
   117
        //  PLAYLIST default mode
hgs
parents:
diff changeset
   118
        iCollectionUtility = MMPXCollectionUtility::NewL( this );
hgs
parents:
diff changeset
   119
    }
hgs
parents:
diff changeset
   120
hgs
parents:
diff changeset
   121
    if ( ! iCollectionUiHelper )
hgs
parents:
diff changeset
   122
    {
hgs
parents:
diff changeset
   123
        iCollectionUiHelper = CMPXCollectionHelperFactory::NewCollectionUiHelperL();
hgs
parents:
diff changeset
   124
    }
hgs
parents:
diff changeset
   125
}
hgs
parents:
diff changeset
   126
hgs
parents:
diff changeset
   127
// -------------------------------------------------------------------------------------------------
36
hgs
parents: 35
diff changeset
   128
//   CMpxVideoPlayerAppUiEngine::CreatePlaybackUtilityL
30
hgs
parents:
diff changeset
   129
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   130
//
36
hgs
parents: 35
diff changeset
   131
void CMpxVideoPlayerAppUiEngine::CreatePlaybackUtilityL()
30
hgs
parents:
diff changeset
   132
{
36
hgs
parents: 35
diff changeset
   133
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::CreatePlaybackUtilityL()"));
30
hgs
parents:
diff changeset
   134
hgs
parents:
diff changeset
   135
    if ( ! iPlaybackUtility )
hgs
parents:
diff changeset
   136
    {
hgs
parents:
diff changeset
   137
        //
hgs
parents:
diff changeset
   138
        //  Create VideoHelix playback plugin
hgs
parents:
diff changeset
   139
        //
hgs
parents:
diff changeset
   140
        iPlaybackUtility = MMPXPlaybackUtility::UtilityL( EMPXCategoryVideo, KPbModeNewPlayer );
hgs
parents:
diff changeset
   141
        MMPXPlayerManager& manager = iPlaybackUtility->PlayerManager();
hgs
parents:
diff changeset
   142
        manager.SelectPlayerL( KVideoHelixPlaybackPluginUid );
hgs
parents:
diff changeset
   143
        iPlaybackUtility->AddObserverL( *this );
hgs
parents:
diff changeset
   144
        iPlaybackUtility->CommandL( EPbCmdSetAutoResume, EFalse );
hgs
parents:
diff changeset
   145
    }
hgs
parents:
diff changeset
   146
}
hgs
parents:
diff changeset
   147
hgs
parents:
diff changeset
   148
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   149
//   CMpxVideoPlayerAppUiEngine::~CMpxVideoPlayerAppUiEngine
hgs
parents:
diff changeset
   150
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   151
//
hgs
parents:
diff changeset
   152
CMpxVideoPlayerAppUiEngine::~CMpxVideoPlayerAppUiEngine()
hgs
parents:
diff changeset
   153
{
hgs
parents:
diff changeset
   154
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::~CMpxVideoPlayerAppUiEngine()"));
hgs
parents:
diff changeset
   155
hgs
parents:
diff changeset
   156
    if ( iRecognizer )
hgs
parents:
diff changeset
   157
    {
hgs
parents:
diff changeset
   158
        delete iRecognizer;
hgs
parents:
diff changeset
   159
        iRecognizer = NULL;
hgs
parents:
diff changeset
   160
    }
hgs
parents:
diff changeset
   161
hgs
parents:
diff changeset
   162
    if ( iCollectionUtility )
hgs
parents:
diff changeset
   163
    {
hgs
parents:
diff changeset
   164
        iCollectionUtility->Close();
hgs
parents:
diff changeset
   165
    }
hgs
parents:
diff changeset
   166
hgs
parents:
diff changeset
   167
    if ( iCollectionUiHelper )
hgs
parents:
diff changeset
   168
    {
hgs
parents:
diff changeset
   169
        iCollectionUiHelper->Close();
hgs
parents:
diff changeset
   170
    }
hgs
parents:
diff changeset
   171
hgs
parents:
diff changeset
   172
    if ( iPlaybackUtility )
hgs
parents:
diff changeset
   173
    {
hgs
parents:
diff changeset
   174
        TRAP_IGNORE( iPlaybackUtility->CommandL( EPbCmdClose ) );
hgs
parents:
diff changeset
   175
        TRAP_IGNORE( iPlaybackUtility->RemoveObserverL( *this ) );
hgs
parents:
diff changeset
   176
        iPlaybackUtility->Close();
hgs
parents:
diff changeset
   177
    }
hgs
parents:
diff changeset
   178
}
hgs
parents:
diff changeset
   179
hgs
parents:
diff changeset
   180
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   181
// From MMPXPlaybackObserver
hgs
parents:
diff changeset
   182
// Handle playback message.
hgs
parents:
diff changeset
   183
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   184
//
hgs
parents:
diff changeset
   185
void CMpxVideoPlayerAppUiEngine::HandlePlaybackMessage( CMPXMessage* aMessage, TInt aError )
hgs
parents:
diff changeset
   186
{
hgs
parents:
diff changeset
   187
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::HandlePlaybackMessage()"));
hgs
parents:
diff changeset
   188
hgs
parents:
diff changeset
   189
    if ( aError == KErrNone && aMessage )
hgs
parents:
diff changeset
   190
    {
hgs
parents:
diff changeset
   191
        TRAP_IGNORE( DoHandlePlaybackMessageL( *aMessage ) );
hgs
parents:
diff changeset
   192
    }
hgs
parents:
diff changeset
   193
}
hgs
parents:
diff changeset
   194
hgs
parents:
diff changeset
   195
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   196
// From MMPXViewActivationObserver.
hgs
parents:
diff changeset
   197
// Handle view activation.
hgs
parents:
diff changeset
   198
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
   199
//
hgs
parents:
diff changeset
   200
void CMpxVideoPlayerAppUiEngine::HandleViewActivation( const TUid& /*aCurrentViewType*/,
hgs
parents:
diff changeset
   201
                                                       const TUid& /*aPreviousViewType*/ )
hgs
parents:
diff changeset
   202
{
hgs
parents:
diff changeset
   203
}
hgs
parents:
diff changeset
   204
hgs
parents:
diff changeset
   205
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   206
//   CMpxVideoPlayerAppUiEngine::OpenFileL
hgs
parents:
diff changeset
   207
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   208
//
36
hgs
parents: 35
diff changeset
   209
void CMpxVideoPlayerAppUiEngine::OpenFileL( RFile& aFile )
30
hgs
parents:
diff changeset
   210
{
hgs
parents:
diff changeset
   211
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::OpenFileL(RFile)"));
hgs
parents:
diff changeset
   212
36
hgs
parents: 35
diff changeset
   213
    TFileName filename;
hgs
parents: 35
diff changeset
   214
    aFile.FullName(filename);
37
hgs
parents: 36
diff changeset
   215
    
hgs
parents: 36
diff changeset
   216
    LateInitL();
30
hgs
parents:
diff changeset
   217
36
hgs
parents: 35
diff changeset
   218
    CMediaRecognizer::TMediaType mediaType = iRecognizer->IdentifyMediaTypeL( filename, aFile );
30
hgs
parents:
diff changeset
   219
36
hgs
parents: 35
diff changeset
   220
    if ( mediaType == CMediaRecognizer::ELocalRamFile ||
hgs
parents: 35
diff changeset
   221
         mediaType == CMediaRecognizer::ELocalAsxFile )
hgs
parents: 35
diff changeset
   222
    {
hgs
parents: 35
diff changeset
   223
        HandleMultiLinksFileL( aFile, mediaType );
30
hgs
parents:
diff changeset
   224
    }
36
hgs
parents: 35
diff changeset
   225
    else if ( mediaType == CMediaRecognizer::ELocalSdpFile )
hgs
parents: 35
diff changeset
   226
    {
hgs
parents: 35
diff changeset
   227
        iPlaybackUtility->InitStreamingL( aFile, iAccessPointId );
hgs
parents: 35
diff changeset
   228
    }
hgs
parents: 35
diff changeset
   229
    else
hgs
parents: 35
diff changeset
   230
    {
hgs
parents: 35
diff changeset
   231
        iPlaybackUtility->InitL( aFile );
hgs
parents: 35
diff changeset
   232
    }    
30
hgs
parents:
diff changeset
   233
hgs
parents:
diff changeset
   234
    iRecognizer->FreeFilehandle();
hgs
parents:
diff changeset
   235
hgs
parents:
diff changeset
   236
    aFile.Close();
hgs
parents:
diff changeset
   237
}
hgs
parents:
diff changeset
   238
36
hgs
parents: 35
diff changeset
   239
30
hgs
parents:
diff changeset
   240
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   241
//   CMpxVideoPlayerAppUiEngine::OpenFileL
hgs
parents:
diff changeset
   242
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   243
//
hgs
parents:
diff changeset
   244
void CMpxVideoPlayerAppUiEngine::OpenFileL( const TDesC& aFileName )
hgs
parents:
diff changeset
   245
{
hgs
parents:
diff changeset
   246
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::OpenFileL()"),
36
hgs
parents: 35
diff changeset
   247
                   _L("aFileName = %S"), &aFileName);    
hgs
parents: 35
diff changeset
   248
    
37
hgs
parents: 36
diff changeset
   249
    LateInitL();
hgs
parents: 36
diff changeset
   250
    
30
hgs
parents:
diff changeset
   251
    CMediaRecognizer::TMediaType mediaType = iRecognizer->IdentifyMediaTypeL(aFileName);
hgs
parents:
diff changeset
   252
hgs
parents:
diff changeset
   253
    if ( mediaType == CMediaRecognizer::ELocalVideoFile )
hgs
parents:
diff changeset
   254
    {
hgs
parents:
diff changeset
   255
        iPlaybackUtility->InitL( aFileName );
hgs
parents:
diff changeset
   256
    }
hgs
parents:
diff changeset
   257
    // check if aFileName is a path to a ram or asx file
hgs
parents:
diff changeset
   258
    //          eg. c:\\data\\videos\\ramfile.ram
hgs
parents:
diff changeset
   259
    else if ( mediaType == CMediaRecognizer::ELocalRamFile ||
hgs
parents:
diff changeset
   260
              mediaType == CMediaRecognizer::ELocalAsxFile )
hgs
parents:
diff changeset
   261
    {
hgs
parents:
diff changeset
   262
        HandleMultiLinksFileL( aFileName, mediaType );
hgs
parents:
diff changeset
   263
    }
hgs
parents:
diff changeset
   264
    // check if this is a url eg. rtsp://someaddress/file.3gp
hgs
parents:
diff changeset
   265
    //
hgs
parents:
diff changeset
   266
    else if ( iRecognizer->IsValidStreamingPrefix(aFileName) )
hgs
parents:
diff changeset
   267
    {
hgs
parents:
diff changeset
   268
        HandleUrlDesL( aFileName );
hgs
parents:
diff changeset
   269
    }
hgs
parents:
diff changeset
   270
    else if ( mediaType == CMediaRecognizer::ELocalSdpFile )
hgs
parents:
diff changeset
   271
    {
hgs
parents:
diff changeset
   272
        iPlaybackUtility->InitStreamingL( aFileName,
hgs
parents:
diff changeset
   273
                                         (TDesC8*)(&KDATATYPEVIDEOHELIX),
hgs
parents:
diff changeset
   274
                                         iAccessPointId );
hgs
parents:
diff changeset
   275
    }
hgs
parents:
diff changeset
   276
    else
hgs
parents:
diff changeset
   277
    {
hgs
parents:
diff changeset
   278
        iPlaybackUtility->InitL( aFileName );
hgs
parents:
diff changeset
   279
    }
hgs
parents:
diff changeset
   280
hgs
parents:
diff changeset
   281
    iRecognizer->FreeFilehandle();
hgs
parents:
diff changeset
   282
}
hgs
parents:
diff changeset
   283
hgs
parents:
diff changeset
   284
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   285
// Open MPX media to player.
hgs
parents:
diff changeset
   286
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   287
//
hgs
parents:
diff changeset
   288
void CMpxVideoPlayerAppUiEngine::OpenMediaL( const CMPXMedia& aMedia )
hgs
parents:
diff changeset
   289
{
hgs
parents:
diff changeset
   290
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::OpenMediaL()"));
hgs
parents:
diff changeset
   291
hgs
parents:
diff changeset
   292
    // Assume MPX medias are always local clips
hgs
parents:
diff changeset
   293
    CMPXCollectionPath* mediaPath = CMPXCollectionPath::NewL();
hgs
parents:
diff changeset
   294
    CleanupStack::PushL( mediaPath );
hgs
parents:
diff changeset
   295
hgs
parents:
diff changeset
   296
    //
hgs
parents:
diff changeset
   297
    // Workaround. Need a file like vcxmyvideosuids.h 
hgs
parents:
diff changeset
   298
    //
hgs
parents:
diff changeset
   299
    mediaPath->AppendL( 0x20016B97 );
hgs
parents:
diff changeset
   300
    mediaPath->AppendL( KVcxMvcCategoryIdAll );
hgs
parents:
diff changeset
   301
        
hgs
parents:
diff changeset
   302
    mediaPath->AppendL( aMedia.ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
hgs
parents:
diff changeset
   303
    mediaPath->SelectL( aMedia.ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
hgs
parents:
diff changeset
   304
hgs
parents:
diff changeset
   305
    CMPXCollectionPlaylist* playList = CMPXCollectionPlaylist::NewL( *mediaPath );
hgs
parents:
diff changeset
   306
    CleanupStack::PushL( playList );
hgs
parents:
diff changeset
   307
    playList->SetSingleItemPlaylist();
hgs
parents:
diff changeset
   308
    playList->SetToFirst();
37
hgs
parents: 36
diff changeset
   309
    
hgs
parents: 36
diff changeset
   310
    LateInitL();
hgs
parents: 36
diff changeset
   311
    
30
hgs
parents:
diff changeset
   312
    iPlaybackUtility->InitL( *playList, ETrue );
hgs
parents:
diff changeset
   313
hgs
parents:
diff changeset
   314
    CleanupStack::PopAndDestroy( playList );
hgs
parents:
diff changeset
   315
    CleanupStack::PopAndDestroy( mediaPath );
hgs
parents:
diff changeset
   316
}
hgs
parents:
diff changeset
   317
hgs
parents:
diff changeset
   318
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   319
// Handle playback message.
hgs
parents:
diff changeset
   320
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   321
//
hgs
parents:
diff changeset
   322
void CMpxVideoPlayerAppUiEngine::DoHandlePlaybackMessageL( const CMPXMessage& aMessage )
hgs
parents:
diff changeset
   323
{
hgs
parents:
diff changeset
   324
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::DoHandlePlaybackMessageL()"));
hgs
parents:
diff changeset
   325
hgs
parents:
diff changeset
   326
    TMPXMessageId id( *aMessage.Value<TMPXMessageId>( KMPXMessageGeneralId ) );
hgs
parents:
diff changeset
   327
hgs
parents:
diff changeset
   328
    MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::DoHandlePlaybackMessageL TMPXMessageId = 0x%08x"), id );
hgs
parents:
diff changeset
   329
hgs
parents:
diff changeset
   330
    if ( KMPXMessageGeneral == id )
hgs
parents:
diff changeset
   331
    {
hgs
parents:
diff changeset
   332
        TInt event( *aMessage.Value<TInt>( KMPXMessageGeneralEvent ) );
hgs
parents:
diff changeset
   333
hgs
parents:
diff changeset
   334
        MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::DoHandlePlaybackMessageL() event = %d"), event);
hgs
parents:
diff changeset
   335
hgs
parents:
diff changeset
   336
        switch ( event )
hgs
parents:
diff changeset
   337
        {
hgs
parents:
diff changeset
   338
            case TMPXPlaybackMessage::EPlayerChanged:
hgs
parents:
diff changeset
   339
            {
hgs
parents:
diff changeset
   340
                MPX_DEBUG(_L("    EPlayerChanged"));
hgs
parents:
diff changeset
   341
hgs
parents:
diff changeset
   342
                if ( iUpdateSeekInfo )
hgs
parents:
diff changeset
   343
                {
hgs
parents:
diff changeset
   344
                    // The plugin has been instantiated, update the media
hgs
parents:
diff changeset
   345
                    UpdatePbPluginMediaL();
hgs
parents:
diff changeset
   346
                    iUpdateSeekInfo = EFalse;
hgs
parents:
diff changeset
   347
                }
hgs
parents:
diff changeset
   348
hgs
parents:
diff changeset
   349
                HandlePlaybackPlayerChangedL();
hgs
parents:
diff changeset
   350
                break;
hgs
parents:
diff changeset
   351
            }
hgs
parents:
diff changeset
   352
        }
hgs
parents:
diff changeset
   353
    }
hgs
parents:
diff changeset
   354
}
hgs
parents:
diff changeset
   355
hgs
parents:
diff changeset
   356
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   357
// Handle playback message for player changed.
hgs
parents:
diff changeset
   358
// Activate the view which support this player
hgs
parents:
diff changeset
   359
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   360
//
hgs
parents:
diff changeset
   361
void CMpxVideoPlayerAppUiEngine::HandlePlaybackPlayerChangedL()
hgs
parents:
diff changeset
   362
{
hgs
parents:
diff changeset
   363
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::HandlePlaybackPlayerChangedL()"));
hgs
parents:
diff changeset
   364
hgs
parents:
diff changeset
   365
    ActivateVideoPlaybackView();
hgs
parents:
diff changeset
   366
}
hgs
parents:
diff changeset
   367
hgs
parents:
diff changeset
   368
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   369
// Creates plugin resolver + creates & activates the video view
hgs
parents:
diff changeset
   370
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   371
//
hgs
parents:
diff changeset
   372
void CMpxVideoPlayerAppUiEngine::ActivateVideoPlaybackView()
hgs
parents:
diff changeset
   373
{
hgs
parents:
diff changeset
   374
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::ActivateVideoPlaybackView()"));
hgs
parents:
diff changeset
   375
    
hgs
parents:
diff changeset
   376
    iPlaybackWrapper->openPlaybackView();
hgs
parents:
diff changeset
   377
}
hgs
parents:
diff changeset
   378
hgs
parents:
diff changeset
   379
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   380
// Closed mpx components and readies to application takedown.
hgs
parents:
diff changeset
   381
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   382
//
hgs
parents:
diff changeset
   383
void CMpxVideoPlayerAppUiEngine::PrepareCloseMpxL()
hgs
parents:
diff changeset
   384
{
hgs
parents:
diff changeset
   385
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::PrepareCloseMpxL()"));
hgs
parents:
diff changeset
   386
hgs
parents:
diff changeset
   387
    if ( iPlaybackUtility )
hgs
parents:
diff changeset
   388
    {
hgs
parents:
diff changeset
   389
        iPlaybackUtility->CommandL( EPbCmdClose );
hgs
parents:
diff changeset
   390
        MMPXPlayerManager& manager = iPlaybackUtility->PlayerManager();
hgs
parents:
diff changeset
   391
        TRAP_IGNORE( manager.ClearSelectPlayersL() );
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
// Handle collection message
hgs
parents:
diff changeset
   397
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   398
//
hgs
parents:
diff changeset
   399
void CMpxVideoPlayerAppUiEngine::DoHandleCollectionMessageL( CMPXMessage* aMessage )
hgs
parents:
diff changeset
   400
{
hgs
parents:
diff changeset
   401
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::DoHandleCollectionMessageL()"));
hgs
parents:
diff changeset
   402
hgs
parents:
diff changeset
   403
    TMPXMessageId id = *(aMessage->Value<TMPXMessageId>( KMPXMessageGeneralId ));
hgs
parents:
diff changeset
   404
hgs
parents:
diff changeset
   405
    MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::DoHandleCollectionMessageL() TMPXMessageId = 0x%08x"), id );
hgs
parents:
diff changeset
   406
hgs
parents:
diff changeset
   407
    if ( id == KMPXMessageGeneral )
hgs
parents:
diff changeset
   408
    {
hgs
parents:
diff changeset
   409
        TInt event( *( aMessage->Value<TInt> ( KMPXMessageGeneralEvent )) );
hgs
parents:
diff changeset
   410
        TInt type( *( aMessage->Value<TInt> ( KMPXMessageGeneralType )) );
hgs
parents:
diff changeset
   411
        TInt data( *( aMessage->Value<TInt> ( KMPXMessageGeneralData )) );
hgs
parents:
diff changeset
   412
hgs
parents:
diff changeset
   413
        MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::DoHandleCollectionMessageL event %d, type %d, data %d"), event, type, data );
hgs
parents:
diff changeset
   414
hgs
parents:
diff changeset
   415
        if ( event == TMPXCollectionMessage::EPathChanged && type == EMcPathChangedByOpen )
hgs
parents:
diff changeset
   416
        {
hgs
parents:
diff changeset
   417
            if ( data == EMcItemOpened )
hgs
parents:
diff changeset
   418
            {
hgs
parents:
diff changeset
   419
                // An item was opened on the collection. Get the media attributes
hgs
parents:
diff changeset
   420
                // on the item so we can initiatiate playback
hgs
parents:
diff changeset
   421
                MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::DoHandleCollectionMessageL: EMcItemOpened received. Can open video"));
hgs
parents:
diff changeset
   422
hgs
parents:
diff changeset
   423
                CMPXCollectionPath* cPath = iCollectionUtility->Collection().PathL();
hgs
parents:
diff changeset
   424
hgs
parents:
diff changeset
   425
                CleanupStack::PushL( cPath );
hgs
parents:
diff changeset
   426
hgs
parents:
diff changeset
   427
                if ( cPath->Count() > 0 )
hgs
parents:
diff changeset
   428
                {
hgs
parents:
diff changeset
   429
                    MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::DoHandleCollectionMessageL: Call MediaL() on collection."));
hgs
parents:
diff changeset
   430
hgs
parents:
diff changeset
   431
                     RArray<TMPXAttribute> attribs;
hgs
parents:
diff changeset
   432
                    CleanupClosePushL( attribs );
hgs
parents:
diff changeset
   433
hgs
parents:
diff changeset
   434
                    attribs.Append( KMPXMediaGeneralUri );
hgs
parents:
diff changeset
   435
                    attribs.Append( KVcxMediaMyVideosDownloadId );
hgs
parents:
diff changeset
   436
                    iCollectionUtility->Collection().MediaL( *cPath, attribs.Array() );
hgs
parents:
diff changeset
   437
hgs
parents:
diff changeset
   438
                    CleanupStack::PopAndDestroy( &attribs );
hgs
parents:
diff changeset
   439
                }
hgs
parents:
diff changeset
   440
hgs
parents:
diff changeset
   441
                CleanupStack::PopAndDestroy( cPath );
hgs
parents:
diff changeset
   442
            }
hgs
parents:
diff changeset
   443
            else if ( data == EMcContainerOpened && iMultilinkPlaylist )
hgs
parents:
diff changeset
   444
            {
hgs
parents:
diff changeset
   445
                // start the playback for streaming playlists
hgs
parents:
diff changeset
   446
                // once the playlist is opened
hgs
parents:
diff changeset
   447
                iMultilinkPlaylist = EFalse;
hgs
parents:
diff changeset
   448
hgs
parents:
diff changeset
   449
                // The playlist was opened, initiatiate playback
hgs
parents:
diff changeset
   450
                MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::DoHandleCollectionMessageL: EMcContainerOpened received. initiatiate playback"));
hgs
parents:
diff changeset
   451
hgs
parents:
diff changeset
   452
                CMPXCollectionPath* cPath = iCollectionUtility->Collection().PathL();
hgs
parents:
diff changeset
   453
                CleanupStack::PushL( cPath );
hgs
parents:
diff changeset
   454
hgs
parents:
diff changeset
   455
                if ( cPath->Count() > 0 )
hgs
parents:
diff changeset
   456
                {
hgs
parents:
diff changeset
   457
                    MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::DoHandleCollectionMessageL: Call Playback utility with the playlist."));
hgs
parents:
diff changeset
   458
hgs
parents:
diff changeset
   459
                    CMPXCollectionPlaylist* playlist = CMPXCollectionPlaylist::NewL( *cPath );
hgs
parents:
diff changeset
   460
                    CleanupStack::PushL( playlist );
hgs
parents:
diff changeset
   461
hgs
parents:
diff changeset
   462
                    // Set the AutoPlay mode to false
hgs
parents:
diff changeset
   463
                    playlist->SetAutoPlay(EFalse);
hgs
parents:
diff changeset
   464
                    // set pre init plugin to false
hgs
parents:
diff changeset
   465
                    playlist->SetPreInitPlugin(EFalse);
hgs
parents:
diff changeset
   466
hgs
parents:
diff changeset
   467
                    iPlaybackUtility->InitL( *playlist, ETrue );
hgs
parents:
diff changeset
   468
                    CleanupStack::PopAndDestroy( playlist );
hgs
parents:
diff changeset
   469
                }
hgs
parents:
diff changeset
   470
                CleanupStack::PopAndDestroy( cPath );
hgs
parents:
diff changeset
   471
            }
hgs
parents:
diff changeset
   472
        }
hgs
parents:
diff changeset
   473
    }
hgs
parents:
diff changeset
   474
}
hgs
parents:
diff changeset
   475
hgs
parents:
diff changeset
   476
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   477
// From MMPXCollectionObserver.
hgs
parents:
diff changeset
   478
// Handle media properties.
hgs
parents:
diff changeset
   479
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   480
//
hgs
parents:
diff changeset
   481
void CMpxVideoPlayerAppUiEngine::DoHandelCollectionMediaL( const CMPXMedia& aMedia )
hgs
parents:
diff changeset
   482
{
hgs
parents:
diff changeset
   483
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::DoHandelCollectionMediaL()"));
hgs
parents:
diff changeset
   484
hgs
parents:
diff changeset
   485
    const TDesC& fileUri = aMedia.ValueText(KMPXMediaGeneralUri);
hgs
parents:
diff changeset
   486
hgs
parents:
diff changeset
   487
    MPX_DEBUG(_L("Video URI: %S"), &fileUri );
hgs
parents:
diff changeset
   488
36
hgs
parents: 35
diff changeset
   489
    //OpenMediaL( aMedia ); // Initialize and initiate playback of a single video
30
hgs
parents:
diff changeset
   490
37
hgs
parents: 36
diff changeset
   491
    LateInitL();
hgs
parents: 36
diff changeset
   492
    
36
hgs
parents: 35
diff changeset
   493
    TPtrC mediaFile( aMedia.ValueText( KMPXMediaGeneralUri ) );
hgs
parents: 35
diff changeset
   494
    CMediaRecognizer::TMediaType mediaType = iRecognizer->IdentifyMediaTypeL(mediaFile);
hgs
parents: 35
diff changeset
   495
        
hgs
parents: 35
diff changeset
   496
    if ( mediaType == CMediaRecognizer::ELocalRamFile ||
hgs
parents: 35
diff changeset
   497
         mediaType == CMediaRecognizer::ELocalAsxFile )
37
hgs
parents: 36
diff changeset
   498
    {   
36
hgs
parents: 35
diff changeset
   499
        HandleMultiLinksFileL( mediaFile, mediaType );
hgs
parents: 35
diff changeset
   500
    }    
30
hgs
parents:
diff changeset
   501
    else
hgs
parents:
diff changeset
   502
    {
36
hgs
parents: 35
diff changeset
   503
        OpenMediaL( aMedia ); // Initialize and initiate playback of a single video
hgs
parents: 35
diff changeset
   504
    }    
30
hgs
parents:
diff changeset
   505
}
hgs
parents:
diff changeset
   506
hgs
parents:
diff changeset
   507
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   508
//   CMpxVideoPlayerAppUiEngine::HandleMultiLinksFileL
hgs
parents:
diff changeset
   509
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   510
//
hgs
parents:
diff changeset
   511
void CMpxVideoPlayerAppUiEngine::HandleMultiLinksFileL( const TDesC& aFileName,
hgs
parents:
diff changeset
   512
                                                        CMediaRecognizer::TMediaType aMediaType )
hgs
parents:
diff changeset
   513
{
hgs
parents:
diff changeset
   514
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::HandleMultiLinksFileL()"),
hgs
parents:
diff changeset
   515
                   _L("aFileName = %S, type = %d"), &aFileName, aMediaType );
hgs
parents:
diff changeset
   516
hgs
parents:
diff changeset
   517
    TBool singleLink;
hgs
parents:
diff changeset
   518
    TBool localFile;
hgs
parents:
diff changeset
   519
hgs
parents:
diff changeset
   520
    CVideoPlaylistUtility* playlistUtil = CVideoPlaylistUtility::NewL();
hgs
parents:
diff changeset
   521
    CleanupStack::PushL(playlistUtil);
hgs
parents:
diff changeset
   522
hgs
parents:
diff changeset
   523
    playlistUtil->GetFileInfoL( aFileName, aMediaType, singleLink, localFile );
hgs
parents:
diff changeset
   524
hgs
parents:
diff changeset
   525
    DoHandleMultiLinksFileL( playlistUtil, singleLink, localFile );
hgs
parents:
diff changeset
   526
hgs
parents:
diff changeset
   527
    CleanupStack::PopAndDestroy( playlistUtil );
hgs
parents:
diff changeset
   528
}
hgs
parents:
diff changeset
   529
hgs
parents:
diff changeset
   530
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   531
//   CMpxVideoPlayerAppUiEngine::HandleMultiLinksFileL
hgs
parents:
diff changeset
   532
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   533
//
hgs
parents:
diff changeset
   534
void CMpxVideoPlayerAppUiEngine::HandleMultiLinksFileL( RFile& aFile,
hgs
parents:
diff changeset
   535
                                                        CMediaRecognizer::TMediaType aMediaType )
hgs
parents:
diff changeset
   536
{
hgs
parents:
diff changeset
   537
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::HandleMultiLinksFileL(RFile)"));
hgs
parents:
diff changeset
   538
hgs
parents:
diff changeset
   539
    // playlist
hgs
parents:
diff changeset
   540
    TBool singleLink;
hgs
parents:
diff changeset
   541
    TBool localFile;
hgs
parents:
diff changeset
   542
hgs
parents:
diff changeset
   543
    CVideoPlaylistUtility* playlistUtil = CVideoPlaylistUtility::NewL();
hgs
parents:
diff changeset
   544
    CleanupStack::PushL(playlistUtil);
hgs
parents:
diff changeset
   545
hgs
parents:
diff changeset
   546
    playlistUtil->GetFileInfoL( aFile, aMediaType, singleLink, localFile );
hgs
parents:
diff changeset
   547
hgs
parents:
diff changeset
   548
    DoHandleMultiLinksFileL( playlistUtil, singleLink, localFile );
hgs
parents:
diff changeset
   549
hgs
parents:
diff changeset
   550
    CleanupStack::PopAndDestroy( playlistUtil );
hgs
parents:
diff changeset
   551
}
hgs
parents:
diff changeset
   552
hgs
parents:
diff changeset
   553
hgs
parents:
diff changeset
   554
void CMpxVideoPlayerAppUiEngine::DoHandleMultiLinksFileL( CVideoPlaylistUtility* aPlaylistUtil,
hgs
parents:
diff changeset
   555
                                                          TBool aSingleLink,
hgs
parents:
diff changeset
   556
                                                          TBool aLocalFile )
hgs
parents:
diff changeset
   557
{
hgs
parents:
diff changeset
   558
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::DoHandleMultiLinksFileL()"),
hgs
parents:
diff changeset
   559
                   _L("aSingleLink = %d aLocalFile %d "), aSingleLink, aLocalFile);
hgs
parents:
diff changeset
   560
hgs
parents:
diff changeset
   561
    if ( aSingleLink )
hgs
parents:
diff changeset
   562
    {
hgs
parents:
diff changeset
   563
        TPtrC link;
hgs
parents:
diff changeset
   564
        link.Set( aPlaylistUtil->GetLinkLC() );
hgs
parents:
diff changeset
   565
        iUpdateSeekInfo = ETrue;
hgs
parents:
diff changeset
   566
        iSeekable = aPlaylistUtil->IsSeekable();
hgs
parents:
diff changeset
   567
hgs
parents:
diff changeset
   568
        if ( aLocalFile )
hgs
parents:
diff changeset
   569
        {
40
hgs
parents: 37
diff changeset
   570
            iPlaybackUtility->InitL( link );
30
hgs
parents:
diff changeset
   571
        }
hgs
parents:
diff changeset
   572
        else
hgs
parents:
diff changeset
   573
        {
hgs
parents:
diff changeset
   574
            iPlaybackUtility->InitStreamingL( link,
hgs
parents:
diff changeset
   575
                                             (TDesC8*)(&KDATATYPEVIDEOHELIX),
hgs
parents:
diff changeset
   576
                                             iAccessPointId );
hgs
parents:
diff changeset
   577
        }
hgs
parents:
diff changeset
   578
        CleanupStack::PopAndDestroy();  // link
hgs
parents:
diff changeset
   579
    }
hgs
parents:
diff changeset
   580
    else
hgs
parents:
diff changeset
   581
    {
hgs
parents:
diff changeset
   582
hgs
parents:
diff changeset
   583
        CMPXMedia* playlist = aPlaylistUtil->GetPlayListL( iAccessPointId );
hgs
parents:
diff changeset
   584
        CleanupStack::PushL( playlist );
hgs
parents:
diff changeset
   585
hgs
parents:
diff changeset
   586
        //  Create FW utility member variables for playlist embedded use case
hgs
parents:
diff changeset
   587
        CreateCollectionUtilityMemberVariablesL();
hgs
parents:
diff changeset
   588
hgs
parents:
diff changeset
   589
        // Set the flag to true
hgs
parents:
diff changeset
   590
        iMultilinkPlaylist = ETrue;
hgs
parents:
diff changeset
   591
hgs
parents:
diff changeset
   592
        // load the in memory plugin
hgs
parents:
diff changeset
   593
        iCollectionUiHelper->OpenL( KUidMpxVideoPlayerApplication,
hgs
parents:
diff changeset
   594
                                    *playlist,
hgs
parents:
diff changeset
   595
                                    this,
hgs
parents:
diff changeset
   596
                                    EMPXCollectionPluginGallery );
hgs
parents:
diff changeset
   597
hgs
parents:
diff changeset
   598
        CleanupStack::PopAndDestroy( playlist );
hgs
parents:
diff changeset
   599
    }
hgs
parents:
diff changeset
   600
}
hgs
parents:
diff changeset
   601
hgs
parents:
diff changeset
   602
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   603
//   CMpxVideoPlayerAppUiEngine::HandleUrlDesL
hgs
parents:
diff changeset
   604
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   605
//
hgs
parents:
diff changeset
   606
void CMpxVideoPlayerAppUiEngine::HandleUrlDesL( const TDesC& aUrl )
hgs
parents:
diff changeset
   607
{
hgs
parents:
diff changeset
   608
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::HandleUrlDesL()"),
hgs
parents:
diff changeset
   609
                   _L("aUrl = %S"), &aUrl );
hgs
parents:
diff changeset
   610
hgs
parents:
diff changeset
   611
    iPlaybackUtility->InitStreamingL( aUrl,
hgs
parents:
diff changeset
   612
                                      (TDesC8*)(&KDATATYPEVIDEOHELIX),
hgs
parents:
diff changeset
   613
                                      iAccessPointId );
hgs
parents:
diff changeset
   614
}
hgs
parents:
diff changeset
   615
hgs
parents:
diff changeset
   616
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   617
//   CMpxVideoPlayerAppUiEngine::HandleMessageL()
hgs
parents:
diff changeset
   618
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   619
//
36
hgs
parents: 35
diff changeset
   620
TBool CMpxVideoPlayerAppUiEngine::HandleMessageL( TUid /* aMessageUid */,
hgs
parents: 35
diff changeset
   621
                                                  const TDesC8& /* aMessageParameters */ )
30
hgs
parents:
diff changeset
   622
{
hgs
parents:
diff changeset
   623
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::HandleMessageL()"));
hgs
parents:
diff changeset
   624
hgs
parents:
diff changeset
   625
    TBool msgHandled = EFalse;
hgs
parents:
diff changeset
   626
hgs
parents:
diff changeset
   627
    return msgHandled;
hgs
parents:
diff changeset
   628
}
hgs
parents:
diff changeset
   629
hgs
parents:
diff changeset
   630
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   631
// Handle Custom messages from the collection
hgs
parents:
diff changeset
   632
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   633
//
hgs
parents:
diff changeset
   634
void CMpxVideoPlayerAppUiEngine::HandleCollectionMessage( CMPXMessage* aMessage, TInt aError )
hgs
parents:
diff changeset
   635
{
hgs
parents:
diff changeset
   636
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::HandleCollectionMessage()"));
hgs
parents:
diff changeset
   637
hgs
parents:
diff changeset
   638
    if ( aError == KErrNone && aMessage )
hgs
parents:
diff changeset
   639
    {
hgs
parents:
diff changeset
   640
        TRAP_IGNORE( DoHandleCollectionMessageL( aMessage ) )
hgs
parents:
diff changeset
   641
    }
hgs
parents:
diff changeset
   642
}
hgs
parents:
diff changeset
   643
hgs
parents:
diff changeset
   644
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   645
// From MMPXCollectionObserver.
hgs
parents:
diff changeset
   646
// Handle media properties.
hgs
parents:
diff changeset
   647
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   648
//
hgs
parents:
diff changeset
   649
void CMpxVideoPlayerAppUiEngine::HandleCollectionMediaL( const CMPXMedia& aMedia, TInt aError )
hgs
parents:
diff changeset
   650
{
hgs
parents:
diff changeset
   651
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::HandleCollectionMediaL()"));
hgs
parents:
diff changeset
   652
hgs
parents:
diff changeset
   653
    if ( aError == KErrNone )
hgs
parents:
diff changeset
   654
    {
hgs
parents:
diff changeset
   655
        DoHandelCollectionMediaL( aMedia );
hgs
parents:
diff changeset
   656
    }
hgs
parents:
diff changeset
   657
}
hgs
parents:
diff changeset
   658
hgs
parents:
diff changeset
   659
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   660
// From MMPXCollectionObserver.
hgs
parents:
diff changeset
   661
// Handles the collection entries being opened.
hgs
parents:
diff changeset
   662
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   663
//
hgs
parents:
diff changeset
   664
void CMpxVideoPlayerAppUiEngine::HandleOpenL( const CMPXMedia& /* aEntries */,
hgs
parents:
diff changeset
   665
                                              TInt /* aIndex */,
hgs
parents:
diff changeset
   666
                                              TBool /* aComplete */,
hgs
parents:
diff changeset
   667
                                              TInt aError )
hgs
parents:
diff changeset
   668
{
hgs
parents:
diff changeset
   669
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::HandleOpenL(CMPXMedia)"));
hgs
parents:
diff changeset
   670
hgs
parents:
diff changeset
   671
    if ( aError != KErrNone )
hgs
parents:
diff changeset
   672
    {
hgs
parents:
diff changeset
   673
        //
hgs
parents:
diff changeset
   674
        //  Clip the collection path to root level and reopen
hgs
parents:
diff changeset
   675
        //  This could happen after a USB refresh event where the
hgs
parents:
diff changeset
   676
        //  item no longer exists
hgs
parents:
diff changeset
   677
        //
hgs
parents:
diff changeset
   678
        CMPXCollectionPath* path = iCollectionUtility->Collection().PathL();
hgs
parents:
diff changeset
   679
hgs
parents:
diff changeset
   680
        CleanupStack::PushL( path );
hgs
parents:
diff changeset
   681
hgs
parents:
diff changeset
   682
        while( path->Levels() > 1 )
hgs
parents:
diff changeset
   683
        {
hgs
parents:
diff changeset
   684
            path->Back();
hgs
parents:
diff changeset
   685
        }
hgs
parents:
diff changeset
   686
hgs
parents:
diff changeset
   687
        iCollectionUtility->Collection().OpenL( *path );
hgs
parents:
diff changeset
   688
        CleanupStack::PopAndDestroy( path );
hgs
parents:
diff changeset
   689
    }
hgs
parents:
diff changeset
   690
}
hgs
parents:
diff changeset
   691
hgs
parents:
diff changeset
   692
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   693
// From MMPXCollectionObserver.
hgs
parents:
diff changeset
   694
// Handles the item being opened.
hgs
parents:
diff changeset
   695
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   696
//
hgs
parents:
diff changeset
   697
void CMpxVideoPlayerAppUiEngine::HandleOpenL( const CMPXCollectionPlaylist& aPlaylist, TInt aError )
hgs
parents:
diff changeset
   698
{
hgs
parents:
diff changeset
   699
    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUiEngine::HandleOpenL(CMPXCollectionPlaylist)"));
hgs
parents:
diff changeset
   700
hgs
parents:
diff changeset
   701
    if ( aError == KErrNone )
hgs
parents:
diff changeset
   702
    {
hgs
parents:
diff changeset
   703
        iPlaybackUtility->InitL( aPlaylist, EFalse );
hgs
parents:
diff changeset
   704
    }
hgs
parents:
diff changeset
   705
}
hgs
parents:
diff changeset
   706
hgs
parents:
diff changeset
   707
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   708
// From MMPXCHelperEmbeddedOpenObserver
hgs
parents:
diff changeset
   709
// Handles OpenL from that occured in embedded mode
hgs
parents:
diff changeset
   710
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   711
//
36
hgs
parents: 35
diff changeset
   712
void CMpxVideoPlayerAppUiEngine::HandleEmbeddedOpenL( TInt /*aErr*/, TMPXGeneralCategory /*aCategory*/ )
30
hgs
parents:
diff changeset
   713
{
hgs
parents:
diff changeset
   714
    MPX_DEBUG(_L("CMPXVideoAppUi::HandleEmbeddedOpenL()"));
hgs
parents:
diff changeset
   715
}
hgs
parents:
diff changeset
   716
hgs
parents:
diff changeset
   717
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   718
//   CMpxVideoPlayerAppUiEngine::UpdatePbPluginMedia()
hgs
parents:
diff changeset
   719
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   720
//
hgs
parents:
diff changeset
   721
void CMpxVideoPlayerAppUiEngine::UpdatePbPluginMediaL()
hgs
parents:
diff changeset
   722
{
hgs
parents:
diff changeset
   723
    MPX_DEBUG(_L("CMpxVideoPlayerAppUiEngine::UpdatePbPluginMediaL()iSeekable %d"), iSeekable);
hgs
parents:
diff changeset
   724
hgs
parents:
diff changeset
   725
    CMPXCommand* cmd = CMPXCommand::NewL();
hgs
parents:
diff changeset
   726
    CleanupStack::PushL( cmd );
hgs
parents:
diff changeset
   727
hgs
parents:
diff changeset
   728
    cmd->SetTObjectValueL<TBool>( KMPXCommandGeneralDoSync, ETrue );
hgs
parents:
diff changeset
   729
hgs
parents:
diff changeset
   730
    cmd->SetTObjectValueL<TInt>( KMPXCommandGeneralId, KMPXMediaIdVideoPlayback );
hgs
parents:
diff changeset
   731
hgs
parents:
diff changeset
   732
    cmd->SetTObjectValueL<TMPXVideoPlaybackCommand>( KMPXMediaVideoPlaybackCommand, 
hgs
parents:
diff changeset
   733
                                                     EPbCmdUpdateSeekable );
hgs
parents:
diff changeset
   734
hgs
parents:
diff changeset
   735
    cmd->SetTObjectValueL<TBool>( KMPXMediaGeneralExtVideoSeekable, iSeekable );
hgs
parents:
diff changeset
   736
hgs
parents:
diff changeset
   737
    iPlaybackUtility->CommandL( *cmd );
hgs
parents:
diff changeset
   738
    
hgs
parents:
diff changeset
   739
    CleanupStack::PopAndDestroy( cmd );
hgs
parents:
diff changeset
   740
}
hgs
parents:
diff changeset
   741
hgs
parents:
diff changeset
   742
// EOF
hgs
parents:
diff changeset
   743