--- a/bluetoothengine/btnotif/inc/btninqui.h Thu Aug 19 10:05:41 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,383 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Declares Bluetooth device inquiry user interface class.
-*
-*/
-
-
-#ifndef BTNINQUI_H
-#define BTNINQUI_H
-
-// INCLUDES
-
-#include <btextnotifiers.h> // Bluetooth notifiers API
-#include <badesca.h> // For array handling
-#include <AknIconArray.h>
-#include "btnotifactive.h" // Active Object Helper class for inquiry
-#include <bt_sock.h>
-#include <btengdevman.h>
-#include "btnotifier.h"
-
-const TInt KPeriodicTimerInterval4Sec(4000000);
-
-
-// FORWARD DECLARATIONS
-
-class CAknStaticNoteDialog;
-class CAknSingleGraphicPopupMenuStyleListBox;
-class CAknPopupList;
-class CAknQueryDialog;
-class CBTInqNotifier;
-
-// CONSTANTS
-enum TSearchFlowState
- {
- ESearchCompleted, // search completed for any reason, end of UI flow.
- ESearchAgain, // no device found, user wants to search again.
- ESearchFirstDeviceFound, // the first device is found, show found device list.
- };
-
-// CLASS DECLARATION
-/**
- * Class MBTNDeviceSearchObserver
- *
- * Callback class to notify device searching completed.
- */
-class MBTNDeviceSearchObserver
- {
-public:
-
- /**
- * Callback to notify that the device search request has completed.
- *
- * @since S60 5.1
- * @param aErr Error code
- * @param aDevice Pckgbuf to retrieve the response from the device selection.
- */
- virtual void NotifyDeviceSearchCompleted(TInt aErr,
- const TBTDeviceResponseParams& aDevice = TBTDeviceResponseParams()) = 0;
- };
-
-/**
-* A helper class used in Bluetooth device search.
-* This class is responsible of the UI activity.
-*/
-NONSHARABLE_CLASS(CBTInqUI) : public CBase, public MBTEngDevManObserver, public MBTNotifActiveObserver
- {
- public: // Constructor and destructor
- /**
- * C++ default constructor.
- */
- CBTInqUI( MBTNDeviceSearchObserver* aObserver,
- CBTNotifUIUtil* aUtil, const TBTDeviceClass& aDesiredDevClass);
-
- /**
- * The 2nd phase constructor is required to do Asyncronous operations,
- * So the readiness of the CBTInqUI is notified Asynchronously to the caller
- */
- void ConstructL();
-
- /**
- * Destructor.
- */
- virtual ~CBTInqUI();
-
- public: // New functions
-
- /**
- * Cancels all inquiry activity.
- */
- void Cancel();
-
- /**
- * Issues a device inquiry request.
- * @param None.
- * @return None.
- */
- void IssueRequestL();
-
- /**
- * Check if Eir device name available.
- * @param TNameEntry Decode it to get device name
- * @param TBTDeviceName Device name returned
- * @param TBool Is the name returned complete
- * @return ETrue if Eir data contains name.
- */
- static TBool CheckEirDeviceName( TNameEntry& aEntry, TBTDeviceName& aName, TBool& aIsComplete );
-
- private: // Functions from base classes
-
- /**
- * From MBTNotifActiveObserver
- */
- void RequestCompletedL( CBTNotifActive* aActive, TInt aId, TInt aStatus );
-
- /**
- * From MBTNotifActiveObserver
- */
- void HandleError( CBTNotifActive* aActive, TInt aId, TInt aError );
-
- /**
- * From MBTNotifActiveObserver
- */
- void DoCancelRequest( CBTNotifActive* aActive, TInt aId );
-
- /**
- * From MBTEngDevManObserver
- */
- void HandleGetDevicesComplete(TInt aErr, CBTDeviceArray* aDeviceArray);
-
- /**
- * From MBTEngDevManObserver
- */
- void HandleDevManComplete(TInt aErr);
-
-
- private:
-
- /**
- * Create the device search active object and prepare for search.
- */
- void CreateScannerL();
-
- /**
- * Removes the device search active object if it still exists.
- * @param None.
- * @return None.
- */
- void RemoveScanner();
-
- /**
- * Retrieves paired devices from BT Registry
- * Calls HandleGetDevicesComplete, when done
- */
- void RetrievePairedDevices();
-
- /**
- * Retrieves used devices from BT Registry
- * Calls HandleGetDevicesComplete, when done
- * @return None.
- */
- void RetrieveUsedDevices();
-
- /**
- * Searches given BT Device from device array.
- * @param aDeviceArray The device array to search in
- * @param aDevice The device to be searched.
- * @return Index of the device if found.
- */
- TInt LookupFromDevicesArray( const CBTDeviceArray* aDeviceArray, const CBTDevice* aDevice ) const;
-
- /**
- * Constructs a device popup list from resources.
- * @param aSoftkeysResourceId Resource id for softkeys of the list.
- * @param aTitleResourceId Resource id for the title of the list.
- * @return None.
- */
- void CreatePopupListL(TInt aSoftkeysResourceId, TInt aTitleResourceId );
-
- /**
- * Generates a format string and adds it to iDeviceItems array.
- * Updates friendly name of given device if one is found from registry.
- * @param aDevice The device to be added to list.
- * @param aSignalStrength The signal bar for RSSI
- * @return None.
- */
- void AddToDeviceListBoxL(CBTDevice* aDevice, const TInt aSignalStrength = 0 );
-
- /**
- * Creates and adds local bitmap to icon array.
- * @param aID Item ID of the masked bitmap to be created.
- * @param aFilename Filename to be used to construct the item.
- * @param aBitmapId The ID if bitmap
- * @param aMaskId The ID of bitmap's mask
- * @param aIconList The icon list for BT devices listbox.
- */
- void CreateAndAppendIconL( const TAknsItemID& aID,
- const TDesC& aFileName,
- const TInt aBitmapId,
- const TInt aMaskId,
- CAknIconArray* aIconList);
-
- /**
- * Adjust array, leave 5 lastet used devices in the array and remove the rest,
- * and then insert the paired device array to this array by used time order.
- * In the adjusted array, the first item will be the most lately used device.
- * @param aDevArray The bluetooth device arrary to be adjusted.
- * @return None.
- */
- void AdjustDeviceArrayL( CBTDeviceArray* aDevArray);
-
- /**
- * Filter for searching device
- * @param The desired device class user selects from the filter
- * @return User's input select/cancel
- */
- void SelectSearchCategoryL();
-
- /**
- * Add filtering items to search device filter
- * @param aResourceId
- * @return None
- */
- void AddItemToSearchFilterL ( TInt aResourceId );
-
- /**
- * Show query to ask if unblock device
- * @param aDevice Selected device
- * @return Keypress value
- */
- TInt QueryUnblockDeviceL(CBTDevice* aDevice);
-
- /**
- * The callback function for CPeriodic
- * to reset the inactivity time
- */
- static TInt PeriodicTimerCallBack(TAny* /*aAny*/);
-
- void GetColorIconL( TFileName& aFilename, TAknsItemID aItemID, TInt aPic, TInt aPicmask, CAknIconArray* aIconList );
-
- /**
- * Check if VoIP call is ongoing via WLAN connection.
- * @return true if it is; false otherwise.
- */
- TBool IsActiveVoIPOverWLAN();
-
- void DoDeviceFrontListSelection();
-
- /**
- * Displays previous inquiry results.
- */
- void DisplayDevicesFrontListL();
-
- /**
- * Unblock device after unblock query.
- * @param aIndex Parameter containing information about selected device.
- * @return Symbian OS error code.
- */
- TInt UnblockDevice(TInt aIndex);
-
- void DeviceSearchUiL();
-
- /**
- * the initiator of inquiry until the first device found, or no device found, or
- * other reasons causing inquiry stopped.
- * @param aReason the reason of the search completion
- */
- TSearchFlowState InitInquiryL(TInt& aReason);
-
- void HandleDeviceSelectionL(CBTDevice* aDev);
-
- /**
- * Adds found Bluetooth device into popup list.
- * @param aInquiryResultRecord TNameEntry and flag, which indicates if Eir device.
- */
- void DeviceAvailableL( const TNameRecord& aNameRecord, const TDesC& aDevName, TBool aIsNameComplete );
-
- /**
- * The inquiry has been completed.
- * @param aError Status code of the operation.
- * @return None.
- */
- void InquiryComplete( TInt aError );
-
- /**
- * Inform the caller of the properties of found BTdevice,
- * which passes the search filter. Its name will be retrived later
- */
- void HandleInquiryDeviceL();
-
- /**
- * Name lookup complete for the current device in the unnamed devices queue.
- */
- void HandleFoundNameL();
-
- /**
- * Name lookup complete for device aLastSeenIndex in the last seen array
- * (this is done for devices with partial names returned by EIR).
- */
- void HandleUpdatedNameL(TInt aLastSeenIndex);
-
- /**
- * Allow/Disallow dialer and app key presses.
- * @param aAllow ETrue to allow key press; EFalse to disallow.
- */
- void AllowDialerAndAppKeyPress( TBool aAllow );
-
- /**
- * Update the inquiry list box with a new (complete) device name
- * (this is done for devices with partial names returned by EIR).
- */
- void DeviceNameUpdatedL(const TNameRecord& aNameRecord, TInt aLastSeenIndex);
- void DeviceUpdatedL(TInt aSignalStrength, TInt aLastSeenIndex);
-
- /**
- * React to page timeout on a device that's already in the inquiry list box
- * (which can happen for devices with partial names returned by EIR).
- */
- void PageTimeoutOnDeviceWithPartialNameL(TInt aLastSeenIndex);
-
- void FormatListBoxEntryL(CBTDevice& aDevice, const TInt aSignalStrength, TPtr aFormatString);
-
- TBool HaveDevsWithPartialName(TInt& aFirstFoundIndex);
-
- private: // Data
- CBTNotifUIUtil* iUiUtil;
- CBTDeviceArray* iLastSeenDevicesArray; // Last seen devices array from BTInqNotifier
- RArray<TBool> iLastSeenDevicesNameComplete; // Is the name in corresponding cell of iLastSeenDevicesArray complete ?
- CBTDeviceArray* iLastUsedDevicesArray; // Used devices from BT registry
- CBTDeviceArray* iPairedDevicesArray; // Paired devices from Bluetooth registry
- CBTDeviceArray* iAdjustedUsedDeviceArray; // 5 Lately used devices + All the Paired devices
- CBTEngDevMan* iDevMan; //Async deviceHandler
-
- CDesCArray* iDefaultDeviceNamesArray; // Default device names array
- CEikonEnv& iEikonEnvRef; // Reference to eikonenv
-
- CAknPopupList* iDevicePopupList; // Popup list for devices
- CDesCArrayFlat* iDeviceListRows; // Array for device list format string rows
- CAknSingleGraphicPopupMenuStyleListBox* iDeviceListBox; // ListBox for bluetooth devices
- CAknPopupList* iSearchFilterPopupList;
-
- CBTNotifActive* iScanner;
-
- TBool iDevicesFound; // Flag if any devices has been found
- TBool iInquiryComplete;
- TBool iBroughtForwards; // Flag for BringForwards
- TInt iInquiryStatus; // Error code from inquiry result
-
- TBTRegistryQueryState iBTRegistryQueryState; // which registry query (if any) is in progress.
- TBTDeviceClass iDesiredDeviceClass; // Device Class user selects from search filter
- CPeriodic* iPeriodicTimer; // the timer for reseting the user inactivity time
- TBool iSystemCancel; // Used for a trick to avoid final device list is still on show
- // while taking out mmc during BT device discovery
- TBTDeviceResponseParams iDevParams;
- TInt iHighLightedItemIndex;
-
- RSocketServ iSocketServer; // Socket server object
- RHostResolver iHostResolver; // Host resolver object
- TInquirySockAddr iInquirySockAddr; // Socket address record
- TNameEntry iEntry; // Inquiry results record
- TBool iPageForName; // Flag for inquiry name
- RArray<TNameRecord> iDevsWithoutName; // Devices without dev name
- TInt iCurrentlyResolvingUnnamedDeviceIndex; // Current btdevice to inquiry its name
- MBTNDeviceSearchObserver* iDevSearchObserver;
-
- TBool iExcludePairedDevices;
-
-
- };
-
-#endif
-
-// End of File