accessoryservices/accessoryserver/inc/Server/AccSrvServerModel.h
changeset 0 4e1aa6a622a0
child 13 cef4ff1e6c4f
child 56 1ddbe54d0645
equal deleted inserted replaced
-1:000000000000 0:4e1aa6a622a0
       
     1 /*
       
     2 * Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Singleton Data Storage of Accessory Server
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef CACCSRVSERVERMODEL_H
       
    20 #define CACCSRVSERVERMODEL_H
       
    21 
       
    22 //  INCLUDES
       
    23 #include "AccPolAccessoryMode.h"
       
    24 #include "AccSrvNotificationQueue.h"//TMsgID
       
    25 #include "AccPolCapabilityStorage.h"
       
    26 
       
    27 #include <AccessoryTypes.h>
       
    28 #include <AccPolGenericID.h>
       
    29 #include <AccPolGenericIDArray.h>
       
    30 
       
    31 
       
    32 // CONSTANTS
       
    33 
       
    34 // MACROS
       
    35 
       
    36 // DATA TYPES
       
    37 
       
    38 // FUNCTION PROTOTYPES
       
    39 
       
    40 // FORWARD DECLARATIONS
       
    41 
       
    42 // CLASS DECLARATION
       
    43 
       
    44 /**
       
    45 *  ?one_line_short_description.
       
    46 *  ?other_description_lines
       
    47 *
       
    48 *  @lib AccServer.lib
       
    49 *  @since S60 3.1
       
    50 */
       
    51 NONSHARABLE_CLASS( CAccSrvServerModel ) : public CBase
       
    52     {
       
    53     public:  // Constructors and destructor
       
    54 
       
    55         /**
       
    56         * Two-phased constructor.
       
    57         */
       
    58         static CAccSrvServerModel* NewL();
       
    59 
       
    60         /**
       
    61         * Destructor.
       
    62         */
       
    63         virtual ~CAccSrvServerModel();
       
    64 
       
    65     public: // New functions
       
    66 
       
    67         /**
       
    68         * Check is the accessory allready connected.
       
    69         *
       
    70         * @since S60 3.1
       
    71         * @param aGenericID Generic ID of the connected accessory.
       
    72         * @return ETrue if the accessory is connected, EFalse otherwise.
       
    73         */
       
    74         TBool IsConnected( const TAccPolGenericID& aGenericID ) const;
       
    75 
       
    76         /**
       
    77         * Check is the accessory allready connected.
       
    78         *
       
    79         * @since S60 3.1
       
    80         * @param aGenericID Generic ID of the connected accessory.
       
    81         * @return void
       
    82         * @exception KErrArgument if the accessory is not connected.
       
    83         */
       
    84         void IsConnectedL( const TAccPolGenericID& aGenericID ) const;
       
    85         
       
    86         /**
       
    87         * Check is the accessory allready connected or detected.
       
    88         *
       
    89         * @since S60 3.1
       
    90         * @param aGenericID Generic ID of the connected or detected accessory.
       
    91         * @return TBool ETrue if connected otherwise EFalse
       
    92         * @exception KErrArgument if the accessory is not connected or detected.
       
    93         */
       
    94         TBool IsConnectedOrDetected( const TAccPolGenericID& aGenericID ) const;            
       
    95         
       
    96         /**
       
    97         * Check is the accessory allready connected or detected.
       
    98         *
       
    99         * @since S60 3.1
       
   100         * @param aGenericID Generic ID of the connected or detected accessory.
       
   101         * @return void
       
   102         * @exception KErrArgument if the accessory is not connected or detected.
       
   103         */
       
   104         void IsConnectedOrDetectedL( const TAccPolGenericID& aGenericID ) const;    
       
   105     
       
   106 
       
   107         /**
       
   108         * Add a new connection to array of active connections.
       
   109         *
       
   110         * @since S60 3.1
       
   111         * @param aGenericID Generic ID of the connected accessory.
       
   112         * @return void
       
   113         */
       
   114         void AddConnectionL( const TAccPolGenericID& aGenericID );
       
   115         
       
   116        /**
       
   117         * Update a generic id of active connections.
       
   118         *
       
   119         * @since S60 3.1
       
   120         * @param aGenericID Generic ID of the connected accessory.
       
   121         * @return void
       
   122         */
       
   123         void UpdateConnectionL( const TAccPolGenericID& aGenericID );        
       
   124 
       
   125         /**
       
   126         * Add a new physical connection to array of detected accessories.
       
   127         *
       
   128         * @since S60 3.1
       
   129         * @param aGenericID Generic ID of the detected accessory.
       
   130         * @return void
       
   131         */
       
   132         void AddPhysicalConnectionL( const TAccPolGenericID& aGenericID );
       
   133 
       
   134         /**
       
   135         * Remove an active connection from array of active connections.
       
   136         *
       
   137         * @since S60 3.1
       
   138         * @param aGenericID Generic ID of the connected accessory.
       
   139         * @param aDisconnect If ETrue, removed accessory is stored.
       
   140         *                    Used while disconnecting accessory.
       
   141         * @return void
       
   142         * @see LastDisconnectedAccessory()
       
   143         */
       
   144         void RemoveConnectionL( const TAccPolGenericID& aGenericID,
       
   145                                 TBool aDisconnect );
       
   146 
       
   147         /**
       
   148         * Get last disconnected accessory.
       
   149         *
       
   150         * @since S60 3.1
       
   151         * @return Gereric Id of the last disconnected accessory.
       
   152         * @see ClearLastDisconnectedAccessory()
       
   153         */
       
   154         const TAccPolGenericID& LastDisconnectedAccessory();
       
   155 
       
   156         /**
       
   157         * Clear last disconnected accessory.
       
   158         *
       
   159         * @since S60 3.1
       
   160         * @return void
       
   161         */
       
   162         void ClearLastDisconnectedAccessory();
       
   163 
       
   164         /**
       
   165         * Get last connected accessory.
       
   166         *
       
   167         * @since S60 3.1
       
   168         * @param aGenericID On succesful return, contains the Generic ID of
       
   169         *                   last connected accessory.
       
   170         * @return void
       
   171         */
       
   172         void GetLastConnectedAccessoryL( TAccPolGenericID& aGenericID ) const;
       
   173 
       
   174         /**
       
   175         * Remove the physical connection from array of detected accessories.
       
   176         *
       
   177         * @since S60 3.1
       
   178         * @param aGenericID Generic ID of the detected accessory.
       
   179         * @return void
       
   180         */
       
   181         void RemovePhysicalConnection( const TAccPolGenericID& aGenericID );
       
   182 
       
   183         /**
       
   184         * Get current connection status, ie. all active connections.
       
   185         *
       
   186         * @since S60 3.1
       
   187         * @param aGenericIDArray On succesful return, contains all active connections.
       
   188         * @return void
       
   189         */
       
   190         void CurrentConnectionStatusL( TAccPolGenericIDArray& aGenericIDArray );
       
   191 
       
   192         /**
       
   193         * Finds matching Generic ID according to Unique DB ID.
       
   194         * Search is done among the all active connections.
       
   195         *
       
   196         * @since S60 3.1
       
   197         * @param aUniqueID  Unique ID of the connected accessory.
       
   198         * @param aGenericID On succesful return, contains the Generic ID.
       
   199         * @return void
       
   200         */
       
   201         void FindWithUniqueIDL( TInt aUniqueID,
       
   202                                 TAccPolGenericID& aGenericID ) const;
       
   203 
       
   204         /**
       
   205         * Finds matching Generic ID according to device address.
       
   206         * Search is done among the all active connections.
       
   207         *
       
   208         * @since S60 3.1
       
   209         * @param aDeviceAddress Device address to be used for matching.
       
   210         * @param aUniqueID      On succesfull return, contains Unique ID
       
   211         *                       of the found Generic ID.
       
   212         * @return index of the found Generic ID.
       
   213         */
       
   214         TInt FindWithDeviceAddressL( TUint64 aDeviceAddress,
       
   215                                      TInt& aUniqueID ) const;
       
   216 
       
   217         /**
       
   218         * Get current Accessory Mode.
       
   219         *
       
   220         * @since S60 3.1
       
   221         * @return The current accessory mode.
       
   222         */
       
   223         TAccPolAccessoryMode AccessoryMode() const;
       
   224 
       
   225         /**
       
   226         * Set current Accessory Mode.
       
   227         *
       
   228         * @since S60 3.1
       
   229         * @param aAccMode Accessory mode to be stored.
       
   230         * @return ETrue if Accessory Mode is changed, otherwise EFalse.
       
   231         */
       
   232         TBool SetAccessoryMode( TAccPolAccessoryMode aAccMode, TInt aUniqueID );
       
   233 
       
   234         /**
       
   235         * 
       
   236         *
       
   237         * 
       
   238         * 
       
   239         */
       
   240         TInt UniqueID() const {return iUniqueID;}
       
   241         
       
   242         /**
       
   243         * Sets ASYs loading status flag to ETrue. This means that all ASYs are
       
   244         * loaded or loading timeout has occurred.
       
   245         *
       
   246         * @since S60 3.1
       
   247         * @return void
       
   248         */
       
   249         void SetASYsLoadCompleted();
       
   250 
       
   251         /**
       
   252         * Gets ASYs loading status.
       
   253         *
       
   254         * @since S60 3.1
       
   255         * @return ASYs loading status.
       
   256         * @see SetASYsLoadCompleted()
       
   257         */
       
   258         TBool ASYsLoadCompleted() const;
       
   259 
       
   260         /**
       
   261         * Set current requested audio type.
       
   262         * Used in Audio Link opening and closing.
       
   263         *
       
   264         * @since S60 3.1
       
   265         * @param aAudioType Audio type to be stored.
       
   266         * @return void.
       
   267         * @see AudioType()
       
   268         */
       
   269         void SetAudioType( TAccAudioType aAudioType );
       
   270 
       
   271         /*
       
   272         * Get current requested audio type.
       
   273         * Used in Audio Link opening and closing.
       
   274         *
       
   275         * @since S60 3.1
       
   276         * @return current requested audio type.
       
   277         * @see SetAudioType()
       
   278         */
       
   279         TAccAudioType AudioType() const;
       
   280 
       
   281         /**
       
   282         * Set device type. Used to store user setting related
       
   283         * to TTY/Loopset detection.
       
   284         *
       
   285         * @since S60 3.1
       
   286         * @param aDeviceType Device type to set. HW device bit masks are
       
   287         *                    declared in AccessoryTypes.h.        *
       
   288         * @return void
       
   289         * @see SetAudioType()
       
   290         */
       
   291         void SetDeviceType( TUint32 aDeviceType );
       
   292 
       
   293         /*
       
   294         * Get device type.
       
   295         *
       
   296         * @since S60 3.1
       
   297         * @return Current HW device type.
       
   298         * @see SetDeviceType()
       
   299         */
       
   300         TUint32 DeviceType() const;
       
   301         
       
   302         /*
       
   303         * Get supported device types.
       
   304         *
       
   305         * @since S60 3.1
       
   306         * @return Currently supported HW device types.
       
   307         */
       
   308         TUint32 SupportedDevicesL();        
       
   309 
       
   310         /**
       
   311         * This is data storage
       
   312         * Used between CAccSrvSubControl and CAccSrvSubSingleConnection
       
   313         * subsessions. SetValueL data is stored here and used when
       
   314         * AccessoryValueChanged notification is checked and possibly completed.
       
   315         *
       
   316         * @since S60 3.1
       
   317         * @param aGenericId   Generic ID to store.
       
   318         * @param aNameRecord  NameRecord to store.
       
   319         * @param aValueTint   Integer value to store.
       
   320         * @param aValueTBool  Boolean value to store.
       
   321         * @param aValueObject Object value to store.
       
   322         * @return void
       
   323         */
       
   324         void SetValueData( TAccPolGenericID& aGenericId,
       
   325                            TAccPolNameRecord& aNameRecord,
       
   326                            TAccValueTypeTInt aValueTint,
       
   327                            TAccValueTypeTBool aValueTBool,
       
   328                            TAccValueTypeObject aValueObject );
       
   329 
       
   330         /**
       
   331         * Getter for Generic ID ValueData.
       
   332         *
       
   333         * @since S60 3.1
       
   334         * @return Stored Generic ID.
       
   335         * @see SetValueData()
       
   336         */
       
   337         TAccPolGenericID ValueDataGid() const;
       
   338 
       
   339         /**
       
   340         * Getter for NameRecord ValueData.
       
   341         *
       
   342         * @since S60 3.1
       
   343         * @return Stored NameRecord.
       
   344         * @see SetValueData()
       
   345         */
       
   346         TAccPolNameRecord ValueDataNameRecord() const;
       
   347 
       
   348         /**
       
   349         * Getter for Integer ValueData.
       
   350         *
       
   351         * @since S60 3.1
       
   352         * @return Stored Integer value.
       
   353         * @see SetValueData()
       
   354         */
       
   355         TAccValueTypeTInt ValueDataTInt() const;
       
   356 
       
   357         /**
       
   358         * Getter for Boolean ValueData.
       
   359         *
       
   360         * @since S60 3.1
       
   361         * @return Stored Boolean value.
       
   362         * @see SetValueData()
       
   363         */
       
   364         TAccValueTypeTBool ValueDataTBool() const;
       
   365 
       
   366         /**
       
   367         * Getter for Object ValueData.
       
   368         *
       
   369         * @return Stored Boolean value.
       
   370         * @see SetValueData()
       
   371         */
       
   372         TAccValueTypeObject ValueDataObject() const;
       
   373 
       
   374         /**
       
   375         * Add ASYs thread Id to iRegisteredASYs array.
       
   376         * This array contains all known non idle ASYs.
       
   377         *
       
   378         * @since S60 3.1
       
   379         * @param aThreadID ASYs thread ID to be stored.
       
   380         * @return void
       
   381         */
       
   382         void AddASYThreadId( TUint aThreadID );
       
   383 
       
   384         /**
       
   385         * Creates mapping between Generic ID and ASY.
       
   386         * All commands related to certsain Generic ID are forwarded to correct
       
   387         * ASY according to this mapping.
       
   388         *
       
   389         * @since S60 3.1
       
   390         * @param aThreadID ASYs thread ID.
       
   391         * @param aUniqueID Unique identifier of a Generic ID.
       
   392         * @return void
       
   393         */
       
   394         void StoreASYThreadID( TUint aThreadID, TInt aUniqueID );
       
   395 
       
   396         /**
       
   397         * Removes mapping between Generic ID and ASY.
       
   398         *
       
   399         * @since S60 3.1
       
   400         * @param aUniqueID Unique identifier of a Generic ID.
       
   401         * @return void
       
   402         * @see StoreASYThreadID()
       
   403         */
       
   404         void RemoveASYThreadID( TInt aUniqueID );
       
   405 
       
   406         /**
       
   407         * Checks is the mapping between ASY and Generic ID done.
       
   408         *
       
   409         * @since S60 3.1
       
   410         * @param aThreadID ASYs thread ID.
       
   411         * @param aUniqueID Unique identifier of a Generic ID.
       
   412         * @return ETrue if mapping between ASY and Generic ID done for ASY
       
   413         *         given as a parameter, otherwise EFalse.
       
   414         * @see StoreASYThreadID()
       
   415         */
       
   416         TBool IsMyRequest( TUint aThreadID, TInt aUniqueID );
       
   417 
       
   418         /**
       
   419         * Create a Thread Id/message filter.
       
   420         * Used to filter notifications to certain thread.
       
   421         *
       
   422         * E.g. NotifyAccessoryAudioLinkOpened() notification is not sent to
       
   423         *      the thread where AccessoryAudioLinkOpen() message has been sent.
       
   424         *
       
   425         * @since S60 3.1
       
   426         * @param aThreadID Thread ID of the message(aMsgID) sender.
       
   427         * @param aMsgID    Message in question.
       
   428         * @return void
       
   429         * @see FindAndDeleteMsgThreadIDFilter()
       
   430         */
       
   431         void SetMsgThreadIDFilter( TUint aThreadID, TMsgID aMsgID );
       
   432 
       
   433         /**
       
   434         * Find and delete a Thread Id/message filter.
       
   435         * Used to filter notifications to certain thread.
       
   436         *
       
   437         * E.g. NotifyAccessoryAudioLinkOpened() notification is not sent to
       
   438         *      the thread where AccessoryAudioLinkOpen() message has been sent.
       
   439         *
       
   440         * @since S60 3.1
       
   441         * @param aThreadID Thread ID to find.
       
   442         * @param aMsgID    Message to find .
       
   443         * @return ETrue if Thread Id/message filter is found and deleted,
       
   444         *         otherwise EFalse
       
   445         * @see SetMsgThreadIDFilter
       
   446         */
       
   447         TBool FindAndDeleteMsgThreadIDFilter( TUint aThreadID, TMsgID aMsgID );
       
   448 
       
   449         /**
       
   450         * Store information for cancelling ConnectAccessory().
       
   451         * This method is used when ConnectAccessory()
       
   452         * asynchronous call is cancelled before its completed.
       
   453         *
       
   454         * @since S60 3.1
       
   455         * @param aUniqueID Defines the accessory which connection is cancelled.
       
   456         * @return void
       
   457         */
       
   458         void SetCancelledConnectAccessoryL( TInt aUniqueID );
       
   459 
       
   460         /**
       
   461         * Store information for cancelling ConnectAccessory().
       
   462         * This method is used when ConnectAccessory()
       
   463         * asynchronous call is cancelled before its completed.
       
   464         *
       
   465         * @since S60 3.1
       
   466         * @param aDeviceAddress Defines the accessory which connection is cancelled.
       
   467         * @return void
       
   468         */
       
   469         void SetCancelledConnectAccessoryL( TUint64 aDeviceAddress );
       
   470 
       
   471         /**
       
   472         * Checks if the accessory connection is cancelled.
       
   473         *
       
   474         * @since S60 3.1
       
   475         * @param aUniqueID Defines the accessory which connection is cancelled.
       
   476         * @return ETrue if the accessory connection is cancelled,
       
   477         *         otherwise EFalse
       
   478         * @see SetCancelledConnectAccessory
       
   479         */
       
   480         TBool FindAndRemoveCancelledConnectAccessory( TInt aUniqueID );
       
   481         
       
   482         /**
       
   483         * Returns global capability storage.
       
   484         *
       
   485         * @since S60 3.1
       
   486         * @return CCapabilityStorage& Return reference to global capability storage,
       
   487         *         
       
   488         */
       
   489         CCapabilityStorage& CapabilityStorage();
       
   490         
       
   491         /**
       
   492         * Set AccessoryAudioLinkOpen() cancel information.
       
   493         *
       
   494         * @since S60 3.1
       
   495         * @param aCancelled ETrue if AccessoryAudioLinkOpen() is cancelled,
       
   496         *                   EFalse when cancel is handled.
       
   497         * @return void
       
   498         * @see AudioLinkOpenCancelled
       
   499         */
       
   500         void SetAudioLinkOpenCancelled( TBool aCancelled );
       
   501         
       
   502         /**
       
   503         * Get AccessoryAudioLinkOpen() cancel information.
       
   504         *
       
   505         * @since S60 3.1
       
   506         * @return ETrue if AccessoryAudioLinkOpen() is cancelled,
       
   507         *         EFalse when cancel is handled.
       
   508         * @see SetAudioLinkOpenCancelled
       
   509         */
       
   510         TBool AudioLinkOpenCancelled();
       
   511         
       
   512         /**
       
   513         * Set AccessoryAudioLinkClose() cancel information.
       
   514         *
       
   515         * @since S60 3.1
       
   516         * @param aCancelled ETrue if AccessoryAudioLinkClose() is cancelled,
       
   517         *                   EFalse when cancel is handled.
       
   518         * @return void
       
   519         * @see AudioLinkCloseCancelled
       
   520         */
       
   521         void SetAudioLinkCloseCancelled( TBool aCancelled );
       
   522         
       
   523         /**
       
   524         * Get AccessoryAudioLinkClose() cancel information.
       
   525         *
       
   526         * @since S60 3.1
       
   527         * @return ETrue if AccessoryAudioLinkClose() is cancelled,
       
   528         *         EFalse when cancel is handled.
       
   529         * @see SetAudioLinkCloseCancelled
       
   530         */
       
   531         TBool AudioLinkCloseCancelled();
       
   532         
       
   533         /**
       
   534         * Set server model to idle detected state. It means that phone is booted up and
       
   535         * accessory selection dialog can be shown
       
   536         * @since S60 3.1
       
   537         * @return void
       
   538         */
       
   539         void SetIdleDetected();
       
   540         
       
   541         /**
       
   542         * Get idle detected state
       
   543         * @since S60 3.1
       
   544         * @return TBool Is idle detected already
       
   545         */
       
   546         TBool IdleDetected();        
       
   547         
       
   548         /**
       
   549         * Waits idle state. Complete message when idle is detected
       
   550         * @since S60 3.1
       
   551         * @return TInt KErrGeneral if idle is already detected
       
   552         */
       
   553         TInt WaitForIdle( TRequestStatus* aStatus );
       
   554 
       
   555         /**
       
   556         * Cancels Idle wait request.
       
   557         * @since S60 3.1
       
   558         * @return void
       
   559         */
       
   560         void CancelWaitForIdle();
       
   561         
       
   562         /**
       
   563         * Gets audio link open indicator for bluetooth
       
   564         *
       
   565         * @since S60 3.2
       
   566         * @return Value of the indicator.
       
   567         */
       
   568         TBool BluetoothAudioLinkOpenReqPostponed();
       
   569         
       
   570         /**
       
   571         * Sets audio link open indicator for bluetooth
       
   572         *
       
   573         * @since S60 3.2
       
   574         * @param aValue Value of the indicator.
       
   575         */
       
   576         void SetBluetoothAudioLinkOpenReqPostponed( TBool aValue );
       
   577         
       
   578     public: // Functions from base classes
       
   579 
       
   580     protected:  // New functions
       
   581 
       
   582     protected:  // Functions from base classes
       
   583 
       
   584     private:
       
   585 
       
   586         /**
       
   587         * Structure to store a Thread Id/message filter.
       
   588         */
       
   589         struct TAccSrvThreadIDFilter
       
   590             {
       
   591             TUint iThreadID;
       
   592             TMsgID iMsgID;
       
   593             };
       
   594 
       
   595         /**
       
   596         * C++ default constructor.
       
   597         */
       
   598         CAccSrvServerModel();
       
   599 
       
   600         /**
       
   601         * By default Symbian 2nd phase constructor is private.
       
   602         */
       
   603         void ConstructL();
       
   604 
       
   605         /**
       
   606         * Search Generic ID from array of active connections (according HWDeviceID).
       
   607         */
       
   608         TInt FindGID( const TAccPolGenericID& aGenericID,
       
   609                       const RArray<TAccPolGenericID>& aArray ) const;
       
   610 
       
   611     public:     // Data
       
   612 
       
   613     protected:  // Data
       
   614 
       
   615     private:    // Data
       
   616 
       
   617         //GenericIDArray of active connections
       
   618         RArray<TAccPolGenericID> iConnectionArray;
       
   619 
       
   620         //GenericIDArray of physical connections
       
   621         RArray<TAccPolGenericID> iPhysicalConnectionArray;
       
   622 
       
   623         //Last disconnected accessory
       
   624         TAccPolGenericID iLastDisconnectedAccessory;
       
   625 
       
   626         //Current Accessory Mode
       
   627         TAccPolAccessoryMode iAccMode;
       
   628 
       
   629         //Preferred audio output status is assigned for this uniqueID.
       
   630 				TInt iUniqueID;
       
   631         // Flag for indicating ASYs loading complettion
       
   632         TBool iASYsLoadCompleted;
       
   633 
       
   634         //Requested audio type while
       
   635         //Request to open accessory audio connection is made
       
   636         TAccAudioType iAudioType;
       
   637 
       
   638         // Device type set from UI that's used to identify some
       
   639         // accessories on connection phase.
       
   640         TUint32 iDeviceType;
       
   641 
       
   642         //ValueChangedNotifyData
       
   643         TAccPolGenericID    iValueDataGenericId;
       
   644         TAccPolNameRecord   iValueDataNameRecord;
       
   645         TAccValueTypeTInt   iValueDataTint;
       
   646         TAccValueTypeTBool  iValueDataTBool;
       
   647         TPtr8               iValueDataObject;
       
   648 
       
   649         //Thread IDs of all known ASYs
       
   650         RArray<TUint>      iRegisteredASYs;
       
   651 
       
   652         //Thread ID of ASY and GID mapping tables.
       
   653         RArray<TUint> iASYThreadID;
       
   654         RArray<TInt>  iASYUniqueID;
       
   655 
       
   656         //Thread Id/message filter array
       
   657         RArray<TAccSrvThreadIDFilter> iThreadIDFilterArray;
       
   658 
       
   659         //Unique DB ID of the cancelled accessory connection
       
   660         RArray<TInt> iCancelledConnectAccessory;
       
   661 
       
   662         //global capability storage
       
   663         CCapabilityStorage * iCapabilityStorage;
       
   664         
       
   665         //AccessoryAudioLinkOpen() cancel information
       
   666         TBool iAudioLinkOpenCancelled;
       
   667         
       
   668         //AccessoryAudioLinkClose() cancel information
       
   669         TBool iAudioLinkCloseCancelled;
       
   670         
       
   671         //supported devices
       
   672         TUint32 iSupportedDevices;
       
   673 
       
   674         //supported devices
       
   675         TBool iIdleDetected;
       
   676 
       
   677         //supported devices
       
   678         TRequestStatus* iIdleStatus;
       
   679         
       
   680         //Indicates for the bluetooth control if audio link open is in progress
       
   681         TBool iBluetoothAudioLinkOpenReqPostponed;
       
   682         
       
   683     public:     // Friend classes
       
   684 
       
   685     protected:  // Friend classes
       
   686 
       
   687     private:    // Friend classes
       
   688 
       
   689     };
       
   690 
       
   691 #endif      // CACCSRVSERVERMODEL_H
       
   692 
       
   693 // End of File