bluetoothengine/headsetsimulator/remotecontroller/inc/hsremotecontroller.h
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
#ifndef HSREMOTECONTROLLER_H
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    17
#define HSREMOTECONTROLLER_H
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    18
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    19
#include <e32base.h>
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    20
#include <bttypes.h> 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    21
#include <bt_sock.h>
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    22
#include <UTF.H>
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    23
#include <hsrcbttoolsobserver.h>
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    24
#include <hsremoterequest.h>
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    25
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    26
_LIT(KHSRemoteControllerNotConnectedPanicMsg,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    27
        "Not connected to Headset Simulator");
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    28
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    29
class CHsRCBTManager;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    30
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    31
/** Length of the remote request data */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    32
const TInt KHsRemoteControlDataLength = 1024;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    33
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    34
/** Buffer for remote control */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    35
typedef TBuf8 <KHsRemoteControlDataLength> THsRemoteControlBuffer;
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
 * @brief Interface for handling Headset Simulator Remote Controller's status
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    39
 */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    40
class MHsRCObserver
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    41
{
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    42
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    43
public:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    44
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    45
     * Informs about connection with Headset Simulator
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    46
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    47
     * @param aErr error value. If aErr == KErrNone connection is established, 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    48
     * otherwise not. 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    49
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    50
    virtual void HandleConnectedToHs( TInt aErr ) = 0;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    51
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    52
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    53
     * Informs about released connection with Headset Simulator
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    54
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    55
    virtual void HandleDisconnectedFromHs( TInt aErr ) = 0;
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
     * Informs that connection with Headset Simulator is being established 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    59
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    60
    virtual void HandleConnectingToHs() = 0;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    61
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    62
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    63
     * Informs that remote request was sent
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    64
     * @param aType THsRemoteControlCommandType
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    65
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    66
    virtual void HandleRequestSent( THsRemoteControlCommandType aType ) = 0;
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
/**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    70
 * @brief Class responsible for remote control of Headset Simulator
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    71
 */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    72
class CHsRemoteController : public CBase, public MBluetoothSocketNotifier,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    73
        public MHsRCBTManagerObserver
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    74
{
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    75
public:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    76
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    77
     * Two-phase constructor
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    78
     * @param aObserver pointer to MHsRCObserver
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    79
     * @return instance of class
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    80
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    81
    IMPORT_C static CHsRemoteController* NewL( MHsRCObserver* aObserver );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    82
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    83
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    84
     * Two-phase constructor
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    85
     * @param aObserver pointer to MHsRCObserver
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    86
     * @return instance of class
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    87
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    88
    IMPORT_C static CHsRemoteController* NewLC( MHsRCObserver* aObserver );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    89
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    90
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    91
     * Destructor
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    92
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    93
    IMPORT_C ~CHsRemoteController();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    94
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    95
public:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    96
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    97
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    98
     * Connects Headset Simulator by its bluetooth address
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
    99
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   100
     * When request completes notification is sent to 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   101
     * MHsRCObserver::HandleConnectedToHs()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   102
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   103
     * @param aDevAddr Headset Simulator's bluetooth address
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   104
     * @param aService Headset Simulator's Remote Control service TUUID
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   105
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   106
     * @leave KErrInUse if connection with Headset Simulator is already 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   107
     *        established 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   108
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   109
    IMPORT_C void ConnectHsDevAddrL( const TBTDevAddr& aDevAddr,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   110
            const TUUID& aService );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   111
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   112
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   113
     * Connects Headset Simulator by its bluetooth name
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   114
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   115
     * When request completes notification is sent to 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   116
     * MHsRCObserver::HandleConnectedToHs()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   117
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   118
     * @param aHsName Headset Simulator's bluetooth name
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   119
     * @param aService Headset Simulator's Remote Control service TUUID
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   120
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   121
     * @leave KErrInUse if connection with Headset Simulator is 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   122
     *        already established
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   123
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   124
    IMPORT_C void ConnectHsDevNameL( const TDesC& aHsName,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   125
            const TUUID& aService );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   126
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   127
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   128
     * Cancels attempt of connection with Headset Simulator
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   129
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   130
    IMPORT_C void CancelConnectingToHs();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   131
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   132
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   133
     * Disconnects from Headset Simulator
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   134
     *
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   135
     * When request completes notification is sent to 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   136
     * MHsRCObserver::HandleDisconnectedFromHs()
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   137
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   138
    IMPORT_C void DisconnectFromHs();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   139
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   140
    //remote requests
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   141
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   142
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   143
     * Requests turning HS on (i.e. start providing headset service)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   144
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   145
     * @pre Established connection with Headset Simulator
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   146
     * @param aPluginCod CoD plugin's name
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   147
     * @param aPluginSdp SDP plugin's name
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   148
     * @param aPluginProfile Profile plugin's name
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   149
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   150
    IMPORT_C void ReqTurnOnHs( const TDesC& aPluginCod,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   151
            const TDesC& aPluginSdp, const TDesC& aPluginProfile );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   152
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   153
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   154
     * Requests turning HS off (i.e. stop providing headset service)
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   155
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   156
     * @pre Established connection with Headset Simulator
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   157
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   158
    IMPORT_C void ReqTurnOffHs();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   159
    
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   160
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   161
     * Requests connection establishment between Headset Simulator and AG 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   162
     * with specified bluetooth address. Address should be lower-case.
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   163
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   164
     * @pre Established connection with Headset Simulator
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   165
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   166
     * @param aDevAddr AG's bluetooth device address
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   167
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   168
    IMPORT_C void ReqConnectWithDevAddr( const TBTDevAddr& aDevAddr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   169
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   170
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   171
     * Requests connection establishment between Headset Simulator and AG 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   172
     * with specified bluetooth name
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   173
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   174
     * @pre Established connection with Headset Simulator 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   175
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   176
     * @param aDevName AG's bluetooth device name
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   177
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   178
    IMPORT_C void ReqConnectWithDevName( const TDesC& aDevName );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   179
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   180
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   181
     * Requests connection establishment between Headset Simulator and 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   182
     * last-connected AG
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   183
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   184
     * @pre Established connection with Headset Simulator 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   185
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   186
    IMPORT_C void ReqConnectWithLastConnected();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   187
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   188
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   189
     * Requests accept incoming call on AG
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   190
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   191
     * @pre Established connection with Headset Simulator 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   192
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   193
    IMPORT_C void ReqAcceptCall();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   194
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   195
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   196
     * Requests call release on AG
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   197
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   198
     * @pre Established connection with Headset Simulator 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   199
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   200
    IMPORT_C void ReqReleaseCall();
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
     * Requests setting AG's microphone gain
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   204
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   205
     * @pre Established connection with Headset Simulator
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   206
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   207
     * @param aValue text-value 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   208
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   209
    IMPORT_C void ReqSetMicGain( const TDesC& aValue );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   210
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   211
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   212
     * Requests setting AG's speaker volume
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   213
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   214
     * @pre Established connection with Headset Simulator
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   215
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   216
     * @param aValue text-value 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   217
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   218
    IMPORT_C void ReqSetSpeakerVolume( const TDesC& aValue );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   219
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   220
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   221
     * Requests sending any AT command
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   222
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   223
     * @pre Established connection with Headset Simulator
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   224
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   225
     * @param aValue text-value 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   226
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   227
    IMPORT_C void ReqSendAnyAt( const TDesC& aValue );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   228
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   229
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   230
     * Requests disconnection of AG from Headset Simulator
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   231
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   232
     * @pre Established connection with Headset Simulator
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   233
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   234
    IMPORT_C void ReqDisconnectAG();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   235
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   236
private:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   237
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   238
     * Constructor for performing 1st stage construction
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   239
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   240
     * @param aObserver pointer to MHsRCObserver
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   241
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   242
    CHsRemoteController( MHsRCObserver* aObserver );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   243
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   244
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   245
     * Constructor for performing 2nd stage construction
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   246
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   247
    void ConstructL();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   248
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   249
private:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   250
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   251
     * Sends request to Headset Simulator
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   252
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   253
     * @param aCommandType type of command
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   254
     * @param aData additional data send within request
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   255
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   256
    void SendRequest( const THsRemoteControlCommandType aCommandType,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   257
            const TDesC& aData = KNullDesC );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   258
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   259
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   260
     * Sends data (THsRCCommand as a descriptor) to remote bluetooth device
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   261
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   262
     * @param aData data to be send
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   263
     * @return error value
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   264
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   265
    TInt Send( const TDesC8& aData );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   266
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   267
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   268
     *  Receives data from remote bluetooth device
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   269
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   270
    void Receive();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   271
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   272
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   273
     * Connects with Headset Simulator's Remote Control server
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   274
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   275
     * @param aAddr Headset Simulator's bluetooth address
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   276
     * @param aPort Headset Simulator's remote controls's server port
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   277
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   278
     * @return error value
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   279
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   280
    TInt ConnectRemoteControlServer( const TBTDevAddr &aAddr, const TInt aPort );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   281
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   282
    /**
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   283
     * Creates component responsible for handling bluetooth 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   284
     * 
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   285
     * @return error value
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   286
     */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   287
    TInt CreateBTManager();
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   288
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   289
private:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   290
    //Methods inherited from MBluetoothSocketNotifier
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   291
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   292
    void HandleConnectCompleteL( TInt aErr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   293
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   294
    void HandleAcceptCompleteL( TInt aErr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   295
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   296
    void HandleShutdownCompleteL( TInt aErr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   297
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   298
    void HandleSendCompleteL( TInt aErr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   299
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   300
    void HandleReceiveCompleteL( TInt aErr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   301
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   302
    void HandleIoctlCompleteL( TInt aErr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   303
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   304
    void HandleActivateBasebandEventNotifierCompleteL( TInt aErr,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   305
            TBTBasebandEventNotification& aEventNotification );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   306
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   307
private:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   308
    //Methods inherited from MHsRCBTManagerObserver
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   309
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   310
    void HandleDesiredDevFound( const TDesC& aDevName,
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   311
            const TBTDevAddr& aDevAddr, const TInt aPort );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   312
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   313
    void HandleDesiredDevNotFound( TInt aErr );
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   314
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   315
private:
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   316
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   317
    /** received data */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   318
    THsRemoteControlBuffer iReceiveDataBuffer;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   319
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   320
    /** data to be sent */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   321
    THsRemoteControlBuffer iSendDataBuffer;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   322
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   323
    /** buffered data */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   324
    THsRemoteControlBuffer iTempDataBuffer;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   325
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   326
    /** data length */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   327
    TSockXfrLength iDataLength;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   328
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   329
    /** instance of socket server */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   330
    RSocketServ iSocketServ;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   331
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   332
    /** denotes if connection with Headset Simulator is established */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   333
    TBool iConnected;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   334
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   335
    /** pointer to CHsRCBTManager, owned */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   336
    CHsRCBTManager* iBTManager;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   337
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   338
    /** pointer to CBluetoothSocket, owned */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   339
    CBluetoothSocket* iSocket;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   340
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   341
    /** pointer to MHsRCObserver, not owned */
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   342
    MHsRCObserver* iObserver;
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   343
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   344
};
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   345
90dbfc0435e3 source code commit
michal.sulewski
parents:
diff changeset
   346
#endif // HSREMOTECONTROLLER_H