cbsatplugin/atmisccmdplugin/src/telephonywrapper.cpp
author hgs
Mon, 12 Jul 2010 19:25:26 +0300
changeset 45 b0aebde9b1fb
permissions -rw-r--r--
201027_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
45
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
     1
/*
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
     2
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
     3
 * All rights reserved.
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
     8
 * Initial Contributors:
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
     9
 * Nokia Corporation - initial contribution.
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    10
 *
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    11
 * Contributors:
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    12
 * Description :
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    13
 *
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    14
 */
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    15
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    16
#include "telephonywrapper.h"
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    17
#include "debug.h"
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    18
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    19
CTelephonyWrapper* CTelephonyWrapper::NewL()    
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    20
    {
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    21
    TRACE_FUNC_ENTRY
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    22
    CTelephonyWrapper* self = new (ELeave) CTelephonyWrapper();
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    23
    CleanupStack::PushL(self);
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    24
    self->ConstructL();
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    25
    CleanupStack::Pop(self);
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    26
    TRACE_FUNC_EXIT
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    27
    return self;
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    28
    } 
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    29
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    30
CTelephonyWrapper::CTelephonyWrapper() :
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    31
        CActive(CActive::EPriorityStandard), 
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    32
        iPhoneIdV1Pckg(iPhoneIdV1)
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    33
    {
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    34
    TRACE_FUNC_ENTRY
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    35
    TRACE_FUNC_EXIT
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    36
    } 
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    37
    
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    38
void CTelephonyWrapper::ConstructL()    
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    39
    {
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    40
    TRACE_FUNC_ENTRY
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    41
    CActiveScheduler::Add(this);
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    42
    iTelephony = CTelephony::NewL();
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    43
    TRACE_FUNC_EXIT
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    44
    } 
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    45
    
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    46
CTelephonyWrapper::~CTelephonyWrapper()    
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    47
    {
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    48
    TRACE_FUNC_ENTRY
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    49
    Cancel();
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    50
    delete iTelephony;
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    51
    TRACE_FUNC_EXIT
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    52
    }    
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    53
    
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    54
TInt CTelephonyWrapper::SynchronousGetPhoneId()    
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    55
    {
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    56
    TRACE_FUNC_ENTRY
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    57
    
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    58
    if (!IsActive())
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    59
        {
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    60
        iTelephony->GetPhoneId(iStatus, iPhoneIdV1Pckg);
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    61
        SetActive();
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    62
        iWaiter.Start();
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    63
        
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    64
        if (KErrNone == iStatus.Int())
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    65
            {
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    66
            iModel = iPhoneIdV1.iModel.Collapse();
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    67
            iSn = iPhoneIdV1.iSerialNumber.Collapse();
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    68
            iManufacturer = iPhoneIdV1.iManufacturer.Collapse();
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    69
            }
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    70
        }
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    71
    else
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    72
        {
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    73
        TRACE_FUNC_EXIT
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    74
        return KErrInUse;
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    75
        }
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    76
       
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    77
    TRACE_FUNC_EXIT
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    78
    return iStatus.Int();    
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    79
    } 
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    80
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    81
const TDesC8& CTelephonyWrapper::GetPhoneModel()
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    82
    {
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    83
    TRACE_FUNC_ENTRY
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    84
    TRACE_FUNC_EXIT
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    85
    return iModel;
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    86
    }
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    87
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    88
const TDesC8& CTelephonyWrapper::GetPhoneSerialNum()
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    89
    {
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    90
    TRACE_FUNC_ENTRY
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    91
    TRACE_FUNC_EXIT
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    92
    return iSn;
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    93
    }
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    94
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    95
const TDesC8& CTelephonyWrapper::GetPhoneManufacturer()
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    96
    {
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    97
    TRACE_FUNC_ENTRY
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    98
    TRACE_FUNC_EXIT
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
    99
    return iManufacturer;
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   100
    }
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   101
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   102
void CTelephonyWrapper::RunL()    
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   103
    {
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   104
    TRACE_FUNC_ENTRY
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   105
    iWaiter.AsyncStop();
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   106
    TRACE_FUNC_EXIT
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   107
    } 
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   108
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   109
void CTelephonyWrapper::DoCancel()    
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   110
    {
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   111
    TRACE_FUNC_ENTRY
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   112
    iTelephony->CancelAsync(CTelephony::EGetPhoneIdCancel);
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   113
    iWaiter.AsyncStop();
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   114
    TRACE_FUNC_EXIT
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   115
    }
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   116
b0aebde9b1fb 201027_02
hgs
parents:
diff changeset
   117