camerauis/cameraxui/cxengine/src/cxeimagedataitemsymbian.cpp
author hgs
Fri, 23 Jul 2010 11:35:41 +0300
changeset 45 24fd82631616
parent 43 0e652f8f1fbd
permissions -rw-r--r--
201029
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
/*
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
     2
* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
19
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
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
#include "cxeimagedataitemsymbian.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
#include "cxeerrormappingsymbian.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
#include "cxesysutil.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include "cxutils.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include "cxestate.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include "OstTraceDefinitions.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#ifdef OST_TRACE_COMPILER_IN_USE
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include "cxeimagedataitemsymbianTraces.h"
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#endif
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
45
hgs
parents: 43
diff changeset
    29
/*!
hgs
parents: 43
diff changeset
    30
* Constructor.
hgs
parents: 43
diff changeset
    31
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
CxeImageDataItemSymbian::CxeImageDataItemSymbian(QByteArray data,
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
                                                 QString filename,
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
                                                 int id,
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    35
                                                 bool addLocation,
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
                                                 CxeImageDataItem::State state)
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
  : CxeStateMachine("CxeImageDataItemSymbian"),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
    mId(id),
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
    mData(data),
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    40
    mAddLocationInfo(addLocation),
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
    mPath(filename)
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
    CX_DEBUG_ENTER_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
    qRegisterMetaType<CxeImageDataItem::State>();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
    qRegisterMetaType<CxeError::Id>();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
    // Init mState
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
    initializeStates();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
    setInitialState(state);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    51
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
45
hgs
parents: 43
diff changeset
    54
/*!
hgs
parents: 43
diff changeset
    55
* Destructor.
hgs
parents: 43
diff changeset
    56
*/
hgs
parents: 43
diff changeset
    57
CxeImageDataItemSymbian::~CxeImageDataItemSymbian()
hgs
parents: 43
diff changeset
    58
{
hgs
parents: 43
diff changeset
    59
    CX_DEBUG_ENTER_FUNCTION();
hgs
parents: 43
diff changeset
    60
    closeHandles();
hgs
parents: 43
diff changeset
    61
    CX_DEBUG_EXIT_FUNCTION();
hgs
parents: 43
diff changeset
    62
}
hgs
parents: 43
diff changeset
    63
hgs
parents: 43
diff changeset
    64
/*!
hgs
parents: 43
diff changeset
    65
* Save the data now.
hgs
parents: 43
diff changeset
    66
* @return Status code.
hgs
parents: 43
diff changeset
    67
*/
hgs
parents: 43
diff changeset
    68
