devicesrv_plat/accessory_policy_definitions_api/inc/AccPolCommonNameValuePairs.h
changeset 0 4e1aa6a622a0
child 21 ccb4f6b3db21
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devicesrv_plat/accessory_policy_definitions_api/inc/AccPolCommonNameValuePairs.h	Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,499 @@
+/*
+* Copyright (c) 2002-2009 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:  This header provides the common Name/Value defintions of Name/Value 
+*                   pairs.
+*
+*/
+
+
+
+#ifndef ACCPOLCOMMONNAMEVALUEPAIRS_H
+#define ACCPOLCOMMONNAMEVALUEPAIRS_H
+
+//  INCLUDES
+#include <e32std.h>
+
+// CONSTANTS
+
+// Maximum length for name definitions - don't exceed this or a panic will occur
+const TInt KSBMaxNameLength ( 45 );
+
+// Maximum length for value definitions - don't exceed this or a panic will occur
+const TInt KSBMaxValueLength ( 10 );
+
+// Accessory capabilities can be described as name/value pairs. To use accessorys
+// capabilities from generic identification, the user needs constants. These 
+// constants are referenced with name/value pairs.
+// Name constants are defined to a certain numerical space. 
+// In this numerical space each of these constats is presented with a term called
+// "name const literal". E.g. For name KAccAcousticEchoControl name const literal is
+// "1#1#1".
+// Accessory capabilities can be described the following values: name, value type,
+// dynamic type, I/O type, description and bitmask.
+// Name:           Acoustic Echo Control
+// --------------> Name of the capability 
+// Value Type:     TBool
+// --------------> Type of the value
+// Dynamic Type:   Dynamic/Static
+// --------------> Indicates if value can change while accessory is connected.
+//                 If value is dynamic type the client should registrate for 
+//                 listening indications for value changes.
+// I/O Type:       From accessory to terminal, input.
+// --------------> I/O type indicates the direction how the state update is done. 
+//                 E.g.output indicated that user can use setValueL method. If
+//                 accessory updates the value I/O type is input and if it done
+//                 by the terminal I/O type is output.
+// Description:    Accessory supports acoustic echo control. If value is true terminal
+//                 must disable its own echo control. To indicate if accessory has 
+//                 internal acoustic echo control.
+// --------------> Description of the capability.
+// Bitmask:        00000000000000000000000000000001
+// --------------> The bitmask for the capability.
+//
+// Format of capability:                                                 
+// =====================                                                 
+//                                                                       
+// 0b 000001 00000 00010                                                 
+//    ------ ----- -----                                                 
+//    |      |     |                                                     
+//    |      |     |_5 bits for capability. Tells which bit is one (*).  
+//    |      |_5 bits for namespace,                                     
+//    |_6 bits for capability group. Tells which bit is one (*).         
+//                                                                       
+// (*):                                                                  
+// 0b00 -> bit number 0 is one -> value is 0b0001=1                      
+// 0b01 -> bit number 1 is one -> value is 0b0010=2                      
+// 0b10 -> bit number 2 is one -> value is 0b0100=4                      
+// 0b11 -> bit number 3 is one -> value is 0b1000=8                      
+//                                                                       
+
+
+// COMMON AUDIO SB NAME-VALUE PAIRS:
+
+// Name:          Acoustic Echo Control
+// Value Type:    TBool
+// Dynamic Type:  Dynamic
+// I/O Type:      From accessory to terminal, input.
+// Description:   Accessory supports acoustic echo control. If value is true
+//                terminal must disable its own echo control. To indicate if
+//                accessory has internal acoustic echo control.
+// Bitmask:       000000 00000 00000
+const TUint32 KAccAcousticEchoControl = 0x0000;
+
+
+// Name:          Noise reduction.
+// Value:         TBool
+// Dynamic Type:  Dynamic
+// I/O:           From accessory to terminal, input.
+// Description:   To indicate if accessory has internal noise reduction. 
+//                If value is true terminal must disable its own noise reduction.
+// Bitmask:       000000 00000 00001
+const TUint32 KAccNoiseReduction = 0x0001;
+
+// Name:          Stereo audio output
+// Value:         N/A
+// Dynamic Type:  Static
+// I/O:           N/A
+// Description:   To indicate if accessory has stereo audio output.
+// Bitmask:       000000 00000 00010 
+const TUint32 KAccStereoAudio = 0x0002;
+
+// Name:          Mono audio output
+// Value:         N/A
+// Dynamic Type:  Static
+// I/O:           N/A
+// Description:   To indicate if accessory has mono audio output.
+// Bitmask:       000000 00000 00011
+const TUint32 KAccMonoAudio = 0x0003;
+
+// Name:          Audio in Connector 
+// Value:         TBool.
+// Dynamic Type:  Dynamic
+// I/O:           From accessory to terminal, input.
+// Description:   If capability exists it indicates that accessory has connector
+//                enabling audio input from external audio device. If the value
+//                is ETrue it indicates that external audio device is connected.
+// Bitmask:       000000 00000 00100
+const TUint32 KAccAudioInConnector = 0x0004;
+
+// Name:          External Audio in Activation
+// Value:         TBool
+// Dynamic Type:  Dynamic
+// I/O:           From terminal to accessory, output.
+// Description:   If capability exists it indicates that accessory supports
+//                activating(ETrue)/deactivating(EFalse) the external audio input.
+//                External audio in activation capability requiers that accessory
+//                has audio in connector capability.
+// Bitmask:       000000 00000 00101
+const TUint32 KAccExternalAudioInActivation = 0x0005;
+
+// Name:          External Audio out Connector
+// Value:         TBool
+// I/O:           From accessory to terminal, input
+// Dynamic Type:  Dynamic
+// Description:   Audio out connector capability indicates that accessory has a
+//                connector enabling audio output to external audio device. Value
+//                indicates if the external audio device is removed(EFalse) or
+//                connected(ETrue).
+// Bitmask:       000000 00000 00110
+const TUint32 KAccAudioOutConnector = 0x0006;
+
+// Name:          Integrated Audio Output
+// Value:         N/A
+// I/O:           N/A
+// Dynamic Type:  N/A
+// Description:   Indicates that accessory has integrated audio output. 
+//                E.g. integrated headset.
+// Bitmask:       000000 00000 00111
+const TUint32 KAccIntegratedAudioOutput = 0x0007;
+
+// Name:          Integrated Audio Input
+// Value:         N/A
+// I/O:           N/A
+// Dynamic Type:  N/A
+// Description:   Indicates that accessory has integrated audio input. 
+//                E.g. To check that accessory has integrated microphone.
+// Bitmask:       000000 00000 01000
+const TUint32 KAccIntegratedAudioInput = 0x0008;
+
+// 0x0009 reserved for future use
+
+// Name:          No DRM output
+// Value:         N/A
+// Dynamic Type:  Static
+// I/O:           From accessory to terminal, input.
+// Description:   indicates that accessory is NOT allowed to handle DRM protected audio output.
+// Bitmask:       000000 00000 01010
+const TUint32 KAccNoDRMOutput = 0x000A;
+
+// Name:          Audio Output Type
+// Value:         TAccAudioOutPutType
+// Dynamic Type:  Static
+// I/O:           N/A
+// Description:   Audio Output Type definition corresponds to audio output type
+//                definition in MMF. It is used to decide how audio is routed.
+// Bitmask:       000000 00000 01011
+const TUint32 KAccAudioOutputType = 0x000B;
+
+enum TAccAudioOutPutType
+    {
+    EAccAudioOutPutTypePrivate = 0,
+    EAccAudioOutPutTypePublic
+    };
+
+// Name:          Set Volume Level
+// Value:         KAccSetVolumeLevel bitmask constants are declared in AccPolCommonNameValuePairs.h.
+// Dynamic Type:  Static
+// I/O:           From accessory to terminal, input.
+// Description:   Indicates that accessory supports an interface for setting
+//                the volume level from terminal to accessory.
+//                If a bit is on then volume can be adjusted from the terminal.
+//                If a bit is off then volume can not be adjusted from the terminal.
+//
+//                This capability can also be used to enable/disable proprietary specific
+//                volume control. In such case this capability can only be used to transfer
+//                proprietary information.
+//
+//                Following example shows how to set AVRCP remote volume control feature bit on.
+//                Existing values must be read first to be able to set only AVRCP specific value.
+//
+//                @code
+//                RAccessoryControl accessoryControl;
+//                accessoryControl.CreateSubSession( iAccessoryServer );
+//                                
+//                CAccPolSubblockNameArray* nameArray = CAccPolSubblockNameArray::NewL();	
+//    	          CleanupStack::PushL( nameArray );	  
+//                accessoryControl.GetSubblockNameArrayL( iGenericID, *nameArray );
+//                
+//                TAccPolNameRecord nameRecord;
+//    		      nameRecord.SetNameL( KAccSetVolumeLevel );		       		   
+//    			  TAccValueTypeTInt value;
+//    		   	            
+//                if( nameArray->HasName( KAccSetVolumeLevel ) )
+//                    {
+//                    accessoryControl.GetValueL( iGenericID, nameRecord, value );                                               
+//                    value.iValue = value.iValue | KAccSetVolumeLevelAVRCP;                
+//                    accessoryControl.AccessoryValueChangedNotifyL( iGenericID, nameRecord, value );
+//                    }
+//                                    
+//                CleanupStack::PopAndDestroy( nameArray );
+//                accessoryControl.CloseSubSession();    
+//                @endcode
+// Bitmask: 000000 00000 01100
+const TUint32 KAccSetVolumeLevel = 0x000C;
+const TInt    KAccSetVolumeLevelHSP   = 0x1; //HSP remote volume control feature is supported.
+const TInt    KAccSetVolumeLevelHFP   = 0x2; //HFP remote volume control feature is supported.
+const TInt    KAccSetVolumeLevelAVRCP = 0x4; //AVRCP remote volume control feature is supported.
+
+// Name:          Mute All Audio
+// Value:         TBool
+// Dynamic Type:  Dynamic
+// I/O:           From accessory to terminal, input.
+// Description:   Mute capability indicates that accessory supports muting all audio
+//                outputs (e.g. any speakers). The value indicates that any
+//                accessory audio outputs need to be muted (ETrue)/unmuted (EFalse).
+// Bitmask:       000000 00000 01101
+const TUint32 KAccMuteAllAudio = 0x000D;
+
+// Name:          Audio Out
+// Value:         TAccAudioOut
+// Dynamic Type:  Static
+// I/O:           N/A
+// Description:   The audio out capability indicates that the accessory supports 
+//                audio out signal.
+// Bitmask:       000000 00000 01110
+const TUint32 KAccAudioOut = 0x000E;
+
+enum TAccAudioOut
+    {
+    TAccAudioOutLineout = 0 //Line Out
+    };
+
+// Name:          Audio Latency
+// Value:         TInt ( value in milliseconds )
+// Dynamic Type:  Dynamic
+// I/O:           From audio source to terminal, input.
+// Description:   Latency capability indicates that the audio source 
+//                provides latency information.
+// Bitmask:       000000 00000 01111
+const TUint32 KAccAudioLatency = 0x000F;
+
+// Name:          Audio Streams Format
+// Value Type:    Object, inherited CAccPolObjectBase.
+// Dynamic Type:  Dynamic
+// I/O Type:      From accessory to terminal / From terminal to accessory. 
+// Description:   Accessory supports to Get/Set audio stream(s) format related parameters
+//                for input and output streams ( e.g. mic and speaker ).
+// Bitmask:       000000 00000 10000
+const TUint32 KAccAudioStreamsFormat = 0x0010;
+
+// Name:          Audio Units
+// Value Type:    Object, inherited CAccPolObjectBase.
+// Dynamic Type:  static
+// I/O Type:      From accessory to terminal. 
+// Description:   Indicates an audio units which are supported by the accessory. 
+// Bitmask:       000000 00000 10001
+const TUint32 KAccAudioUnits = 0x0011;
+
+// Name:          Get/Set Audio Control
+// Value Type:    Object, inherited CAccPolObjectBase.
+//                
+// Dynamic Type:  static
+// I/O Type:      From terminal to accessory.
+// Description:   Gets value(s) of specific Audio Control object(s).
+//                Sets value(s) for specific Audio Control object(s).
+// Bitmask:       000000 00000 10011
+const TUint32 KAccAudioControl = 0x0012;
+
+// CAR KIT SB NAME-VALUE PAIRS:
+
+
+// Name:          Audio To Privacy Handset
+// Value:         TBool
+// Dynamic Type:  Dynamic
+// I/O:           From terminal to accessory, output.
+// Description:   Audio To Privacy Handset capability indicates that car kit supports
+//                an interface for routing the audio from default audio output to
+//                privacy handset. The name is also used to route audio back to the
+//                default audio output. Control handset audio in Car Handfree
+//                peripherals. Audio is routed to handset when call is active and 
+//                handset is removed from it's holder. audio needs to be 
+//                activated (ETrue) / deactivated (EFalse).
+// Bitmask:       000001 00000 00000 
+const TUint32 KAccAudioToHandset = 0x0400;
+
+// Name:          Privacy Handset
+// Value:         TBool
+// Dynamic Type:  Dynamic
+// I/O:           From accessory to terminal, input.
+// Description:   Indicate if handset is in the holder(ETrue) or not(EFalse).
+// Bitmask:       000001 00000 00001
+const TUint32 KAccPrivacyHandset = 0x0401;
+
+// Name:          Car Radio Mute
+// Value:         TBool
+// I/O:           From terminal to accessory, output.
+// Description:   Car Radio Mute, indicates that accessory supports an interface for
+//                muting the peripheral car radio. The value (dynamic) indicates that
+//                Car Radio needs to be muted(ETrue)/ unmuted(EFalse).
+// Bitmask:       1 00000 00010
+const TUint32 KAccCarRadioMute = 0x0402;
+
+
+// CHARGING SB NAME-VALUE PAIRS:
+
+
+// Name:          External Power Supply
+// Value:         TBool
+// I/O:           From accessory to terminal, input.
+// Description:   When connected, the power supply of the enhancement is active and 
+//                enhancement can work properly. When disconnected, the enhancement 
+//                doesn’t have power supply and the enhancement is detected, 
+//                but not indicated to the user and not activated, 
+//                e.g. required audios are not routed to enhancement
+//                The value (dynamic) indicates that external power supply is
+//                connected (ETrue) / disconnected (EFalse).
+// Bitmask:       000010 00000 00000
+const TUint32 KAccExtPowerSupply = 0x0800;
+
+
+// BLUETOOTH SB NAME-VALUE PAIRS:
+
+
+// Name:          Headset Profile (HS), Bluetooth device supports HFP.
+// Value:         N/A
+// Bitmask:       000011 00000 00000
+const TUint32 KAccBTHSP = 0x0C00;
+
+// Name:          Object Push Profile (OPP), the device supports Object Push Profile.
+// Value:         N/A
+// Bitmask:       000011 00000 00001
+const TUint32 KAccBTOPP = 0x0C01;
+
+// Name:          Generic Object Exchange Profile (GOEP), The device supports Generic Object
+//                Exchange Profile.
+// Value:         N/A
+// Bitmask:       000011 00000 00010
+const TUint32 KAccBTGOEP = 0x0C02;
+
+// Name:          File Transfer Profile (FTP), the name indicates that device supports File
+//                Transfer Profile.
+// Value:         N/A
+// Bitmask:       000011 00000 00011
+const TUint32 KAccBTFTP = 0x0C03;
+
+// Name:          Generic Access Profile (GAP), the name indicates that device supports 
+//                Generic Access Profile.
+// Value:         N/A 
+// Bitmask:       000011 00000 00100
+const TUint32 KAccBTGAP = 0x0C04;
+
+// Name:          Serial Port Profile (SPP), the name indicates that device supports Serial
+//                Port Profile.
+// Value:         N/A 
+// Bitmask:       000011 00000 00101
+const TUint32 KAccBTSPP = 0x0C05;
+
+// Name:          Handsfree Profile (HFP), Bluetooth device supports HFP.
+// Value:         N/A
+// Bitmask:       00011 00000 00110
+const TUint32 KAccBTHFP = 0x0C06;
+
+// Name:          Audio Video Remote Control Profile (AVRCP), the device supports AVRCP.
+// Value:         N/A
+// Bitmask:       000011 00000 00111
+const TUint32 KAccBTAVRCP = 0x0C07;
+
+// Name:          Generic Audio Video Distribution Profile (GAVDP), the device supports AVRCP.
+// Value:         N/A 
+// Bitmask:       000011 00000 01000
+const TUint32 KAccBTGAVDP = 0x0C08;
+
+// Name:          Advanced Audio Distribution Profile (A2DP), the name indicates that device 
+//                supports Advanced Audio Distribution Profile.
+// Value:         N/A
+// Bitmask:       000011 00000 01001
+const TUint32 KAccBTA2DP = 0x0C09;
+
+// Name:          Human Interface Device Profile (HID), the device supports Human Interface 
+//                Device Profile.
+// Value:         N/A
+// Bitmask:       000011 00000 01010
+const TUint32 KAccHID = 0x0C0A;
+
+// Name:          Personal Area Networking Profile (PAN), the device supports Personal Area
+//                Networking Profile..
+// Value:         N/A
+// Bitmask:       000011 00000 01011
+const TUint32 KAccBTPAN = 0x0C0B;
+
+// Name:          SIM Access Profile (SAP), the device supports SIM Access Profile.
+// Value:         N/A
+// Bitmask:       000011 00000 01100
+const TUint32 KAccBTSAP = 0x0C0C;
+
+// Name:          Basic Imaging Profile (BIP), the device supports this Profile.
+// Value:         N/A
+// Bitmask:       000011 00000 01101
+const TUint32 KAccBTBIP = 0x0C0D;
+
+// Name:          Basic Printing Profile (BPP), the device supports this Profile.
+// Value:         N/A
+// Bitmask:       000011 00000 01110
+const TUint32 KAccBTBPP = 0x0C0E;
+
+// Name:          Voice Recognition
+// Value:         N/A
+// Dynamic Type:  Static
+// I/O:           N/A
+// Description:   Indicates that the bluetooth HFP profile supports the voice recognition.
+// Bitmask:       000011 00000 01111
+const TUint32 KAccBTVoiceRecognition = 0x0C0F;
+
+// VIDEO OUT SB NAME-VALUE PAIRS:
+
+// Name:          Video out
+// Value:         TAccVideoOut
+// Dynamic Type:  Static
+// I/O:           N/A.
+// Description:   The Video out capability indicates that the accessory supports video 
+//                out signal
+// Bitmask:       000100 00000 00000
+const TUint32 KAccVideoOut = 0x1000;
+
+enum TAccVideoOut
+    {
+    EAccVideoOutCVideo = 0, //C-Video
+    EAccVideoOutEHDMI       //HDMI
+    };
+
+// HDMI SB NAME-VALUE PAIRS:
+
+// Name:          Get HDMI attributes.
+// Value Type:    Object, inherited CAccPolObjectBase.
+// Dynamic Type:  dynamic
+// I/O Type:      From accessory to terminal.
+// Description:   Get audio and video attributes of the currently connected
+//                HDMI device.
+// Bitmask:       000100 00000 00001
+const TUint32 KAccVideoHdmiAttributes = 0x1001;
+
+// Name:          Set HDCP support.
+// Value Type:    TBool
+// Dynamic Type:  dynamic
+// I/O Type:      N/A
+// Description:   Set HDCP support
+// Bitmask:       000100 00000 00010
+const TUint32 KAccVideoHdcpSupport = 0x1002;
+
+// Name:          Get HDCP support status.
+// Value Type:    TBool
+// Dynamic Type:  dynamic
+// I/O Type:      N/A
+// Description:   Get HDCP support status. When the status changes
+//                a notification is received.
+// Bitmask:       000100 00000 00011
+const TUint32 KAccVideoHdcpSupportStatus = 0x1003;
+
+// Name:          Get active HDMI video format.
+// Value Type:    Object, inherited CAccPolObjectBase.
+// Dynamic Type:  static
+// I/O Type:      N/A
+// Description:   Get active HDMI video format information.
+// Bitmask:       000100 00000 00100
+const TUint32 KAccVideoFormat = 0x1004;
+
+#endif      // ACCPOLCOMMONNAMEVALUEPAIRS_H
+
+// End of File