localconnectivityservice/headset/inc/headset.h
branchRCL_3
changeset 39 4096754ee773
parent 38 3dcb815346df
child 40 52a167391590
--- a/localconnectivityservice/headset/inc/headset.h	Thu Aug 19 10:46:39 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,523 +0,0 @@
-/*
-* Copyright (c) 2004-2010 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:  Hid headset driver 
- *
-*/
-
-
-#ifndef C_HIDHEADSETDRIVER_H
-#define C_HIDHEADSETDRIVER_H
-
-#include <e32std.h>
-#include <asclisession.h>
-#include <mpxplaybackutility.h>
-#include <mpxplaybackobserver.h>
-#include <mpxmessage.h>
-#include <hidinterfaces.h>
-#include <hidtranslate.h>
-#include "keypresstimer.h"
-
-class CField;
-class CHidHeadsetDriver;
-class CTelephony;
-
-/**
- *  Scan status
- */
-enum TScanStatus
-    {
-    EScanNotPressed, EScanPressed, EScanLongPress
-    };
-
-/**
- * HID headset driver class
- *
- * HidDriver interface for handlign headset related 
- * functionality.
- *
- */
-
-class CHidHeadsetDriver : public CHidDriver,
-        public MTimerNotifier,
-        public MMPXPlaybackObserver
-    {
-
-private:
-    /**
-     *  Initialisation states 
-     */
-    enum THeadsetDriverState
-        {
-        EUninitialised, // Driver has not been initialised 
-        EInitialised, // Driver is initialised 
-        EDisabled
-        // The driver will not respond to interrupt data 
-        };
-
-    /**
-     * Hook handling
-     */
-    enum THookHandling
-        {
-        EOnHook, EOffHook, ENoHook
-        };
-public:
-
-    /**
-     * Two-phased constructor.
-     * @param aHid The generic HID layer that requested the driver     
-     */
-    static CHidHeadsetDriver* NewL( MDriverAccess* aHid );
-
-    /**
-     * Two-phased constructor.
-     * @param aHid The generic HID layer that requested the driver     
-     */
-    static CHidHeadsetDriver* NewLC( MDriverAccess* aHid );
-
-    /**
-     * Destructor
-     */
-    virtual ~CHidHeadsetDriver();
-
-private:
-
-    // from base class CHidDriver
-    /**     
-     * From class CHidDriver
-     * Called by the Generic HID layer to see if the driver can is able to
-     * use reports from a newly-connected device. Supported hid fields van 
-     * be later request with SupportedFieldCount function
-     *  
-     * @param aReportRoot HID report descriptor
-     * @return KErrNone The driver will handle reports from the report 
-     *         descriptor and KErrHidUnrecognised The driver cannot 
-     *         handle reports from the device
-     */
-    TInt CanHandleReportL( CReportRoot* aReportRoot );
-
-    /**     
-     * From class CHidDriver
-     * Called by the Generic HID layer when a device has been removed, prior
-     * to the driver being removed.  This allows the driver to notify any 
-     * applications of disconnection, if required
-     *     
-     * @param aReason The reason for device disconnection     
-     */
-    void Disconnected( TInt aReason );
-
-    /**     
-     * From class CHidDriver
-     * Called by the Generic HID layer when data has been received from the 
-     * device handled by this driver. 
-     *     
-     * @param aChannel The channel on which the data was received 
-     *                                   (as defined by the transport layer)
-     * @param aPayload A pointer to the data buffer     
-     */
-    TInt DataIn( CHidTransport::THidChannelType aChannel,
-            const TDesC8& aPayload );
-
-    /**     
-     * From class CHidDriver
-     * Called by the transport layers to inform the generic HID of the 
-     * success of the last Set... command. 
-     *     
-     * @param aCmdAck Status of the last Set... command     
-     */
-    void CommandResult( TInt aCmdAck );
-
-    /**     
-     * From class CHidDriver
-     * Called after a driver is sucessfully created by the Generic HID, when 
-     * a device is connected 
-     *     
-     * @param aConnectionId An number used to identify the device in
-     *                      subsequent calls from the driver to the 
-     *                      generic HI     
-     */
-    void InitialiseL( TInt aConnectionId );
-
-    /**     
-     * From class CHidDriver
-     * Resets the internal state of the driver (any pressed keys are released) 
-     * and enables the driver  
-     *     
-     * @param aConnectionId An number used to identify the device in
-     *                      subsequent calls from the driver to the 
-     *                      generic HI     
-     */
-    void StartL( TInt aConnectionId );
-
-    /**     
-     * From class CHidDriver
-     * Cancels all pressed keys and disables the driver (so it will not
-     * process interrupt data)  
-     *
-     */
-    void Stop();
-
-    /**
-     * From class CHidDriver
-     * Return count of supported fields
-     *          
-     * @return Number of supported fields
-     */
-    TInt SupportedFieldCount();
-
-    /**
-     * From class CHidDriver
-     * Set input handling registy 
-     *          
-     * @param aHandlingReg  a Input handling registry     
-     */
-    void SetInputHandlingReg( CHidInputDataHandlingReg* aHandlingReg );
-
-    // from base class MTimerNotifier    
-    /**     
-     * From class MTimerNotifier
-     * The function to be called when a timeout occurs.
-     *     
-     * @param aTimerType a Type of timer
-     */
-    void TimerExpired( TTimerType aTimerType );
-
-    /**
-     *  From class MMPXPlaybackObserver
-     *  Handle playback message.    
-     *   
-     *  @param aMsg playback message, ownership not transferred. 
-     *         Please check aMsg is not NULL before using it. If aErr is not 
-     *         KErrNone, plugin might still call back with more info in the 
-     *         aMsg.
-     *  @param aErr system error code.
-     */
-    void HandlePlaybackMessage( CMPXMessage* aMsg, TInt /*aErr*/);
-
-private:
-    /**
-     * Constructor
-     * @param aHid The generic HID layer that requested the driver 
-     */
-    CHidHeadsetDriver( MDriverAccess* aHid );
-    /**
-     * ConstructL
-     */
-    void ConstructL();
-
-private:
-
-    /**
-     * Called from within DataIn to handle interrupt and control channel data
-     *
-     * @param aPayload a Payload data
-     * @return error if data can't be handled
-     */
-    TInt InterruptData( const TDesC8& aPayload );
-
-    /**
-     * Handles the report
-     *
-     * @param aReport HID report descriptor
-     * @param aField HID field
-     * @return KErrNotSupported if report can't be handled
-     */
-    TInt HandleReport( const TDesC8& aReport, const CField* aField );
-
-    /**
-     * Handles the report
-     *
-     * @param aReportTranslator Report Translator
-     */
-    void ReleasePressedKeys( TReportTranslator& aReportTranslator );
-
-    /**
-     * Handle hook key pres
-     *     
-     * @param aStatus Hook key status
-     */
-    void HookKeyPres( TBool aStatus );
-
-    /**
-     * Release hook key 
-     *
-     */
-    void ReleaseHookKey();
-
-    /**
-     * Get Hook Status
-     *     
-     * @return hook handling status. 
-     */
-    THookHandling HookStatus();
-
-    /**
-     * Get alarm status
-     *     
-     * @return ETrue if ui is showing alarm, EFalse if not. 
-     */
-    TBool AlarmStatus();
-
-    /**
-     * MusicPlayingStatus
-     *    
-     * @return ETrue if plyaer is playing, EFalse if not. 
-     */
-    TBool MusicPlayingStatus();
-
-    /**
-     * HandleNoneHookPress
-     * Handle hook press when there are phone call is in idle state
-     *      
-     */
-    void HandleNoneHookPressL();
-
-    /**
-     * ReleasePressedVolumeKeys
-     * Release volume keys if they are pressed
-     *     
-     * @param aReportTranslator HID report translator
-     */
-    void ReleasePressedVolumeKeys( TReportTranslator& aReportTranslator );
-
-    /**
-     * ReleasePressedScanKeys
-     * Release scan keys if they are pressed
-     *     
-     * @param aReportTranslator HID report report translator     
-     */
-    void ReleasePressedScanKeys( TReportTranslator& aReportTranslator );
-    /**
-     * HandleAlarmHookReleaseL
-     * Handle hook release when phone is alarming
-     *     
-     */
-    void HandleAlarmHookReleaseL();
-
-    /**
-     * HandleIdleHookReleaseL
-     * Handle hook release when phone is not alarming 
-     * and call is in idle state
-     *  
-     */
-    void HandleIdleHookReleaseL();
-
-    /**
-     * Handle doubleclick timer expiration
-     *      
-     */
-    void ExpiredDoubleClickTimer();
-
-    /**
-     * Handle long press timer expiration
-     *      
-     */
-    void ExpiredLongClickTimer();
-
-    /**
-     * Handle scan next pressed
-     *      
-     */
-    void HandleScanNextPressL();
-
-    /**
-     * Handle scan prev pressed
-     *      
-     */
-    void HandleScanPrevPressL();
-
-    /**
-     * Handle scan next release  
-     *   
-     * @param aKeyCode a Key id
-     * @param aValue  a Key value      
-     */
-    void HandleScanNextRelease( TUint& aKeyCode, TInt& aValue );
-
-    /**
-     * Handle scan previous release  
-     *    
-     * @param aKeyCode a Key id
-     * @param aValue a Key value    
-     */
-    void HandleScanPreviousRelease( TUint& aKeyCode, TInt& aValue );
-
-    /**
-     * Handle telephony usage page
-     *   
-     * @param aReport a Report translator
-     * @return KErrNone if report can be handled.  
-     */
-    TInt HandleTelephonyUsage( TReportTranslator& aReport );
-
-    /**
-     * Handle controller usage page
-     *    
-     * @param aReport a Report translator
-     * @return KErrNone if report can be handled.  
-     */
-    TInt HandleControlUsage( TReportTranslator& aReport );
-
-    /**
-     * Handle volume usage
-     *    
-     * @param aReport a Report translator
-     * @return KErrNone if report can be handled.  
-     */
-    TInt HandleVolumeUsage( TReportTranslator& aReport );
-
-private:
-
-    /**
-     * The Generic HID layer
-     * Not own.
-     */
-    MDriverAccess *iGenericHid;
-
-    /**
-     * Field list array
-     * Own. 
-     */
-    RPointerArray<CField> iFieldList;
-
-    /**
-     * Driver state
-     */
-    THeadsetDriverState iDriverState;
-
-    /**
-     * Connection id
-     */
-    TInt iConnectionId;
-
-    /**
-     * Application menu id 
-     */
-    TInt iAppMenuId;
-
-    /**
-     * On hook status 
-     */
-    TBool iOnHookPressed;
-
-    /**
-     * Off hook 
-     */
-    TBool iOffHookPressed;
-
-    /**
-     * No active calls
-     */
-    TBool iNoneHookPressed;
-
-    /**
-     * Telephony service
-     * Own.
-     */
-    CTelephony* iTelephony;
-
-    /**
-     * Double click timer
-     * Own.
-     */
-    CKeyPressTimer* iDoubleClicktimer;
-
-    /**
-     * Long click timer
-     * Own.
-     */
-    CKeyPressTimer* iLongClicktimer;
-
-    /**
-     * Long click timer     
-     */
-    TBool iLongPress;
-
-    /**
-     * Alarm server session     
-     */
-    RASCliSession iAlarmServerSession;
-
-    /**
-     * Incoming call status
-     */
-     TBool iIncomingCallStatus;
-
-    /**
-     * Alarm statusd     
-     */
-    TBool iAlarmStatus;
-
-    /**
-     * Music player utility
-     * Own.     
-     */
-    MMPXPlaybackUtility* iMusicPlayer;
-
-    /**
-     * Playing status     
-     */
-    TBool iPlayingStatus;
-
-    /**
-     * Double next Click  status
-     */
-    TBool iDoubleNextClick;
-
-    /**
-     * Count of supported fields
-     */
-    TInt iSupportedFieldCount;
-
-    /**
-     * Volume up key pressed down
-     */
-    TBool iVolumeUpPressed;
-
-    /**
-     * Volume down key pressed down
-     */
-    TBool iVolumeDownPressed;
-
-    /**
-     * Forward press status
-     */
-    TScanStatus iForwardStatus;
-
-    /**
-     * Backward press status
-     */
-    TScanStatus iBackwardStatus;
-
-    /**
-     * Scan next timer
-     * Own.
-     */
-    CKeyPressTimer* iScanNextTimer;
-
-    /**
-     * Scan previous timer
-     * Own.
-     */
-    CKeyPressTimer* iScanPreviousTimer;
-
-    /**
-     * Input handling reg
-     * Not own.
-     */
-    CHidInputDataHandlingReg* iInputHandlingReg;
-
-    };
-
-#endif