camerauis/cameraxui/cxengine/src/cxevideorecorderutilitysymbian.cpp
author hgs
Thu, 15 Jul 2010 01:55:05 +0300
changeset 43 0e652f8f1fbd
parent 19 d9aefe59d544
permissions -rw-r--r--
201027_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description:
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
*
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*/
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
#include "cxevideorecorderutilitysymbian.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include "cxenamespace.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include "cxutils.h"
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    20
#include <AudioPreference.h>
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    21
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    22
namespace
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    23
{
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    24
    // Controller UId, can be used by the client to identify the controller, e.g. if the custom command can be used
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    25
    const TUid KCamCControllerImplementationUid = {0x101F8503};
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    26
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    27
    // Custom command for setting a new filename without closing & reopening the controller
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    28
    enum TCamCControllerCustomCommands
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    29
        {
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    30
        ECamCControllerCCNewFilename = 0,
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    31
        ECamCControllerCCVideoStopAsync
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    32
        };
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    33
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    34
    const uint KOneMillion = 1000000;
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    35
}
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
CxeVideoRecorderUtilitySymbian::~CxeVideoRecorderUtilitySymbian()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
    delete mVideoRecorder;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
    mVideoRecorder = NULL;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    46
CxeVideoRecorderUtilitySymbian::CxeVideoRecorderUtilitySymbian(MVideoRecorderUtilityObserver& aObserver)
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
    CX_DEBUG_ENTER_FUNCTION();
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    49
    QT_TRAP_THROWING(mVideoRecorder =
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    50
            CVideoRecorderUtility::NewL(aObserver,
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    51
                                        KAudioPriorityVideoRecording,
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    52
                                        TMdaPriorityPreference(KAudioPrefVideoRecording)));
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    56
/*!
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    57
* Open new file for recording.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    58
* @param cameraHandle Handle for camera.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    59
* @param filename Full filename of the video file to open.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    60
* @param fileMimeType MIME type for the video file.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    61
* @param supplier Preferred supplier.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    62
* @param videoType Video codec MIME type.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    63
* @param audioType Audio FourCC type.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    64
*/
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    65
void CxeVideoRecorderUtilitySymbian::open(int cameraHandle,
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    66
                                          const QString &filename,
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    67
                                          const QString &fileMimeType,
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    68
                                          const QString &supplier,
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    69
                                          const QString &videoType,
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    70
                                          const QString &audioType)
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    72
    CX_DEBUG_ENTER_FUNCTION();
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    73
    CX_DEBUG(("CxeVideoRecorderUtilitySymbian - filename     [%s]", filename.toAscii().constData()));
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    74
    CX_DEBUG(("CxeVideoRecorderUtilitySymbian - file mime    [%s]", fileMimeType.toAscii().constData()));
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    75
    CX_DEBUG(("CxeVideoRecorderUtilitySymbian - supplier     [%s]", supplier.toAscii().constData()));
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    76
    CX_DEBUG(("CxeVideoRecorderUtilitySymbian - codec mime   [%s]", videoType.toAscii().constData()));
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    77
    CX_DEBUG(("CxeVideoRecorderUtilitySymbian - audio FourCC [%s]", audioType.toAscii().constData()));
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    78
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    79
    QByteArray bytes = videoType.toLatin1();
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    80
    TPtrC8 videoTypeDesC(reinterpret_cast<const TUint8*>(bytes.constData()), bytes.size());
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    81
    TPtrC16 filenameDesC(reinterpret_cast<const TUint16*>(filename.utf16()));
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    82
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    83
    TUid controllerId;
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    84
    TUid formatId;
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    85
    QT_TRAP_THROWING({
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    86
        // Find the video controller id and video format id.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    87
        findControllerL(fileMimeType, supplier, controllerId, formatId);
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    88
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    89
        // Try to open new video file with given parameters.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    90
        mVideoRecorder->OpenFileL(filenameDesC, cameraHandle, controllerId,
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    91
                                  formatId, videoTypeDesC, audioFourCC(audioType));
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    92
    });
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    96
/*!
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    97
* Set frame size.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    98
* @param size The video frame size.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    99
*/
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   100
void CxeVideoRecorderUtilitySymbian::setVideoFrameSize(const QSize &size)
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
    CX_DEBUG_ENTER_FUNCTION();
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   103
    TSize frameSize(size.width(), size.height());
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   104
    QT_TRAP_THROWING(mVideoRecorder->SetVideoFrameSizeL(frameSize));
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   108
/*!
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   109
* Set video frame rate.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   110
* @param rate The video frame rate.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   111
*/
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   112
void CxeVideoRecorderUtilitySymbian::setVideoFrameRate(int rate)
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
    CX_DEBUG_ENTER_FUNCTION();
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   115
    QT_TRAP_THROWING(mVideoRecorder->SetVideoFrameRateL(rate));
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   119
/*!
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   120
* Set video bit rate.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   121
* @param The video bit rate.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   122
*/
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   123
void CxeVideoRecorderUtilitySymbian::setVideoBitRate(int rate)
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
    CX_DEBUG_ENTER_FUNCTION();
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   126
    QT_TRAP_THROWING(mVideoRecorder->SetVideoBitRateL(rate));
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   130
/*!
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   131
* Set if audio recording is on or not.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   132
* @param enabled Is audio recording enabled.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   133
*/
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   134
void CxeVideoRecorderUtilitySymbian::setAudioEnabled(bool enabled)
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
    CX_DEBUG_ENTER_FUNCTION();
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   137
    QT_TRAP_THROWING(mVideoRecorder->SetAudioEnabledL(enabled));
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   141
/*!
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   142
* Set maximum video clip size in bytes.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   143
* @param sizeInBytes Video clip size limit.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   144
*/
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   145
void CxeVideoRecorderUtilitySymbian::setVideoMaxSize(int sizeInBytes)
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   147
    CX_DEBUG_ENTER_FUNCTION();
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   148
    if (sizeInBytes <= 0) {
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   149
        sizeInBytes = KMMFNoMaxClipSize;
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
    }
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   151
    QT_TRAP_THROWING(mVideoRecorder->SetMaxClipSizeL(sizeInBytes));
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   155
/*!
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   156
* Close video recorder, freeing its resources.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   157
*/
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   158
void CxeVideoRecorderUtilitySymbian::close()
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
    mVideoRecorder->Close();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   165
