bluetoothengine/btnotif/btnotifsrv/src/btnotifutil.cpp
author hgs
Mon, 12 Jul 2010 18:51:05 +0300
changeset 42 b72428996822
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
42
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: 
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
#include "btnotifutil.h"
hgs
parents:
diff changeset
    18
#include <btservices/btdevrepository.h>
hgs
parents:
diff changeset
    19
#include <btmanclient.h>
hgs
parents:
diff changeset
    20
#include "bluetoothtrace.h"
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    23
// If aDevExt contains a valid friendly name, the friendly name will be displayed;
hgs
parents:
diff changeset
    24
// Otherwise, if the given name from the parameter of a notifier request is valid,
hgs
parents:
diff changeset
    25
// the given name will be displayed;
hgs
parents:
diff changeset
    26
// Otherwise, If aDevExt contains a valid device name, the name will be displayed;
hgs
parents:
diff changeset
    27
// Otherwise, the a name will be created by this function.
hgs
parents:
diff changeset
    28
// ---------------------------------------------------------------------------
hgs
parents:
diff changeset
    29
//
hgs
parents:
diff changeset
    30
void TBTNotifUtil::GetDeviceUiNameL( TDes& aNameBuf, 
hgs
parents:
diff changeset
    31
            const CBtDevExtension* aDevExt, 
hgs
parents:
diff changeset
    32
            const TDesC& aNameInParam,
hgs
parents:
diff changeset
    33
            const TBTDevAddr& aAddr)
hgs
parents:
diff changeset
    34
    {
hgs
parents:
diff changeset
    35
    CBtDevExtension* tempDev( NULL );
hgs
parents:
diff changeset
    36
    TPtrC namePtr;
hgs
parents:
diff changeset
    37
    if ( aDevExt && 
hgs
parents:
diff changeset
    38
         aDevExt->Device().IsValidFriendlyName() && 
hgs
parents:
diff changeset
    39
         aDevExt->Device().FriendlyName().Length() != 0 )
hgs
parents:
diff changeset
    40
        {
hgs
parents:
diff changeset
    41
        // We always use the friendly name regardless of 
hgs
parents:
diff changeset
    42
        // the device-name of the device is available or not.
hgs
parents:
diff changeset
    43
        namePtr.Set( aDevExt->Device().FriendlyName() );
hgs
parents:
diff changeset
    44
        }
hgs
parents:
diff changeset
    45
    else 
hgs
parents:
diff changeset
    46
        {
hgs
parents:
diff changeset
    47
        // this will take care of name formating. Either the
hgs
parents:
diff changeset
    48
        // name from iNameInParam or the address will be
hgs
parents:
diff changeset
    49
        // the alias:
hgs
parents:
diff changeset
    50
        tempDev = CBtDevExtension::NewLC( aAddr, aNameInParam );      
hgs
parents:
diff changeset
    51
        namePtr.Set( tempDev->Alias() );
hgs
parents:
diff changeset
    52
        }
hgs
parents:
diff changeset
    53
    // Make sure no overflow:
hgs
parents:
diff changeset
    54
    if ( aNameBuf.MaxLength() < namePtr.Length() )
hgs
parents:
diff changeset
    55
        {
hgs
parents:
diff changeset
    56
        aNameBuf.Copy( namePtr.Left( aNameBuf.MaxLength() ) );
hgs
parents:
diff changeset
    57
        }
hgs
parents:
diff changeset
    58
    else
hgs
parents:
diff changeset
    59
        {
hgs
parents:
diff changeset
    60
        aNameBuf.Copy( namePtr );
hgs
parents:
diff changeset
    61
        }
hgs
parents:
diff changeset
    62
    if ( tempDev )
hgs
parents:
diff changeset
    63
        {
hgs
parents:
diff changeset
    64
        CleanupStack::PopAndDestroy( tempDev );
hgs
parents:
diff changeset
    65
        }
hgs
parents:
diff changeset
    66
    }
hgs
parents:
diff changeset
    67
hgs
parents:
diff changeset
    68