bluetoothengine/btserviceutil/src/btdevextension.cpp
branchRCL_3
changeset 23 9386f31cc85b
parent 22 613943a21004
child 24 269724087bed
--- a/bluetoothengine/btserviceutil/src/btdevextension.cpp	Tue Aug 31 15:25:10 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,309 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  an extended BT device offering properties of
-* a Bluetooth device that may be needed by Bluetooth UIs
-*
-*/
-
-#include <btservices/btdevextension.h>
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// C++ default constructor
-// ---------------------------------------------------------------------------
-//
-CBtDevExtension::CBtDevExtension( TDefaultDevNameOption aNameOption ) 
-: iNameOption( aNameOption )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// Symbian 2nd-phase constructor
-// ---------------------------------------------------------------------------
-//
-void CBtDevExtension::ConstructL(  CBTDevice* aDev )
-    {
-    SetDeviceL( aDev );
-    }
-
-// ---------------------------------------------------------------------------
-// NewLC
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CBtDevExtension* CBtDevExtension::NewLC( 
-        CBTDevice* aDev, TDefaultDevNameOption aNameOption )
-    {
-    CBtDevExtension* self = NULL;
-    self = new (ELeave) CBtDevExtension( aNameOption );
-    CleanupStack::PushL( self );
-    self->ConstructL( aDev );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// NewL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CBtDevExtension* CBtDevExtension::NewLC( 
-        const TInquirySockAddr& aAddr,
-        const TDesC& aName,
-        TDefaultDevNameOption aNameOption )
-    {
-    CBtDevExtension* self = new (ELeave) CBtDevExtension( aNameOption );
-    CleanupStack::PushL( self );
-    CBTDevice* dev = CBTDevice::NewLC( aAddr.BTAddr() );
-    TBTDeviceClass cod( aAddr.MajorServiceClass(), 
-            aAddr.MajorClassOfDevice(), aAddr.MinorClassOfDevice() );
-    dev->SetDeviceClass( cod );
-    if ( aName.Length() )
-        {
-        dev->SetDeviceNameL(  BTDeviceNameConverter::ToUTF8L( aName ) );
-        }
-    self->ConstructL( dev );
-    CleanupStack::Pop( dev );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// NewLC
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CBtDevExtension* CBtDevExtension::NewLC( 
-        const TBTDevAddr& aAddr,
-        const TDesC& aName,
-        TDefaultDevNameOption aNameOption )
-    {
-    CBtDevExtension* self = new (ELeave) CBtDevExtension( aNameOption );
-    CleanupStack::PushL( self );
-    CBTDevice* dev = CBTDevice::NewLC( aAddr );
-    if ( aName.Length() )
-        {
-        dev->SetDeviceNameL(  BTDeviceNameConverter::ToUTF8L( aName ) );
-        }
-    self->ConstructL( dev );
-    CleanupStack::Pop( dev );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CBtDevExtension::~CBtDevExtension()
-    {
-    iAlias.Close();
-    delete iDev;
-    }
-
-// ---------------------------------------------------------------------------
-// IsBonded
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool CBtDevExtension::IsBonded( const TBTNamelessDevice &dev )
-    {
-    // IsValidPaired tells if the paired bit of dev is valid
-    // and IsPaired tells if the device is paired or not:
-    return dev.IsValidPaired() && 
-           dev.IsPaired() && 
-           // Authentication due to OBEX cases e.g. file transfer, is not 
-           // considered as bonded in Bluetooth UI:
-           dev.LinkKeyType() != ELinkKeyUnauthenticatedUpgradable;
-    }
-
-// ---------------------------------------------------------------------------
-// IsJustWorksBonded
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool CBtDevExtension::IsJustWorksBonded( const TBTNamelessDevice &dev )
-    {
-    return IsBonded( dev ) && 
-         dev.LinkKeyType() == ELinkKeyUnauthenticatedNonUpgradable;
-    }
-
-// ---------------------------------------------------------------------------
-// IsUserAwareBonded
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool CBtDevExtension::IsUserAwareBonded( const TBTNamelessDevice &dev )
-    {
-    if ( IsJustWorksBonded( dev ) )
-        {
-        // Just Works bonded devices can happen without user awareness.
-        // For example, authentication due to an incoming service connection request 
-        // from a device without IO.
-        // We use cookies to identify if this JW pairing is user aware or not:
-        TInt32 cookie = dev.IsValidUiCookie() ? dev.UiCookie() : EBTUiCookieUndefined;
-        return (cookie & EBTUiCookieJustWorksPaired );        
-        }
-    // Pairing in other mode than Just Works are always user-aware:
-    return IsBonded( dev );
-    }
-
-// ---------------------------------------------------------------------------
-// IsHeadset
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool CBtDevExtension::IsHeadset( const TBTDeviceClass &aCod )
-    {
-    if ( ( aCod.MajorServiceClass() & EMajorServiceAudioService ) &&
-         ( aCod.MajorDeviceClass() & EMajorDeviceAudioDevice ) )
-        {
-        if (aCod.MinorDeviceClass() == EMinorDeviceAVHandsfree ||
-            aCod.MinorDeviceClass() == EMinorDeviceAVCarAudio)
-            {
-            // This is the typical CoD setting used by carkits:
-            return false;
-            }
-        return true;
-        }
-    return false;
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-EXPORT_C const TDesC& CBtDevExtension::Alias() const
-    {
-    return iAlias;
-    }
-
-// ---------------------------------------------------------------------------
-// Addr()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C const TBTDevAddr& CBtDevExtension::Addr() const
-    {
-    return iDev->BDAddr();
-    }
-
-// ---------------------------------------------------------------------------
-// Device
-// ---------------------------------------------------------------------------
-//
-EXPORT_C const CBTDevice& CBtDevExtension::Device() const
-    {
-    return *iDev;
-    }
-
-
-
-// ---------------------------------------------------------------------------
-// IsUserAwareBonded
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBool CBtDevExtension::IsUserAwareBonded() const
-    {
-    return IsUserAwareBonded( iDev->AsNamelessDevice() );
-    }
-
-// ---------------------------------------------------------------------------
-// ServiceConnectionStatus()
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TBTEngConnectionStatus CBtDevExtension::ServiceConnectionStatus() const
-    {
-    return iServiceStatus;
-    }
-
-// ---------------------------------------------------------------------------
-// SetDeviceL
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CBtDevExtension::SetDeviceL( CBTDevice* aDev )
-    {
-    delete iDev;
-    iDev = aDev;
-    // It is possible that the client set a NULL object to us.
-    if ( !iDev )
-        {
-        iDev = CBTDevice::NewL();
-        }
-    // No optimization here. If client sets an identical device instance
-    // We will still execute these steps:
-    UpdateNameL();
-    //UpdateServiceStatusL();
-    }
-
-EXPORT_C CBtDevExtension* CBtDevExtension::CopyL()
-    {
-    CBtDevExtension* newDev = CBtDevExtension::NewLC( NULL );
-    CBTDevice* dev = iDev->CopyL();
-    CleanupStack::PushL( dev );
-    newDev->SetDeviceL( dev );
-    CleanupStack::Pop( dev);
-    newDev->SetServiceConnectionStatus( ServiceConnectionStatus() );
-    CleanupStack::Pop( newDev );
-    return newDev;
-    }
-
-// ---------------------------------------------------------------------------
-// ServiceConnectionStatus()
-// ---------------------------------------------------------------------------
-//
-void CBtDevExtension::SetServiceConnectionStatus(
-        TBTEngConnectionStatus aStatus )
-    {
-    iServiceStatus = aStatus;
-    }
-
-// ---------------------------------------------------------------------------
-// UpdateL()
-// ---------------------------------------------------------------------------
-//
-void CBtDevExtension::UpdateNameL()
-    {
-    // UI takes friendly name for displaying if it is available
-    iAlias.Zero();
-    if ( iDev->IsValidFriendlyName() && iDev->FriendlyName().Length() != 0 )
-        {
-        iAlias.ReAllocL(iDev->FriendlyName().Length());
-        iAlias.Append(iDev->FriendlyName());
-        }
-    // otherwise, device name, if it is available, will be displayed
-    else if ( iDev->IsValidDeviceName() && iDev->DeviceName().Length() != 0 )
-        {
-        TBTDeviceName name = BTDeviceNameConverter::ToUnicodeL(iDev->DeviceName());
-        iAlias.ReAllocL(name.Length());
-        iAlias.Append(name);
-        }
-    if ( iAlias.Length() == 0 && 
-        ( iNameOption == EColonSeperatedBDAddr || iNameOption == EPlainBDAddr ) )
-        {
-        // Name for display is still missing. We need to make one for user to 
-        // identify it.
-        FormatAddressAsNameL();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// FormatAddressAsNameL()
-// ---------------------------------------------------------------------------
-//
-void CBtDevExtension::FormatAddressAsNameL()
-    {
-    // readable format of BD_ADDR is double size of BD ADDR size,
-    // and plus the seperators.
-    iAlias.ReAllocL( KBTDevAddrSize * 3 );
-    _LIT(KColon, ":");
-    if ( iNameOption == EColonSeperatedBDAddr )
-        {
-        iDev->BDAddr().GetReadable( iAlias, KNullDesC, KColon, KNullDesC );         
-        }
-    else
-        {
-        iDev->BDAddr().GetReadable( iAlias );
-        }
-    }