videoplayerapp/videoplayerengine/src/videoiadupdatewrapper.cpp
author hgs
Tue, 05 Oct 2010 09:26:49 +0300
changeset 66 adb51f74b890
permissions -rw-r--r--
201039
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
66
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 VideoIadUpdateWrapper
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
// Version : %version: 
hgs
parents:
diff changeset
    19
hgs
parents:
diff changeset
    20
#include <iaupdate.h>
hgs
parents:
diff changeset
    21
#include <iaupdateparameters.h>
hgs
parents:
diff changeset
    22
#include <iaupdateresult.h>
hgs
parents:
diff changeset
    23
#include <featmgr.h>
hgs
parents:
diff changeset
    24
hgs
parents:
diff changeset
    25
#include "videoiadupdatewrapper.h"
hgs
parents:
diff changeset
    26
#include "mpxvideo_debug.h"
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
const TUid KIadParamUid = { 0x200211FE }; // Uid from videoplayer.pkg
hgs
parents:
diff changeset
    29
_LIT( KIadParamExec, "videoplayer.exe" ); // Executable of videoplayer
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    32
// VideoIadUpdateWrapper::VideoIadUpdateWrapper()
hgs
parents:
diff changeset
    33
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    34
//
hgs
parents:
diff changeset
    35
VideoIadUpdateWrapper::VideoIadUpdateWrapper() : 
hgs
parents:
diff changeset
    36
 mUpdate(0),
hgs
parents:
diff changeset
    37
 mParameters(0)
hgs
parents:
diff changeset
    38
{
hgs
parents:
diff changeset
    39
    MPX_DEBUG(_L("VideoIadUpdateWrapper::VideoIadUpdateWrapper()"));
hgs
parents:
diff changeset
    40
}
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    43
// VideoIadUpdateWrapper::~VideoIadUpdateWrapper()
hgs
parents:
diff changeset
    44
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    45
//
hgs
parents:
diff changeset
    46
VideoIadUpdateWrapper::~VideoIadUpdateWrapper()
hgs
parents:
diff changeset
    47
{
hgs
parents:
diff changeset
    48
    MPX_ENTER_EXIT(_L("VideoIadUpdateWrapper::~VideoIadUpdateWrapper()"));
hgs
parents:
diff changeset
    49
    cleanup();
hgs
parents:
diff changeset
    50
}
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    53
// VideoIadUpdateWrapper::checkForUpdates()
hgs
parents:
diff changeset
    54
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    55
//
hgs
parents:
diff changeset
    56
void VideoIadUpdateWrapper::checkForUpdates()
hgs
parents:
diff changeset
    57
{
hgs
parents:
diff changeset
    58
    MPX_ENTER_EXIT(_L("VideoIadUpdateWrapper::checkForUpdates()"));
hgs
parents:
diff changeset
    59
    
hgs
parents:
diff changeset
    60
    TRAP_IGNORE( doCheckForUpdatesL() );
hgs
parents:
diff changeset
    61
}
hgs
parents:
diff changeset
    62
hgs
parents:
diff changeset
    63
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    64
// VideoIadUpdateWrapper::doCheckForUpdatesL()
hgs
parents:
diff changeset
    65
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
    66
//
hgs
parents:
diff changeset
    67
void VideoIadUpdateWrapper::doCheckForUpdatesL()
hgs
parents:
diff changeset
    68
{
hgs
parents:
diff changeset
    69
    MPX_ENTER_EXIT(_L("VideoIadUpdateWrapper::doCheckForUpdatesL()"));
hgs
parents:
diff changeset
    70
    
hgs
parents:
diff changeset
    71
    FeatureManager::InitializeLibL();
hgs
parents:
diff changeset
    72
    
hgs
parents:
diff changeset
    73
    TBool isSupported = FeatureManager::FeatureSupported(KFeatureIdIAUpdate);
hgs
parents:
diff changeset
    74
    
hgs
parents:
diff changeset
    75
    FeatureManager::UnInitializeLib();
hgs
parents:
diff changeset
    76
    
hgs
parents:
diff changeset
    77
    if(isSupported)
hgs
parents:
diff changeset
    78
    {
hgs
parents:
diff changeset
    79
        if(!mUpdate)
hgs
parents:
diff changeset
    80
        {
hgs
parents:
diff changeset
    81
            mUpdate = CIAUpdate::NewL(*this);
hgs
parents:
diff changeset
    82
        }
hgs
parents:
diff changeset
    83
        if(!mParameters)
hgs
parents:
diff changeset
    84
        {
hgs
parents:
diff changeset
    85
            mParameters = CIAUpdateParameters::NewL();
hgs
parents:
diff changeset
    86
        }
hgs
parents:
diff changeset
    87
        
hgs
parents:
diff changeset
    88
        mParameters->SetUid(KIadParamUid);
hgs
parents:
diff changeset
    89
        // We want Videos to be started after update is finished
hgs
parents:
diff changeset
    90
        mParameters->SetCommandLineExecutableL(KIadParamExec);
hgs
parents:
diff changeset
    91
        mParameters->SetShowProgress(EFalse);
hgs
parents:
diff changeset
    92
    
hgs
parents:
diff changeset
    93
        // Check the updates
hgs
parents:
diff changeset
    94
        mUpdate->CheckUpdates(*mParameters);
hgs
parents:
diff changeset
    95
    }
hgs
parents:
diff changeset
    96
    else
hgs
parents:
diff changeset
    97
    {
hgs
parents:
diff changeset
    98
        MPX_DEBUG(_L("VideoIadUpdateWrapper::doCheckForUpdatesL() Feature not supported."));
hgs
parents:
diff changeset
    99
    }
hgs
parents:
diff changeset
   100
}
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   103
// VideoIadUpdateWrapper::CheckUpdatesComplete()
hgs
parents:
diff changeset
   104
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   105
//
hgs
parents:
diff changeset
   106
