bluetoothengine/headsetsimulator/core/src/hscore.cpp
author michal.sulewski
Wed, 15 Sep 2010 15:59:44 +0200
branchheadsetsimulator
changeset 60 90dbfc0435e3
permissions -rw-r--r--
source code commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
60
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     1
/*
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     2
 * Component Name: Headset Simulator
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     3
 * Author: Comarch S.A.
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     4
 * Version: 1.0
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     5
 * Copyright (c) 2010 Comarch S.A.
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     6
 *  
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     7
 * This Software is submitted by Comarch S.A. to Symbian Foundation Limited on 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     8
 * the basis of the Member Contribution Agreement entered between Comarch S.A. 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
     9
 * and Symbian Foundation Limited on 5th June 2009 (“Agreement”) and may be 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    10
 * used only in accordance with the terms and conditions of the Agreement. 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    11
 * Any other usage, duplication or redistribution of this Software is not 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    12
 * allowed without written permission of Comarch S.A.
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    13
 * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    14
 */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    15
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    16
#include "hscore.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    17
#include "hsprofilemanager.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    18
#include "hsobserver.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    19
#include "hsserver.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    20
#include "hsaudioserver.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    21
#include "hsclientmanager.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    22
#include "hsclient.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    23
#include "hstools.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    24
#include "hsremotecontrolserver.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    25
#include "debug.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    26
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    27
EXPORT_C CHsCore* CHsCore::NewL( const TUUID& aService )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    28
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    29
    CHsCore* self = CHsCore::NewLC( aService );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    30
    CleanupStack::Pop( self );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    31
    return self;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    32
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    33
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    34
EXPORT_C CHsCore* CHsCore::NewLC( const TUUID& aService )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    35
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    36
    CHsCore* self = new ( ELeave ) CHsCore( aService );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    37
    CleanupStack::PushL( self );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    38
    self->ConstructL();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    39
    return self;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    40
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    41
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    42
EXPORT_C CHsCore::~CHsCore()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    43
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    44
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    45
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    46
    DestroyComponents();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    47
    iSocketServ.Close();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    48
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    49
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    50
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    51
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    52
CHsCore::CHsCore( const TUUID& aService ) :
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    53
    iService( aService )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    54
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    55
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    56
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    57
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    58
void CHsCore::ConstructL()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    59
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    60
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    61
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    62
    User::LeaveIfError( iSocketServ.Connect() );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    63
    CreateComponentsL();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    64
    RegisterProperty();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    65
    InitializeSimulationL();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    66
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    67
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    68
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    69
EXPORT_C void CHsCore::StartSimulationL( const TUid& aCoDUid,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    70
        const TUid& aSdpUid, const TUid& aProfileUid, const TDesC& aBTName )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    71
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    72
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    73
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    74
    InitializeSimulationL( aBTName );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    75
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    76
    LoadSdpL( aSdpUid );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    77
    LoadCodL( aCoDUid );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    78
    LoadProfileL( aProfileUid );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    79
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    80
    User::LeaveIfError( StartHSServer() );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    81
    User::LeaveIfError( StartAudioServer( ETrue ) );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    82
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    83
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    84
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    85
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    86
EXPORT_C void CHsCore::StartSimulationL( const TDesC8& aCoDName,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    87
        const TDesC8& aSdpName, const TDesC8& aProfileName,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    88
        const TDesC& aBTName )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    89
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    90
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    91
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    92
    InitializeSimulationL( aBTName );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    93
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    94
    LoadSdpL( aSdpName );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    95
    LoadCodL( aCoDName );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    96
    LoadProfileL( aProfileName );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    97
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    98
    User::LeaveIfError( StartHSServer() );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    99
    User::LeaveIfError( StartAudioServer( ETrue ) );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   100
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   101
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   102
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   103
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   104
EXPORT_C void CHsCore::StopSimulation()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   105
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   106
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   107
    DestroyPluginManager();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   108
    DestroyClientManager();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   109
    DestroyHSServer();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   110
    DestroyAudioServer();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   111
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   112
    CreateHSServer();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   113
    CreateAudioServer( ETrue );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   114
    CreateClientManager();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   115
    CreatePluginManager();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   116
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   117
    TRAP_IGNORE(InitializeSimulationL());
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   118
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   119
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   120
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   121
EXPORT_C void CHsCore::ConnectWithName( const TDesC &aName )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   122
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   123
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   124
    if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   125
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   126
        iObserver->HandleConnectingToClient();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   127
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   128
    if ( iHsBTManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   129
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   130
        TRAPD(err, iHsBTManager->FindNameL(aName));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   131
        if ( err != KErrNone && iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   132
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   133
            iObserver->HandleUnableToConnectClient();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   134
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   135
        TRACE_INFO((_L("Connect with name: %S, error = %d"), &aName, err))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   136
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   137
    else if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   138
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   139
        iObserver->HandleUnableToConnectClient();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   140
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   141
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   142
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   143
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   144
EXPORT_C void CHsCore::ConnectWithDevAddress( const TDesC& aDevAddress )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   145
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   146
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   147
    if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   148
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   149
        iObserver->HandleConnectingToClient();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   150
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   151
    if ( iHsBTManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   152
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   153
        TRAPD(err, iHsBTManager->FindDevL(aDevAddress));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   154
        if ( err != KErrNone && iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   155
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   156
            iObserver->HandleUnableToConnectClient();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   157
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   158
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   159
    else if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   160
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   161
        iObserver->HandleUnableToConnectClient();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   162
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   163
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   164
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   165
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   166
EXPORT_C void CHsCore::ConnectWithLastConnectedL()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   167
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   168
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   169
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   170
    TBTDevAddr addr;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   171
    User::LeaveIfError( GetLastConnected( addr ) );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   172
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   173
    RBuf lastDevAddrBuf;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   174
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   175
    lastDevAddrBuf.CreateL( KMaxBluetoothNameLen );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   176
    addr.GetReadable( lastDevAddrBuf );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   177
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   178
    ConnectWithDevAddress( lastDevAddrBuf );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   179
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   180
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   181
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   182
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   183
EXPORT_C void CHsCore::CancelConnecting()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   184
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   185
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   186
    if ( iHsBTManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   187
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   188
        iHsBTManager->CancelConnecting();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   189
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   190
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   191
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   192
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   193
EXPORT_C void CHsCore::DisconnectClients()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   194
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   195
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   196
    if ( iHSClientManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   197
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   198
        iHSClientManager->DisconnectClients();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   199
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   200
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   201
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   202
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   203
EXPORT_C TInt CHsCore::Send( const TDesC8 &aData, TInt aNumber )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   204
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   205
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   206
    TInt ret = KErrNone;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   207
    if ( iHSClientManager && iHSProfileManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   208
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   209
        TBuf8 <KHsClientBufferLength> tmp;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   210
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   211
        TRAP(ret, iHSProfileManager->HandleCommandL(aData, tmp, EFalse));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   212
        if ( KErrNone == ret )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   213
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   214
            ret = iHSClientManager->Send( tmp, aNumber );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   215
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   216
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   217
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   218
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   219
        ret = KErrNotReady;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   220
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   221
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   222
    return ret;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   223
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   224
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   225
EXPORT_C void CHsCore::SetObserver( MHsObserver& aObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   226
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   227
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   228
    iObserver = &aObserver;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   229
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   230
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   231
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   232
EXPORT_C TInt CHsCore::AcceptIncomingCall()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   233
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   234
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   235
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   236
    TBuf8 <KHsClientBufferLength> tmp;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   237
    TRAPD(ret,iHSProfileManager->AcceptIncomingCallL(tmp));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   238
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   239
    if ( KErrNone == ret )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   240
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   241
        ret = iHSClientManager->Send( tmp );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   242
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   243
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   244
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   245
    return ret;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   246
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   247
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   248
EXPORT_C TInt CHsCore::ReleaseOngoingCall()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   249
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   250
    TBuf8 <KHsClientBufferLength> tmp;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   251
    TRAPD(ret,iHSProfileManager->ReleaseOngoingCallL(tmp));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   252
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   253
    if ( KErrNone == ret )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   254
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   255
        ret = iHSClientManager->Send( tmp );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   256
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   257
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   258
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   259
    return ret;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   260
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   261
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   262
void CHsCore::InitializeSimulationL( const TDesC& aBTName )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   263
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   264
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   265
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   266
    User::LeaveIfNull( iHsBTManager );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   267
    if ( aBTName != KNullDesC )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   268
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   269
        SetBTName( aBTName );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   270
        iHsBTManager->TurnBtOnL( aBTName );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   271
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   272
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   273
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   274
        iHsBTManager->TurnBtOnL();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   275
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   276
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   277
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   278
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   279
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   280
void CHsCore::RegisterProperty()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   281
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   282
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   283
    // Return value may be ignored, no influence on main Headset functionality
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   284
    RProperty::Define( KHSProperty, ELastDevice, RProperty::EByteArray,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   285
            KLastDevAddrLength );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   286
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   287
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   288
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   289
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   290
void CHsCore::CreateComponentsL()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   291
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   292
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   293
    User::LeaveIfError( CreateControlServer() );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   294
    User::LeaveIfError( CreateHSServer() );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   295
    User::LeaveIfError( CreateAudioServer( ETrue ) );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   296
    User::LeaveIfError( CreateClientManager() );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   297
    User::LeaveIfError( CreatePluginManager() );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   298
    User::LeaveIfError( CreateBTManager() );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   299
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   300
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   301
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   302
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   303
void CHsCore::DestroyComponents()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   304
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   305
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   306
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   307
    DestroyControlServer();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   308
    DestroyPluginManager();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   309
    DestroyClientManager();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   310
    DestroyHSServer();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   311
    DestroyAudioServer();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   312
    DestroyBTManager();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   313
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   314
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   315
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   316
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   317
TInt CHsCore::CreateHSServer()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   318
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   319
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   320
    TInt ret = KErrNone;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   321
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   322
    if ( !iHSServer )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   323
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   324
        TRAP(ret, iHSServer = CHsServer::NewL(iSocketServ));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   325
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   326
        if ( ret == KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   327
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   328
            iHSServer->SetNewClientObserver( *this );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   329
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   330
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   331
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   332
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   333
        ret = KErrAlreadyExists;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   334
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   335
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   336
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   337
    return ret;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   338
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   339
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   340
TInt CHsCore::StartHSServer()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   341
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   342
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   343
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   344
    TInt ret = KErrNone;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   345
    if ( !iHSServer )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   346
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   347
        ret = KErrNotReady;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   348
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   349
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   350
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   351
        if ( !iHSServer->IsReady() )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   352
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   353
            ret = iHSServer->Listen();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   354
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   355
        else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   356
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   357
            ret = KErrInUse;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   358
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   359
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   360
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   361
    if ( ret == KErrNone && iHSProfileManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   362
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   363
        iHSProfileManager->SetSdpServicePort( iHSServer->GetPort() );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   364
        iHSProfileManager->RefreshSdp();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   365
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   366
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   367
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   368
    return ret;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   369
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   370
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   371
void CHsCore::StopHSServer()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   372
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   373
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   374
    if ( ( iHSServer ) && ( iHSServer->IsReady() ) )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   375
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   376
        iHSServer->Shutdown();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   377
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   378
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   379
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   380
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   381
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   382
void CHsCore::DestroyHSServer()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   383
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   384
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   385
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   386
    if ( iHSServer )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   387
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   388
        delete iHSServer;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   389
        iHSServer = NULL;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   390
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   391
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   392
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   393
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   394
TInt CHsCore::CreateAudioServer( TBool aPullAudio )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   395
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   396
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   397
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   398
    TInt ret = KErrNone;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   399
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   400
    if ( iAudioServer )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   401
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   402
        ret = KErrAlreadyExists;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   403
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   404
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   405
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   406
        TRAP(ret, iAudioServer = CHsAudioServer::NewL(iSocketServ, aPullAudio));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   407
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   408
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   409
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   410
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   411
    return ret;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   412
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   413
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   414
TInt CHsCore::StartAudioServer( TBool aPullAudio )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   415
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   416
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   417
    TInt ret = KErrNone;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   418
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   419
    if ( iAudioServer && !iAudioServer->IsListen()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   420
            && !iAudioServer->IsConnected() )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   421
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   422
        iAudioServer->SetPullAudio( aPullAudio );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   423
        TRAP(ret, iAudioServer->ListenL());
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   424
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   425
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   426
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   427
        ret = KErrNotReady;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   428
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   429
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   430
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   431
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   432
    return ret;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   433
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   434
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   435
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   436
void CHsCore::StopAudioServer()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   437
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   438
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   439
    if ( iAudioServer )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   440
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   441
        if ( iAudioServer->IsConnected() )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   442
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   443
            iAudioServer->Disconnect();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   444
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   445
        if ( iAudioServer->IsListen() )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   446
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   447
            iAudioServer->Shutdown();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   448
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   449
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   450
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   451
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   452
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   453
void CHsCore::DestroyAudioServer()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   454
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   455
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   456
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   457
    if ( iAudioServer )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   458
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   459
        delete iAudioServer;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   460
        iAudioServer = NULL;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   461
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   462
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   463
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   464
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   465
TInt CHsCore::CreateClientManager()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   466
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   467
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   468
    TInt err = KErrNone;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   469
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   470
    if ( iHSClientManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   471
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   472
        err = KErrAlreadyExists;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   473
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   474
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   475
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   476
        TRAP(err, iHSClientManager = CHsClientManager::NewL());
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   477
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   478
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   479
    return err;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   480
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   481
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   482
void CHsCore::DestroyClientManager()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   483
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   484
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   485
    if ( iHSClientManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   486
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   487
        delete iHSClientManager;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   488
        iHSClientManager = NULL;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   489
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   490
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   491
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   492
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   493
TInt CHsCore::CreatePluginManager()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   494
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   495
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   496
    TInt err = KErrNone;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   497
    if ( iHSProfileManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   498
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   499
        err = KErrAlreadyExists;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   500
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   501
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   502
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   503
        TRAP(err, iHSProfileManager = CHsProfileManager::NewL());
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   504
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   505
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   506
    return err;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   507
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   508
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   509
void CHsCore::DestroyPluginManager()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   510
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   511
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   512
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   513
    if ( iHSProfileManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   514
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   515
        delete iHSProfileManager;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   516
        iHSProfileManager = NULL;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   517
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   518
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   519
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   520
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   521
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   522
TInt CHsCore::CreateBTManager()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   523
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   524
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   525
    TInt err = KErrNone;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   526
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   527
    if ( !iHsBTManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   528
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   529
        TRAP(err, iHsBTManager = CHsBTManager::NewL(iSocketServ, this));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   530
        if ( err == KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   531
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   532
            iHsBTManager->SetService( iService );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   533
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   534
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   535
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   536
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   537
        err = KErrAlreadyExists;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   538
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   539
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   540
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   541
    return err;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   542
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   543
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   544
void CHsCore::DestroyBTManager()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   545
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   546
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   547
    if ( iHsBTManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   548
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   549
        delete iHsBTManager;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   550
        iHsBTManager = NULL;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   551
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   552
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   553
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   554
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   555
TInt CHsCore::CreateControlServer()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   556
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   557
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   558
    TInt err = KErrNone;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   559
    if ( !iHSControlServer )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   560
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   561
        TRAP(err, iHSControlServer = CHsControlServer::NewL(iSocketServ, this);
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   562
                iHSControlServer->SetConnectionObserver( *this );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   563
                iHSControlServer->StartRemoteControlServerL());
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   564
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   565
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   566
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   567
        err = KErrAlreadyExists;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   568
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   569
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   570
    return err;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   571
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   572
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   573
void CHsCore::DestroyControlServer()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   574
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   575
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   576
    if ( iHSControlServer )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   577
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   578
        delete iHSControlServer;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   579
        iHSControlServer = NULL;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   580
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   581
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   582
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   583
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   584
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   585
void CHsCore::SetBTName( const TBTFriendlyName &aBTName )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   586
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   587
    iBTFriendlyName = aBTName;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   588
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   589
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   590
TInt CHsCore::GetLastConnected( TBTDevAddr &aBTDevAddr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   591
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   592
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   593
    RBuf bufAddr;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   594
    TInt error = bufAddr.Create( KLastDevAddrLength );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   595
    if ( KErrNone != error )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   596
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   597
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   598
        return error;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   599
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   600
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   601
    error = RProperty::Get( KHSProperty, ELastDevice, bufAddr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   602
    TRACE_INFO( (_L("Last-connected dev addr: %S"), &bufAddr) )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   603
    if ( error == KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   604
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   605
        error = aBTDevAddr.SetReadable( bufAddr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   606
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   607
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   608
    bufAddr.Close();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   609
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   610
    return error;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   611
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   612
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   613
TInt CHsCore::SaveClient( CBluetoothSocket* aSocket )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   614
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   615
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   616
    TInt error = KErrNone;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   617
    TBTSockAddr sockAddr;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   618
    aSocket->RemoteName( sockAddr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   619
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   620
    TBTDevAddr devAddr = sockAddr.BTAddr();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   621
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   622
    RBuf bufAddr;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   623
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   624
    error = bufAddr.Create( KLastDevAddrLength );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   625
    if ( KErrNone == error )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   626
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   627
        devAddr.GetReadable( bufAddr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   628
        TRACE_INFO( (_L("Read address:: %S"), &bufAddr) );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   629
        error = RProperty::Set( KHSProperty, ELastDevice, bufAddr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   630
        bufAddr.Close();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   631
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   632
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   633
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   634
    return error;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   635
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   636
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   637
void CHsCore::SetSdpRecordServicePortFromServer()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   638
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   639
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   640
    if ( iHSServer && iHSProfileManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   641
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   642
        iHSProfileManager->SetSdpServicePort( iHSServer->GetPort() );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   643
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   644
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   645
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   646
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   647
void CHsCore::LoadProfileL( const TDesC8& aProfileName )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   648
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   649
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   650
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   651
    User::LeaveIfNull( iHSProfileManager );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   652
    iHSProfileManager->LookupAndManageProfileL( aProfileName );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   653
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   654
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   655
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   656
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   657
void CHsCore::LoadProfileL( const TUid& aProfileUid )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   658
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   659
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   660
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   661
    User::LeaveIfNull( iHSProfileManager );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   662
    iHSProfileManager->LookupAndManageProfileL( aProfileUid );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   663
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   664
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   665
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   666
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   667
void CHsCore::LoadSdpL( const TDesC8& aSdpName )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   668
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   669
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   670
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   671
    User::LeaveIfNull( iHSProfileManager );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   672
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   673
    SetSdpRecordServicePortFromServer();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   674
    iHSProfileManager->LookupAndManageSdpL( aSdpName );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   675
    TRACE_INFO(_L("iHSProfileManager lookup and manage SDP success") );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   676
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   677
    iHSProfileManager->LoadSdpL();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   678
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   679
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   680
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   681
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   682
void CHsCore::LoadSdpL( const TUid& aSdpUid )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   683
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   684
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   685
    User::LeaveIfNull( iHSProfileManager );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   686
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   687
    SetSdpRecordServicePortFromServer();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   688
    iHSProfileManager->LookupAndManageSdpL( aSdpUid );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   689
    TRACE_INFO(_L("iHSProfileManager lookup and manage SDP success") );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   690
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   691
    iHSProfileManager->LoadSdpL();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   692
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   693
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   694
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   695
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   696
void CHsCore::LoadCodL( const TDesC8& aCoDName )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   697
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   698
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   699
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   700
    User::LeaveIfNull( iHSProfileManager );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   701
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   702
    iHSProfileManager->LookupAndManageCodL( aCoDName );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   703
    iHSProfileManager->LoadCodL();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   704
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   705
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   706
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   707
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   708
void CHsCore::LoadCodL( const TUid& aCoDUid )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   709
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   710
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   711
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   712
    User::LeaveIfNull( iHSProfileManager );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   713
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   714
    iHSProfileManager->LookupAndManageCodL( aCoDUid );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   715
    iHSProfileManager->LoadCodL();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   716
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   717
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   718
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   719
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   720
void CHsCore::HandleNewClientL( CBluetoothSocket* aClientSocket, TInt aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   721
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   722
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   723
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   724
    if ( ( KErrNone == aErr ) && ( iHSClientManager ) )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   725
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   726
        CHsClient *clientTmp = NULL;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   727
        if ( aClientSocket )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   728
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   729
            clientTmp = CHsClient::NewL( aClientSocket, this, iHSClientManager );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   730
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   731
            //Return value may be ignored
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   732
            SaveClient( aClientSocket );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   733
            iHSClientManager->HandleNewClientL( clientTmp, aErr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   734
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   735
            TBuf8 <KHsClientBufferLength> tmp;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   736
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   737
            iHSProfileManager->HandleClientConnected( tmp );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   738
            if ( tmp.Compare( KNullDesC8 ) != 0 )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   739
                {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   740
                iHSClientManager->Send( tmp, KHsDefaultClientNumber );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   741
                }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   742
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   743
            if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   744
                {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   745
                iObserver->HandleConnectedToClient();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   746
                }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   747
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   748
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   749
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   750
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   751
        if ( iHsBTManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   752
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   753
            iHsBTManager->CancelConnecting();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   754
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   755
        if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   756
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   757
            iObserver->HandleUnableToConnectClient();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   758
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   759
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   760
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   761
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   762
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   763
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   764
void CHsCore::HandleClientConnectL( TInt aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   765
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   766
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   767
    TRACE_INFO( (_L("aErr = %d"), aErr))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   768
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   769
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   770
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   771
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   772
void CHsCore::HandleClientDisconnectL( TInt aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   773
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   774
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   775
    TRACE_INFO( (_L("aErr = %d"), aErr))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   776
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   777
    if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   778
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   779
        iObserver->HandleDisconnectedFromClient();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   780
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   781
    if ( iAudioServer )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   782
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   783
        iAudioServer->ListenL();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   784
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   785
    if ( iHSProfileManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   786
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   787
        iHSProfileManager->HandleClientDisconnected( aErr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   788
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   789
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   790
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   791
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   792
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   793
void CHsCore::HandleClientReceiveCompleteL( const TDesC8 &aData, TInt aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   794
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   795
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   796
    TRACE_INFO( (_L("aErr = %d"), aErr))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   797
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   798
    if ( iHSProfileManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   799
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   800
        iBufferFromProfileToClient.Zero();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   801
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   802
        TRACE_INFO( (_L8(" Received data from AG client [%S]") , &aData) )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   803
        iHSProfileManager->HandleCommandL( aData, iBufferFromProfileToClient,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   804
                ETrue );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   805
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   806
        if ( iHSClientManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   807
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   808
            iHSClientManager->Send( iBufferFromProfileToClient );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   809
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   810
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   811
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   812
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   813
void CHsCore::HandleClientSendCompleteL( TInt aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   814
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   815
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   816
    TRACE_INFO( (_L("aErr = %d"), aErr))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   817
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   818
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   819
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   820
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   821
void CHsCore::HandleClientOtherProblemL( TInt aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   822
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   823
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   824
    TRACE_INFO( (_L("aErr = %d"), aErr))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   825
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   826
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   827
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   828
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   829
void CHsCore::HandleDesiredDeviceFound( const TDesC& /*aDevName*/,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   830
        const TBTDevAddr& aDevAddr, const TInt aPort )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   831
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   832
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   833
    TBTSockAddr sockaddr;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   834
    sockaddr.SetBTAddr( aDevAddr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   835
    sockaddr.SetPort( aPort );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   836
    TRAPD(err, iHSServer->GetSocketAndTryToConnectL(sockaddr));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   837
    if ( err != KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   838
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   839
        TRACE_INFO( (_L("CHsServer::GetSocketAndTryToConnectL() error = %d"), err) )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   840
        TRAP_IGNORE( HandleNewClientL(NULL, err));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   841
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   842
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   843
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   844
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   845
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   846
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   847
void CHsCore::HandleSdpQueryError( TInt aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   848
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   849
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   850
    TRACE_INFO( (_L("aErr = %d"), aErr))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   851
    if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   852
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   853
        iObserver->HandleUnableToConnectClient();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   854
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   855
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   856
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   857
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   858
void CHsCore::HandleServiceNotFound( TInt aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   859
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   860
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   861
    TRACE_INFO( (_L("aErr = %d"), aErr))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   862
    if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   863
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   864
        iObserver->HandleUnableToConnectClient();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   865
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   866
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   867
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   868
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   869
void CHsCore::HandlePortNotFound( TInt aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   870
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   871
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   872
    TRACE_INFO( (_L("aErr = %d"), aErr))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   873
    if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   874
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   875
        iObserver->HandleUnableToConnectClient();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   876
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   877
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   878
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   879
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   880
void CHsCore::HandleDesiredDeviceNotFound( TInt aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   881
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   882
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   883
    TRACE_INFO( (_L("aErr = %d"), aErr))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   884
    if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   885
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   886
        iObserver->HandleUnableToConnectClient();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   887
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   888
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   889
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   890
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   891
void CHsCore::HandleRemoteControllerConnected( TInt aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   892
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   893
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   894
    if ( iObserver && aErr == KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   895
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   896
        iObserver->HandleConnectedToRemoteController();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   897
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   898
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   899
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   900
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   901
void CHsCore::HandleRemoteControllerDisconnected( TInt /** aErr */)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   902
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   903
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   904
    if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   905
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   906
        iObserver->HandleDisconnectedFromRemoteController();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   907
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   908
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   909
    }