CxeError::Id CxeImageDataItemSymbian::save()
hgs
parents: 43
diff changeset
    69
{
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
    CX_DEBUG_ENTER_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
45
hgs
parents: 43
diff changeset
    72
    CxeError::Id status(CxeError::None);
hgs
parents: 43
diff changeset
    73
    try {
hgs
parents: 43
diff changeset
    74
        setState(CxeImageDataItem::Saving);
hgs
parents: 43
diff changeset
    75
        trySave();
hgs
parents: 43
diff changeset
    76
        setState(CxeImageDataItem::Saved);
hgs
parents: 43
diff changeset
    77
    } catch (const std::exception &e) {
hgs
parents: 43
diff changeset
    78
        closeHandles();
hgs
parents: 43
diff changeset
    79
        status = CxeErrorHandlingSymbian::map(qt_symbian_exception2Error(e));
hgs
parents: 43
diff changeset
    80
        setState(CxeImageDataItem::SaveFailed);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
45
hgs
parents: 43
diff changeset
    83
    emit imageSaved(status, mPath, mId);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    84
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
    CX_DEBUG_EXIT_FUNCTION();
45
hgs
parents: 43
diff changeset
    86
    return status;
hgs
parents: 43
diff changeset
    87
}
hgs
parents: 43
diff changeset
    88
hgs
parents: 43
diff changeset
    89
/*!
hgs
parents: 43
diff changeset
    90
* Helper method for trying to save the data.
hgs
parents: 43
diff changeset
    91
* If any error is encountered during the saving process, exception is thrown.
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
*/
45
hgs
parents: 43
diff changeset
    93
void CxeImageDataItemSymbian::trySave()
19
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
    CX_DEBUG_ENTER_FUNCTION();
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
    96
    OstTrace0(camerax_performance, CXEIMAGEDATAITEMSYMBIAN_SAVE_IN, "msg: e_CX_IMAGEDATAITEM_SAVE 1");
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
45
hgs
parents: 43
diff changeset
    98
    CX_DEBUG(("CxeImageDataItemSymbian - Starting to save [%s]", qPrintable(mPath)));
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
45
hgs
parents: 43
diff changeset
   100
    // Check we have the path set.
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
    if (mPath.isEmpty()) {
45
hgs
parents: 43
diff changeset
   102
        CX_DEBUG(("CxeImageDataItemSymbian - Filename not set!"));
hgs
parents: 43
diff changeset
   103
        qt_symbian_throwIfError(KErrArgument);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
    TPtrC16 filename;
45
hgs
parents: 43
diff changeset
   107
    filename.Set(reinterpret_cast<const TUint16*>(mPath.utf16()));
hgs
parents: 43
diff changeset
   108
    // Init
hgs
parents: 43
diff changeset
   109
    CX_DEBUG(("CxeImageDataItemSymbian - connect to RFs.."));
hgs
parents: 43
diff changeset
   110
    qt_symbian_throwIfError(mFs.Connect());
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
    // Get drive number
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
    TInt drive = 0;
45
hgs
parents: 43
diff changeset
   114
    CX_DEBUG(("CxeImageDataItemSymbian - Get drive number.."));
hgs
parents: 43
diff changeset
   115
    qt_symbian_throwIfError(RFs::CharToDrive(filename[0], drive));
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
45
hgs
parents: 43
diff changeset
   117
    // Check disk has space
hgs
parents: 43
diff changeset
   118
    bool fullDisk = checkDiskSpace(&mFs, mData.size(), drive);
hgs
parents: 43
diff changeset
   119
    if (fullDisk) {
hgs
parents: 43
diff changeset
   120
        CX_DEBUG(("CxeImageDataItemSymbian - Disk is full!"));
hgs
parents: 43
diff changeset
   121
        qt_symbian_throwIfError(KErrDiskFull);
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
    }
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
    // Attempt to create the file
45
hgs
parents: 43
diff changeset
   125
    // Note: In sake of MDS not starting harvesting here,
hgs
parents: 43
diff changeset
   126
    // do not use RFile::Replace. If harvesting is started now,
hgs
parents: 43
diff changeset
   127
    // our later call to harvest may be ignored and
hgs
parents: 43
diff changeset
   128
    // file may be missing from "Captured" album.
hgs
parents: 43
diff changeset
   129
    CX_DEBUG(("CxeImageDataItemSymbian - Create the file.."));
hgs
parents: 43
diff changeset
   130
    qt_symbian_throwIfError(mFile.Create(mFs, filename, EFileWrite));
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
45
hgs
parents: 43
diff changeset
   132
    // Write data to the file.
hgs
parents: 43
diff changeset
   133
    CX_DEBUG(("CxeImageDataItemSymbian - Starting to write the file.."));
hgs
parents: 43
diff changeset
   134
    TPtrC8 data(reinterpret_cast<const TUint8*> (mData.constData()), mData.size());
hgs
parents: 43
diff changeset
   135
    qt_symbian_throwIfError(mFile.Write(data)); // synchronous
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
45
hgs
parents: 43
diff changeset
   137
    // Flush all the data to file now.
hgs
parents: 43
diff changeset
   138
    // This may take a while depending on buffer sizes and file server load.
hgs
parents: 43
diff changeset
   139
    OstTrace0(camerax_performance, CXEIMAGEDATAITEMSYMBIAN_FLUSH_1, "msg: e_CX_SAVE_FLUSH_FILE 1");
hgs
parents: 43
diff changeset
   140
    qt_symbian_throwIfError(mFile.Flush());
hgs
parents: 43
diff changeset
   141
    OstTrace0(camerax_performance, CXEIMAGEDATAITEMSYMBIAN_FLUSH_2, "msg: e_CX_SAVE_FLUSH_FILE 0");
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
45
hgs
parents: 43
diff changeset
   143
    // Close the file and server handles.
hgs
parents: 43
diff changeset
   144
    closeHandles();
hgs
parents: 43
diff changeset
   145
    CX_DEBUG(("CxeImageDataItemSymbian - Saving to file completed.."));
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   146
45
hgs
parents: 43
diff changeset
   147
    OstTrace0(camerax_performance, CXEIMAGEDATAITEMSYMBIAN_SAVED, "msg: e_CX_SHOT_TO_SAVE 0");
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   148
    OstTrace0(camerax_performance, CXEIMAGEDATAITEMSYMBIAN_SAVE_OUT, "msg: e_CX_IMAGEDATAITEM_SAVE 0");
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   149
    CX_DEBUG_EXIT_FUNCTION();
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
45
hgs
parents: 43
diff changeset
   152
/*!
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
* Get the id number of this data item.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
*/
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
int CxeImageDataItemSymbian::id() const
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
    return mId;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   158
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   159
45
hgs
parents: 43
diff changeset
   160
/*!
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
* Get the path of this data item.
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
*/
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
QString CxeImageDataItemSymbian::path() const
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
    return mPath;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
45
hgs
parents: 43
diff changeset
   168
/*!
hgs
parents: 43
diff changeset
   169
* Check that there's enough space in the drive.
hgs
parents: 43
diff changeset
   170
* @param aFs File server session
hgs
parents: 43
diff changeset
   171
* @param aBytesToWrite Amount of bytes to be written.
hgs
parents: 43
diff changeset
   172
* @param aDrive Drive number.
hgs
parents: 43
diff changeset
   173
* @return True, if given amount of bytes can be written to the drive, false otherwise.
hgs
parents: 43
diff changeset
   174
*/
hgs
parents: 43
diff changeset
   175
bool CxeImageDataItemSymbian::checkDiskSpace(RFs* aFs,
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
        TInt aBytesToWrite,
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
        TInt aDrive)
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
    CX_DEBUG_ENTER_FUNCTION();
45
hgs
parents: 43
diff changeset
   180
    bool value = CxeSysUtil::DiskSpaceBelowCriticalLevel(
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
            aFs,
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
            aBytesToWrite,
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
            aDrive );
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
    return value;
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
45
hgs
parents: 43
diff changeset
   187
/*!
hgs
parents: 43
diff changeset
   188
* State of this item.
hgs
parents: 43
diff changeset
   189
* @return The state.
hgs
parents: 43
diff changeset
   190
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
CxeImageDataItem::State CxeImageDataItemSymbian::state() const
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
    return static_cast<CxeImageDataItem::State> (stateId());
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
45
hgs
parents: 43
diff changeset
   196
/*!
hgs
parents: 43
diff changeset
   197
* Handle state change.
hgs
parents: 43
diff changeset
   198
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
void CxeImageDataItemSymbian::handleStateChanged(int newStateId, CxeError::Id error)
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
    emit stateChanged(static_cast<State> (newStateId), error);
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
}
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
45
hgs
parents: 43
diff changeset
   204
/*!
hgs
parents: 43
diff changeset
   205
* Is location tagging enabled for this item.
hgs
parents: 43
diff changeset
   206
* @return True if location tagging is enabled, false otherwise.
hgs
parents: 43
diff changeset
   207
*/
43
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   208
bool CxeImageDataItemSymbian::isLocationEnabled() const
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   209
{
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   210
    return mAddLocationInfo;
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   211
}
0e652f8f1fbd 201027_1
hgs
parents: 19
diff changeset
   212
45
hgs
parents: 43
diff changeset
   213
/*!
hgs
parents: 43
diff changeset
   214
* Init the state machine.
hgs
parents: 43
diff changeset
   215
*/
19
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   216
void CxeImageDataItemSymbian::initializeStates()
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
{
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
    // addState( id, name, allowed next states )
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
    addState(new CxeState(SavePending, "SavePending", Saving | SaveFailed));
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
    addState(new CxeState(Saving, "Saving", Saved | SaveFailed));
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
    addState(new CxeState(Saved, "Saved", 0));
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
    addState(new CxeState(SaveFailed, "SaveFailed", 0));
d9aefe59d544 Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   223
}
45
hgs
parents: 43
diff changeset
   224
hgs
parents: 43
diff changeset
   225
/*!
hgs
parents: 43
diff changeset
   226
* Close the file server and file handles.
hgs
parents: 43
diff changeset
   227
*/
hgs
parents: 43
diff changeset
   228
void CxeImageDataItemSymbian::closeHandles()
hgs
parents: 43
diff changeset
   229
{
hgs
parents: 43
diff changeset
   230
    mFile.Close();
hgs
parents: 43
diff changeset
   231
    mFs.Close();
hgs
parents: 43
diff changeset
   232
}
hgs
parents: 43
diff changeset
   233
hgs
parents: 43
diff changeset
   234
// end of file