/*!
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   166
* Prepare for video recording.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   167
*/
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   168
void CxeVideoRecorderUtilitySymbian::prepare()
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
    mVideoRecorder->Prepare();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   175
/*!
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   176
* Start recording.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   177
*/
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   178
void CxeVideoRecorderUtilitySymbian::record()
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
    mVideoRecorder->Record();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   185
/*!
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   186
* Stop recording.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   187
* @param asynchronous Use asynchronous (true) or synchronous (false) stopping.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   188
*/
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   189
void CxeVideoRecorderUtilitySymbian::stop(bool asynchronous)
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
{
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   191
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   192
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   193
    if (asynchronous) {
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   194
        TMMFMessageDestination dest(KCamCControllerImplementationUid, KMMFObjectHandleController);
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   195
        qt_symbian_throwIfError(mVideoRecorder->CustomCommandSync(
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   196
                                    dest, ECamCControllerCCVideoStopAsync, KNullDesC8, KNullDesC8));
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   197
    } else {
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   198
        qt_symbian_throwIfError(mVideoRecorder->Stop());
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   199
    }
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   200
    CX_DEBUG_EXIT_FUNCTION();
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   203
/*!
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   204
* Pause recording.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   205
*/
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   206
void CxeVideoRecorderUtilitySymbian::pause()
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
    CX_DEBUG_ENTER_FUNCTION();
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   209
    QT_TRAP_THROWING(mVideoRecorder->PauseL());
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   213
/*!
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   214
* Get estimated available recording time.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   215
* @return Available recording time estimate in seconds.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   216
*/
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   217
int CxeVideoRecorderUtilitySymbian::availableRecordingTime()
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
    CX_DEBUG_IN_FUNCTION();
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   220
    // Convert microseconds to seconds.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   221
    return mVideoRecorder->RecordTimeAvailable().Int64() * 1.0 / KOneMillion;
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   222
}
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   223
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   224
/*!
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   225
* Get elapsed duration of the recorded video.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   226
* @return Duration of the video in seconds.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   227
*/
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   228
int CxeVideoRecorderUtilitySymbian::duration()
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   229
{
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   230
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   231
    int time(0);
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   232
    // Convert microseconds to seconds.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   233
    QT_TRAP_THROWING(time = mVideoRecorder->DurationL().Int64() * 1.0 / KOneMillion);
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   234
    CX_DEBUG_EXIT_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   235
    return time;
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   238
/*!
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   239
* Find video controller and format UIDs based on file mime type and preferred supplier.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   240
* @param fileMimeType MIME type for the video file.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   241
* @param supplier Preferred supplier.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   242
* @param controllerId Returns found controller UID.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   243
* @param formatId Returns found format UID.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   244
*/
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   245
void CxeVideoRecorderUtilitySymbian::findControllerL(const QString& fileMimeType,
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   246
                                                     const QString& supplier,
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   247
                                                     TUid& controllerId,
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   248
                                                     TUid& formatId)
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
{
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   250
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   251
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   252
    // Retrieve a list of possible controllers from ECOM.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   253
    // Controller must support recording the requested mime type.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   254
    // Controller must be provided by preferred supplier.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   255
    controllerId = KNullUid;
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   256
    formatId = KNullUid;
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   257
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   258
    QByteArray bytes = fileMimeType.toLatin1();
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   259
    TPtrC8 mimeTPtr(reinterpret_cast<const TUint8*>(bytes.constData()), bytes.size());
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   260
    TPtrC16 supplierTPtr(reinterpret_cast<const TUint16*>(supplier.utf16()));
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   261
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   262
    CMMFControllerPluginSelectionParameters* cSelect(NULL);
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   263
    CMMFFormatSelectionParameters* fSelect(NULL);
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   264
    RMMFControllerImplInfoArray controllers;
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   265
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   266
    cSelect = CMMFControllerPluginSelectionParameters::NewLC();
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   267
    fSelect = CMMFFormatSelectionParameters::NewLC();
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   268
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   269
    fSelect->SetMatchToMimeTypeL(mimeTPtr);
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   270
    cSelect->SetRequiredRecordFormatSupportL(*fSelect);
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   271
    cSelect->SetPreferredSupplierL(supplierTPtr,
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   272
                                   CMMFPluginSelectionParameters::EOnlyPreferredSupplierPluginsReturned);
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   273
    cSelect->ListImplementationsL(controllers);
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   274
    CleanupResetAndDestroyPushL(controllers);
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   275
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   276
    if (controllers.Count() <= 0) {
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   277
        CX_DEBUG(("CxeVideoRecorderUtilitySymbian - zero controllers found, leaving!"));
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   278
        User::Leave(KErrNotFound);
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   279
    }
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   280
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   281
    // Inquires the controller about supported formats.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   282
    // We use the first controller found having index 0.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   283
    const RMMFFormatImplInfoArray& formats = controllers[0]->RecordFormats();
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   284
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   285
    // Get the first format that supports our mime type.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   286
    int count(formats.Count());
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   287
    for (int i=0; i<count; i++) {
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   288
        if (formats[i]->SupportsMimeType(mimeTPtr)) {
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   289
            CX_DEBUG(("CxeVideoRecorderUtilitySymbian - found controller"));
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   290
            // Store the format UID
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   291
            formatId = formats[i]->Uid();
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   292
            // Store the controller UID
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   293
            controllerId = controllers[0]->Uid();
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   294
            break;
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   295
        }
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   296
    }
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   297
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   298
    // Check that we found the uids.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   299
    if (controllerId == KNullUid) {
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   300
        CX_DEBUG(("CxeVideoRecorderUtilitySymbian - no matching controller found, leaving!"));
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   301
        User::Leave(KErrNotFound);
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   302
    }
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   303
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   304
    CleanupStack::PopAndDestroy(3); // controllers, fSelect, cSelect
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   305
    CX_DEBUG_EXIT_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   306
}
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   307
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   308
/*!
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   309
* Helper method to convert QString to TFourCC.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   310
* @param str String to convert.
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   311
*/
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   312
TFourCC CxeVideoRecorderUtilitySymbian::audioFourCC(const QString& str)
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   313
{
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   314
    CX_DEBUG_ENTER_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   315
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   316
    QByteArray audioType = str.toAscii();
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   317
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   318
    quint8 char1(' ');
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   319
    quint8 char2(' ');
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   320
    quint8 char3(' ');
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   321
    quint8 char4(' ');
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   322
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   323
    if (audioType.count() > 3) {
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   324
        char1 = audioType[0];
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   325
        char2 = audioType[1];
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   326
        char3 = audioType[2];
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   327
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   328
        if (audioType.count() == 4) {
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   329
            char4 = audioType[3];
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   330
        }
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   331
    }
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   332
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   333
    CX_DEBUG_EXIT_FUNCTION();
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   334
    return TFourCC(char1, char2, char3, char4);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   335
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   336
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   337
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   338
// end of file