diff -r 159fc2f68139 -r d59c248c9d36 ImagePrint/ImagePrintEngine/DeviceProtocols/btprotocol/inc/btprotocolconsts.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ImagePrint/ImagePrintEngine/DeviceProtocols/btprotocol/inc/btprotocolconsts.h Wed Sep 01 12:30:38 2010 +0100 @@ -0,0 +1,186 @@ +/* +* Copyright (c) 2004-2007 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: +* +*/ + + + +#ifndef BTPROTOCOLCONSTS_H +#define BTPROTOCOLCONSTS_H + +#include + +//////////////////////////////////////////////////////////////////////////////////////// +// +// Obex header HI values from http://www.it.lut.fi/~doc/bluetooth/OBEX12.pdf +// +//////////////////////////////////////////////////////////////////////////////////////// +const TUint KBtObexHeaderHiCount = 0xC0; //Number of objects (used by Connect) +const TUint KBtObexHeaderHiName = 0x01; //name of the object (often a file name) +const TUint KBtObexHeaderHiType = 0x42; //type of object - e.g. text, html, binary, manufacturer specific +const TUint KBtObexHeaderHiLength = 0xC3; //the length of the object in bytes +const TUint KBtObexHeaderHiTimeIso = 0x44; //date/time stamp – ISO 8601 version - preferred +const TUint KBtObexHeaderHiTime4B = 0xC4; //date/time stamp – 4 byte version (for compatibility only) +const TUint KBtObexHeaderHiDescription = 0x05; //text description of the object +const TUint KBtObexHeaderHiTarget = 0x46; //name of service that operation is targeted to +const TUint KBtObexHeaderHiHTTP = 0x47; //an HTTP 1.x header +const TUint KBtObexHeaderHiBody = 0x48; //a chunk of the object body. +const TUint KBtObexHeaderHiEnd = 0x49; //of Body +const TUint KBtObexHeaderHiWho = 0x4A; //identifies the OBEX application, used to tell if talking to a peer +const TUint KBtObexHeaderHiConnectionId = 0xCB; //an identifier used for OBEX connection multiplexing +const TUint KBtObexHeaderHiAppParameters = 0x4C; //extended application request & response information +const TUint KBtObexHeaderHiAuthChallenge = 0x4D; //authentication digest-challenge +const TUint KBtObexHeaderHiAuthResponse = 0x4E; //authentication digest-response +const TUint KBtObexHeaderHiObjectClass = 0x4F; //OBEX Object class of object +// Reserved = 0x10 to 0x2F //this range includes all combinations of the upper 2 bits +// User Defined = 0x30 to 0x3F //this range includes all combinations of the upper 2 bits + +// Obex tag values +const TUint KBtObexTagOffset = 0x01; +const TUint KBtObexTagCount = 0x02; +const TUint KBtObexTagJobId = 0x03; +const TUint KBtObexTagSize = 0x04; + +// Obex tag lengths in bytes +const TUint KBtDataLength4 = 0x04; //Length of I4 = 4 bytes integer +const TUint KBtTripletLength = 6; //Length of tag + length + data = 1 + 1 + 4 + + +//////////////////////////////////////////////////////////////////////////////////////// +// +// Mime types +// +//////////////////////////////////////////////////////////////////////////////////////// +_LIT8(KBtMimeTypeSoap, "x-obex/bt-SOAP"); +_LIT8(KBtMimeTypeXhtml, "application/vnd.pwg-xhtml-print+xml\0"); //"application/xhtml+xml"); +_LIT8(KBtMimeTypeReferenced, "x-obex/referencedobject"); +_LIT8(KBtMimeTypeJpeg, "image/jpeg"); +_LIT8(KBtMimeAnyImg, "image/*" ); + +//////////////////////////////////////////////////////////////////////////////////////// +// +// Obex constants +// +// According to http://www.bluetooth.org/assigned-numbers/baseband.htm +// these should be the correct numbers, however the Series 60 +// implementation of Bluetooth uses the numbers as below +// +//////////////////////////////////////////////////////////////////////////////////////// +//#define KBTMjrDevClassImaging 0x6 +//#define KBTMinDevClassPrinter 0x80 +//#define KBTMjrSvcClassRendering 0x20 +//#define KBTMjrSvcClassObjectTransfer 0x80 + +/** If the Major Device Class includes Imaging, the discovered Bluetooth device MAY be a BPP printer. */ +#define KBTMjrDevClassImaging 0x600 +/** If the Minor Device Class includes Printing, the discovered Bluetooth device is LIKELY a BPP printer. */ +#define KBTMinDevClassPrinter 0x20 +/** If the Major Service Class does not include Rendering, the discovered Bluetooth device is NOT a BPP printer. */ +#define KBTMjrSvcClassRendering 0x200000 +/** If the Major Service Class includes ObjectTransfer, the discovered Bluetooth device is NOT a BPP printer. */ +#define KBTMjrSvcClassObjectTransfer 0x800000 + +/** Nokia 6600: If the Major Device Class includes Imaging, the discovered Bluetooth device MAY be a BPP printer. */ +#define KBTMjrDevClassImaging_V2 0x600 +/** Nokia 6600: If the Minor Device Class includes Printing, the discovered Bluetooth device is LIKELY a BPP printer. */ +#define KBTMinDevClassPrinter_V2 0x80 +/** Nokia 6600: If the Major Service Class does not include Rendering, the discovered Bluetooth device is NOT a BPP printer. */ +#define KBTMjrSvcClassRendering_V2 0x40000 +/** Nokia 6600: If the Major Service Class does not includes ObjectTransfer, the discovered Bluetooth device is NOT a BPP printer. */ +#define KBTMjrSvcClassObjectTransfer_V2 0x100000 + +/** If the Major Device Class includes Computer, the discovered Bluetooth device MAY support Object Transfer. */ +#define KBTMjrDevClassComputer 0x100 +/** The device is a Desktop Computer. */ +#define KBTMinDevClassDesktop 0x4 +/** The device is a Server Computer. */ +#define KBTMinDevClassServer 0x8 +/** The device is a Laptop Computer. */ +#define KBTMinDevClassLaptop 0xC + + +// According to https://www.bluetooth.org/foundry/assignnumb/document/service_discovery +/** UID for OBEX Object Push service in a Bluetooth device SDP query. Required for OPP. */ +#define KBTSDPOBEXObjectPush 0x1105 +/** UID for the BPP Direct Printing service in a Bluetooth device SDP query. Required for BPP. */ +#define KBTSDPDirectPrinting 0x1118 +/** UID for the BPP Reference Printing service in a Bluetooth device SDP query. Required for BPP. */ +#define KBTSDPReferencePrinting 0x1119 +/** UID for the BPP Direct Printing Reference Objects service in a Bluetooth device SDP advertise. Required for BPP. */ +#define KBTSDPDPROService 0x1120 +/** UID for the BPP Printing Status service in a Bluetooth device SDP advertise. Required for BPP. */ +#define KBTSDPPrintingStatus 0x1123 +/** UID for L2CAP in a Bluetooth device SDP query. Required for BPP. */ +#define KBTSDPL2CAP 0x0100 +/** UID for RFCOMM in a Bluetooth device SDP query. Required for BPP. */ +#define KBTSDPRFCOMM 0x0003 +/** UID for Object Exchange in a Bluetooth device SDP query. Required for BPP. */ +#define KBTSDPObex 0x0008 + +// Additions to universal attributes in btsdp.h +static const TSdpAttributeID KSdpAttrIdAdditionalProtocolDescriptorLists = 0x000D; +static const TSdpAttributeID KSdpAttrIdDocFormatsSupported = 0x0350; +static const TSdpAttributeID KSdpAttrIdModelID = 0x0358; +static const TSdpAttributeID KSdpAttrIdMaxWidth = 0x0362; +static const TSdpAttributeID KSdpAttrIdMaxLen = 0x0364; +static const TSdpAttributeID KSdpAttrIdAllDone = 0xFFFFFF; +// own constants for UID bitmask +static const TUint KBtMaskRFCOMM = 0; +static const TUint KBtMaskL2CAP = 1; +static const TUint KBtMaskObex = 2; +static const TUint KBtMaskObjectPush = 4; +static const TUint KBtMaskDirectPrinting = 8; +static const TUint KBtMaskPrintingStatus = 16; +static const TUint KBtMaskROService = 32; + +static const TUint KBtMaskObexLevel = KBtMaskRFCOMM | KBtMaskL2CAP | KBtMaskObex; + + +//////////////////////////////////////////////////////////////////////////////////////// +// +// Obex server constants +// +//////////////////////////////////////////////////////////////////////////////////////// +const TUint KRfcommChannel = 1; +const TUint KServiceClass = 0x01007779; // Own UID + +_LIT( KServiceName,"DirectPrintingReferenceObjectsService" ); +_LIT( KServiceDescription,"Direct Printing Reference Objects Service" ); + +// Used by ObexFileServerImpl.h +const TInt KSimultainousSocketsOpen = 8; + +//////////////////////////////////////////////////////////////////////////////////////// +// +// Misc +// +//////////////////////////////////////////////////////////////////////////////////////// +const TInt KPendingLimit = 6; // 6 x 5 sec = 30 sec total to wait answer to request from printer +const TInt KOppPendingLimit = 24; // 24 X 5 sec = 120 sec total to wait opp printing. +// to get local BT name from central repository +const TUid KCRUidBluetoothLocalNameSettings = {0x10204DAC}; +const TUint32 KBTLocalName = 0x00000001; + +/** XHTML file name*/ +_LIT(KXHTMLFileName, "c:\\system\\data\\xhtml\\Bt_Print_%d.xhtml"); +_LIT8(KXHTMLFileName8, "c:\\system\\data\\xhtml\\Bt_Print_%d.xhtml"); + +/* Time out value for OBEX commands = 20 second */ +const TInt KObexCmdTimeOut = 20000000; + +#endif // BTPROTOCOLCONSTS_H + +// End of File +