diff -r 000000000000 -r 4e1aa6a622a0 devicesrv_plat/accessory_policy_definitions_api/inc/AccPolCommonNameValuePairs.h --- /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 + +// 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