bluetoothengine/headsetsimulator/remotecontroller/src/hsremotecontroller.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 "hsremotecontroller.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    17
#include "hsrcbttools.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    18
#include "hsrccommand.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    19
#include "debug.h"
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    20
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    21
EXPORT_C CHsRemoteController* CHsRemoteController::NewL(
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    22
        MHsRCObserver* aObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    23
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    24
    CHsRemoteController* self = CHsRemoteController::NewLC( aObserver );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    25
    CleanupStack::Pop( self );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    26
    return self;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    27
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    28
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    29
EXPORT_C CHsRemoteController* CHsRemoteController::NewLC(
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    30
        MHsRCObserver* aObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    31
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    32
    CHsRemoteController* self = new ( ELeave ) CHsRemoteController( aObserver );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    33
    CleanupStack::PushL( self );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    34
    self->ConstructL();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    35
    return self;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    36
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    37
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    38
EXPORT_C CHsRemoteController::~CHsRemoteController()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    39
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    40
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    41
    if ( iBTManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    42
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    43
        delete iBTManager;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    44
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    45
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    46
    if ( iSocket )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    47
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    48
        if ( iConnected )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    49
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    50
            iSocket->CancelAll();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    51
            // Return value may be ignored
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    52
            iSocket->Shutdown( RSocket::EImmediate );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    53
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    54
        delete iSocket;
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
    iSocketServ.Close();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    58
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    59
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    60
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    61
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    62
EXPORT_C void CHsRemoteController::ConnectHsDevAddrL(
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    63
        const TBTDevAddr& aDevAddr, const TUUID& aService )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    64
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    65
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    66
    if ( iConnected )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    67
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    68
        User::Leave( KErrInUse );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    69
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    70
    if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    71
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    72
        iObserver->HandleConnectingToHs();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    73
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    74
    iBTManager->SetService( aService );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    75
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    76
    iBTManager->ConnectDevAddrL( aDevAddr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    77
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    78
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    79
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    80
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    81
EXPORT_C void CHsRemoteController::ConnectHsDevNameL( const TDesC& aHsName,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    82
        const TUUID& aService )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    83
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    84
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    85
    if ( iConnected )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    86
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    87
        User::Leave( KErrInUse );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    88
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    89
    if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    90
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    91
        iObserver->HandleConnectingToHs();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    92
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    93
    iBTManager->SetService( aService );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    94
    iBTManager->ConnectDevNameL( aHsName );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    95
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    96
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    97
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    98
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    99
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   100
EXPORT_C void CHsRemoteController::CancelConnectingToHs()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   101
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   102
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   103
    if ( iBTManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   104
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   105
        iBTManager->CancelConnecting();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   106
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   107
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   108
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   109
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   110
EXPORT_C void CHsRemoteController::DisconnectFromHs()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   111
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   112
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   113
    if ( iSocket )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   114
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   115
        if ( iConnected )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   116
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   117
            iSocket->CancelAll();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   118
            // Return value may be ignored
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   119
            iSocket->Shutdown( RSocket::EImmediate );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   120
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   121
        delete iSocket;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   122
        iSocket = NULL;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   123
        iConnected = EFalse;
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->HandleDisconnectedFromHs( KErrNone );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   127
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   128
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   129
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   130
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   131
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   132
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   133
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   134
EXPORT_C void CHsRemoteController::ReqTurnOnHs( const TDesC& aPluginCod,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   135
        const TDesC& aPluginSdp, const TDesC& aPluginProfile )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   136
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   137
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   138
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   139
    __ASSERT_ALWAYS( iConnected,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   140
            User::Panic(KHSRemoteControllerNotConnectedPanicMsg, KErrNotReady));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   141
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   142
    RBuf buf;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   143
    TRAPD(err, buf.CreateL( aPluginCod.Length() + aPluginSdp.Length()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   144
                    + aPluginProfile.Length() + 4 ) );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   145
    if ( err == KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   146
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   147
        TBuf <2> sep;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   148
        CnvUtfConverter::ConvertToUnicodeFromUtf8( sep,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   149
                KHsRemoteRequestParamSeparator );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   150
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   151
        buf.Copy( aPluginCod );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   152
        buf.Append( sep );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   153
        buf.Append( aPluginSdp );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   154
        buf.Append( sep );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   155
        buf.Append( aPluginProfile );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   156
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   157
        SendRequest( EHsTurnOn, buf );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   158
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   159
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   160
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   161
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   162
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   163
EXPORT_C void CHsRemoteController::ReqTurnOffHs()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   164
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   165
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   166
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   167
    __ASSERT_ALWAYS( iConnected,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   168
            User::Panic(KHSRemoteControllerNotConnectedPanicMsg, KErrNotReady));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   169
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   170
    SendRequest( EHsTurnOff );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   171
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   172
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   173
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   174
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   175
EXPORT_C void CHsRemoteController::ReqConnectWithDevAddr(
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   176
        const TBTDevAddr& aDevAddr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   177
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   178
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   179
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   180
    __ASSERT_ALWAYS( iConnected, 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   181
            User::Panic(KHSRemoteControllerNotConnectedPanicMsg, KErrNotReady));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   182
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   183
    TBuf <KDevAddrLength> devAddrBuf;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   184
    aDevAddr.GetReadable( devAddrBuf );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   185
    SendRequest( EHsConnectDevAddress, devAddrBuf );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   186
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   187
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   188
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   189
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   190
EXPORT_C void CHsRemoteController::ReqConnectWithDevName( 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   191
        const TDesC& aDevName )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   192
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   193
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   194
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   195
    __ASSERT_ALWAYS( iConnected, 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   196
            User::Panic(KHSRemoteControllerNotConnectedPanicMsg, KErrNotReady));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   197
    SendRequest( EHsConnectName, aDevName );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   198
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   199
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   200
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   201
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   202
EXPORT_C void CHsRemoteController::ReqConnectWithLastConnected()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   203
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   204
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   205
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   206
    __ASSERT_ALWAYS( iConnected,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   207
            User::Panic(KHSRemoteControllerNotConnectedPanicMsg, KErrNotReady));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   208
    
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   209
    SendRequest( EHsConnectLastconnected );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   210
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   211
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   212
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   213
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   214
EXPORT_C void CHsRemoteController::ReqAcceptCall()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   215
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   216
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   217
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   218
    __ASSERT_ALWAYS( iConnected, 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   219
            User::Panic(KHSRemoteControllerNotConnectedPanicMsg, KErrNotReady));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   220
    SendRequest( EHsAcceptCall );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   221
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   222
    TRACE_FUNC_EXIT
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 CHsRemoteController::ReqReleaseCall()
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
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   229
    __ASSERT_ALWAYS( iConnected, 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   230
            User::Panic(KHSRemoteControllerNotConnectedPanicMsg, KErrNotReady));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   231
    SendRequest( EHsReleaseCall );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   232
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   233
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   234
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   235
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   236
EXPORT_C void CHsRemoteController::ReqSetMicGain( const TDesC& aValue )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   237
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   238
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   239
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   240
    __ASSERT_ALWAYS( iConnected, 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   241
            User::Panic(KHSRemoteControllerNotConnectedPanicMsg, KErrNotReady));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   242
    SendRequest( EHsSetMicVolume, aValue );
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
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   246
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   247
EXPORT_C void CHsRemoteController::ReqSetSpeakerVolume( const TDesC& aValue )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   248
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   249
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   250
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   251
    __ASSERT_ALWAYS( iConnected, 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   252
            User::Panic(KHSRemoteControllerNotConnectedPanicMsg, KErrNotReady));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   253
    
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   254
    SendRequest( EHsSetSpeakerVolume, aValue );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   255
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   256
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   257
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   258
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   259
EXPORT_C void CHsRemoteController::ReqSendAnyAt( const TDesC& aValue )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   260
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   261
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   262
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   263
    __ASSERT_ALWAYS( iConnected, 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   264
            User::Panic(KHSRemoteControllerNotConnectedPanicMsg, KErrNotReady));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   265
    SendRequest( EHsSendAnyAt, aValue );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   266
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   267
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   268
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   269
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   270
EXPORT_C void CHsRemoteController::ReqDisconnectAG()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   271
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   272
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   273
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   274
    __ASSERT_ALWAYS( iConnected, 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   275
            User::Panic(KHSRemoteControllerNotConnectedPanicMsg, KErrNotReady));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   276
    SendRequest( EHsDisconnectAGs );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   277
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   278
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   279
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   280
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   281
CHsRemoteController::CHsRemoteController( MHsRCObserver* aObserver ) :
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   282
    iObserver( aObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   283
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   284
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   285
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   286
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   287
void CHsRemoteController::ConstructL()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   288
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   289
    User::LeaveIfError( iSocketServ.Connect() );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   290
    User::LeaveIfError( CreateBTManager() );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   291
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   292
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   293
void CHsRemoteController::SendRequest(
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   294
        const THsRemoteControlCommandType aCommandType, const TDesC& aData )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   295
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   296
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   297
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   298
    THsRCCommandData data( KNullDesC8 );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   299
    TInt err = CnvUtfConverter::ConvertFromUnicodeToUtf8( data, aData );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   300
    if ( err == KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   301
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   302
        THsRCCommand cmd( data, aCommandType );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   303
        cmd.ToDes8( iSendDataBuffer );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   304
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   305
        err = Send( iSendDataBuffer );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   306
        if ( ( err == KErrNone ) && iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   307
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   308
            iObserver->HandleRequestSent( aCommandType );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   309
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   310
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   311
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   312
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   313
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   314
TInt CHsRemoteController::Send( const TDesC8& aData )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   315
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   316
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   317
    TRACE_INFO( ( _L8("Data to be send: [%S]"), &aData) )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   318
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   319
    if ( !iConnected )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   320
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   321
        TRACE_INFO( _L("Not connected to HS") )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   322
        TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   323
        return KErrNotReady;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   324
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   325
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   326
    iSendDataBuffer.Copy( aData );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   327
    if ( iSendDataBuffer.Length() > 0 )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   328
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   329
        TInt err = iSocket->Write( iSendDataBuffer );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   330
        if ( err == KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   331
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   332
            iSendDataBuffer.Zero();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   333
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   334
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   335
        TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   336
        return err;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   337
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   338
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   339
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   340
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   341
    return KErrNone;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   342
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   343
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   344
void CHsRemoteController::Receive()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   345
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   346
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   347
    // Return value may be ignored, 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   348
    // error will be notified to HandleReceiveCompleteL
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   349
    iSocket->RecvOneOrMore( iReceiveDataBuffer, 0, iDataLength );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   350
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   351
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   352
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   353
TInt CHsRemoteController::ConnectRemoteControlServer( const TBTDevAddr& aAddr,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   354
        const TInt aPort )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   355
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   356
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   357
    TInt error = KErrNone;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   358
    if ( !iConnected )
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
        TProtocolDesc protocolDesc;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   362
        error = iSocketServ.FindProtocol( _L("RFCOMM"), protocolDesc );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   363
        if ( error != KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   364
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   365
            TRACE_INFO( ( _L("iSocketServ.FindProtocol error = %d"), error) )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   366
            TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   367
            return error;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   368
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   369
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   370
        TRAP(error, iSocket = CBluetoothSocket::NewL(*this, iSocketServ,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   371
                        protocolDesc.iSockType, protocolDesc.iProtocol));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   372
        if ( error != KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   373
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   374
            TRACE_INFO( ( _L("iSocket = CBluetoothSocket::NewL error = %d"), error))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   375
            TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   376
            return error;
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
        TBTSockAddr addr;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   380
        addr.SetBTAddr( aAddr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   381
        addr.SetPort( aPort );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   382
        error = iSocket->Connect( addr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   383
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   384
        if ( error != KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   385
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   386
            TRACE_INFO( ( _L("iSocket->Connect error = %d"), error))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   387
            TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   388
            return error;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   389
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   390
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   391
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   392
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   393
        TRACE_INFO( _L("CHsRemoteController::Connect() - client is already connected") )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   394
        TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   395
        return KErrInUse;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   396
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   397
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   398
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   399
    return KErrNone;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   400
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   401
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   402
TInt CHsRemoteController::CreateBTManager()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   403
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   404
    TInt err = KErrNone;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   405
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   406
    if ( !iBTManager )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   407
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   408
        TRAP(err, iBTManager = CHsRCBTManager::NewL(iSocketServ, this));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   409
        if ( err != KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   410
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   411
            iBTManager = NULL;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   412
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   413
        return err;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   414
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   415
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   416
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   417
        return KErrAlreadyExists;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   418
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   419
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   420
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   421
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   422
void CHsRemoteController::HandleConnectCompleteL( TInt aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   423
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   424
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   425
    TRACE_INFO( ( _L("aErr = %d"), aErr) )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   426
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   427
    if ( aErr == KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   428
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   429
        TRACE_INFO(_L("Connect completed"))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   430
        iConnected = ETrue;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   431
        Receive();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   432
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   433
    if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   434
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   435
        iObserver->HandleConnectedToHs( aErr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   436
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   437
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   438
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   439
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   440
void CHsRemoteController::HandleAcceptCompleteL( TInt /*aErr*/)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   441
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   442
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   443
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   444
void CHsRemoteController::HandleShutdownCompleteL( TInt /*aErr*/)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   445
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   446
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   447
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   448
void CHsRemoteController::HandleSendCompleteL( TInt aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   449
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   450
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   451
    TRACE_INFO( ( _L("aErr = %d"), aErr) )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   452
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   453
    if ( aErr == KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   454
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   455
        if ( ( iSendDataBuffer.Length() > 0 ) && ( ( iSocket->Write(
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   456
                iSendDataBuffer ) ) == KErrNone ) )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   457
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   458
            iSendDataBuffer.Zero();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   459
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   460
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   461
    Receive();
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
void CHsRemoteController::HandleReceiveCompleteL( TInt aErr )
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
    TRACE_INFO( ( _L("aErr = %d"), aErr) )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   469
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   470
    if ( aErr == KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   471
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   472
        if ( ( iSendDataBuffer.Length() > 0 ) && ( ( iSocket->Write(
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   473
                iSendDataBuffer ) ) == KErrNone ) )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   474
            {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   475
            iSendDataBuffer.Zero();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   476
            }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   477
        Receive();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   478
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   479
    else
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   480
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   481
        TRACE_INFO(_L("ControlServer cancelled listening"));
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   482
        DisconnectFromHs();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   483
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   484
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   485
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   486
void CHsRemoteController::HandleIoctlCompleteL( TInt /*aErr*/)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   487
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   488
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   489
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   490
void CHsRemoteController::HandleActivateBasebandEventNotifierCompleteL(
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   491
        TInt /*aErr*/, TBTBasebandEventNotification& /*aEventNotification*/)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   492
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   493
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   494
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   495
void CHsRemoteController::HandleDesiredDevFound( const TDesC& aDevName,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   496
        const TBTDevAddr& aDevAddr, const TInt aPort )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   497
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   498
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   499
    //value ignored
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   500
    TInt err = ConnectRemoteControlServer( aDevAddr, aPort );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   501
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   502
    TRACE_INFO((_L("err = %d"), err))
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   503
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   504
    if ( iObserver && err != KErrNone )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   505
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   506
        iObserver->HandleConnectedToHs( err );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   507
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   508
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   509
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   510
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   511
void CHsRemoteController::HandleDesiredDevNotFound( TInt aErr )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   512
    {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   513
    TRACE_FUNC_ENTRY
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   514
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   515
    if ( iObserver )
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   516
        {
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   517
        iObserver->HandleConnectedToHs( aErr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   518
        }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   519
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   520
    TRACE_FUNC_EXIT
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   521
    }
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   522