void VideoIadUpdateWrapper::CheckUpdatesComplete(TInt errorCode, TInt availableUpdates)
hgs
parents:
diff changeset
   107
{
hgs
parents:
diff changeset
   108
    MPX_ENTER_EXIT( _L("VideoIadUpdateWrapper::CheckUpdatesComplete()"), 
hgs
parents:
diff changeset
   109
        _L("aErrorCode: %d, availableUpdates: %d"), errorCode, availableUpdates );
hgs
parents:
diff changeset
   110
hgs
parents:
diff changeset
   111
    if(errorCode == KErrNone)
hgs
parents:
diff changeset
   112
    {
hgs
parents:
diff changeset
   113
        if(availableUpdates > 0 && mUpdate)
hgs
parents:
diff changeset
   114
        {
hgs
parents:
diff changeset
   115
            // There were some updates available and video list is active.
hgs
parents:
diff changeset
   116
            mUpdate->UpdateQuery();
hgs
parents:
diff changeset
   117
        }
hgs
parents:
diff changeset
   118
        else
hgs
parents:
diff changeset
   119
        {
hgs
parents:
diff changeset
   120
            // No updates available or playback ongoing.
hgs
parents:
diff changeset
   121
            cleanup();
hgs
parents:
diff changeset
   122
        }
hgs
parents:
diff changeset
   123
    }    
hgs
parents:
diff changeset
   124
}
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   127
// VideoIadUpdateWrapper::UpdateComplete()
hgs
parents:
diff changeset
   128
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   129
//
hgs
parents:
diff changeset
   130
void VideoIadUpdateWrapper::UpdateComplete(TInt errorCode, CIAUpdateResult* resultDetails)
hgs
parents:
diff changeset
   131
{
hgs
parents:
diff changeset
   132
    MPX_ENTER_EXIT(_L("VideoIadUpdateWrapper::UpdateComplete()"), _L("aErrorCode: %d, SuccessCount: %d"), 
hgs
parents:
diff changeset
   133
            errorCode, resultDetails->SuccessCount());
hgs
parents:
diff changeset
   134
    
hgs
parents:
diff changeset
   135
    delete resultDetails; // Ownership was transferred, so this must be deleted by the client
hgs
parents:
diff changeset
   136
    
hgs
parents:
diff changeset
   137
    // We do not need the client-server session anymore
hgs
parents:
diff changeset
   138
    cleanup();
hgs
parents:
diff changeset
   139
}
hgs
parents:
diff changeset
   140
hgs
parents:
diff changeset
   141
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   142
// VideoIadUpdateWrapper::UpdateQueryComplete()
hgs
parents:
diff changeset
   143
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   144
//
hgs
parents:
diff changeset
   145
void VideoIadUpdateWrapper::UpdateQueryComplete(TInt errorCode, TBool updateNow)
hgs
parents:
diff changeset
   146
{
hgs
parents:
diff changeset
   147
    MPX_ENTER_EXIT(_L("VideoIadUpdateWrapper::UpdateQueryComplete()"),
hgs
parents:
diff changeset
   148
            _L("aErrorCode: %d, updateNow: %d"), errorCode, updateNow);
hgs
parents:
diff changeset
   149
    
hgs
parents:
diff changeset
   150
    if(errorCode == KErrNone)
hgs
parents:
diff changeset
   151
    {
hgs
parents:
diff changeset
   152
        if(updateNow && mUpdate)
hgs
parents:
diff changeset
   153
        {
hgs
parents:
diff changeset
   154
            // User choosed to update now, so let's launch the IAUpdate UI.
hgs
parents:
diff changeset
   155
            mUpdate->ShowUpdates(*mParameters);
hgs
parents:
diff changeset
   156
        }
hgs
parents:
diff changeset
   157
        else
hgs
parents:
diff changeset
   158
        {
hgs
parents:
diff changeset
   159
            // The answer was 'Later'. 
hgs
parents:
diff changeset
   160
            cleanup();
hgs
parents:
diff changeset
   161
        }
hgs
parents:
diff changeset
   162
    }
hgs
parents:
diff changeset
   163
}
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   166
// VideoIadUpdateWrapper::cleanup()
hgs
parents:
diff changeset
   167
// -------------------------------------------------------------------------------------------------
hgs
parents:
diff changeset
   168
//
hgs
parents:
diff changeset
   169
void VideoIadUpdateWrapper::cleanup()
hgs
parents:
diff changeset
   170
{
hgs
parents:
diff changeset
   171
    MPX_ENTER_EXIT(_L("VideoIadUpdateWrapper::cleanup()"));
hgs
parents:
diff changeset
   172
    
hgs
parents:
diff changeset
   173
    delete mUpdate;
hgs
parents:
diff changeset
   174
    mUpdate = 0;
hgs
parents:
diff changeset
   175
    
hgs
parents:
diff changeset
   176
    delete mParameters;
hgs
parents:
diff changeset
   177
    mParameters = 0;  
hgs
parents:
diff changeset
   178
}
hgs
parents:
diff changeset
   179
hgs
parents:
diff changeset
   180
// End of file.