ImagePrint/ImagePrintEngine/ImagePrintLibrary/inc/imageprint.h
branchRCL_3
changeset 21 d59c248c9d36
parent 0 d11fb78c4374
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ImagePrint/ImagePrintEngine/ImagePrintLibrary/inc/imageprint.h	Wed Sep 01 12:30:38 2010 +0100
@@ -0,0 +1,149 @@
+/*
+* 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:  Client include file for the ImagePrint server. Contains the 
+* 				 CImagePrint class definition, and the following interfaces:
+* 				 MIdleObserver, MPrinterDiscoveryObserver and MPrintEventObserver
+*
+*/
+
+
+#ifndef IMAGEPRINT_H
+#define IMAGEPRINT_H
+
+#include <e32base.h>
+
+class TPrinter;
+class TEvent;
+
+_LIT( KTabChar, "\t" );
+_LIT( KParamFile, "\\system\\data\\T_AIW_TEMP.DAT");
+
+/// Error constant defined to indicate Invalid Sequence.
+const TInt KErrInvalidSequence = -50;
+/// Error constant defined to indicate Invalid Data.
+const TInt KErrInvalidData = -51;
+/// Error constant defined to indicate that a printer has been connected
+const TInt KErrConnected = -500;
+
+/// BPP Protocol Identifier.
+const TUint KImagePrint_PrinterProtocol_BPP = 1;
+/// BIP Protocol Identifier.
+const TUint KImagePrint_PrinterProtocol_BIP = 2;
+/// OPP Protocol Identifier (Printer).
+const TUint KImagePrint_PrinterProtocol_OPP_Printer = 4;
+/// DPOF Protocol Identifier.
+const TUint KImagePrint_PrinterProtocol_DPOF = 8;
+/// PictBridge Protocol Identifier.
+const TUint KImagePrint_PrinterProtocol_PictBridge = 16;
+/// OPP Protocol Identifier (PC).
+const TUint KImagePrint_PrinterProtocol_OPP_PC = 32;
+/// UPnP Protocol Identifier
+const TUint KImagePrint_PrinterProtocol_UPnP = 64;
+
+/// Enums used to specify the current state in the DiscoveryStatusL callback.
+enum TDiscoveryStatus
+	{
+	EDiscoverying = 0,
+	EDiscoveryFinished = 1,
+	EDiscoveryCancelling = 2
+	};
+
+/// Enums used to specify the current state in the PrintJobProgressEvent callback.
+enum TPrintJobProgressEventStatus
+	{
+	EActive = 0,
+	EDone = 1
+	};
+
+/**
+ *	@brief Interface to be implemented by the class using CImagePrint. It is used by CImagePrint to report anything related
+ *	to the discovery process.
+ */
+class MPrinterDiscoveryObserver
+	{
+	public:
+		/**
+		 * Called by Image Printer Server to notify the client application that a printer was discovered.
+		 *  @param aPrinterInfo Contains printer information of the discovered device.
+		 */
+		virtual void FoundPrinterL( const TPrinter& aPrinterInfo ) = 0;
+		/**
+		 * Called by Image Printer Server to notify the client application that an operation 
+		 * has completed, either successfully or with an error.
+		 * @param aStatus Indicate the status of the discovery process. One of the values of \c ::TDiscoveryStatus
+		 * @param aErrorCode \c KErrNone if there was no error, otherwise another of the system-wide error codes.
+		 * @param aErrorStringCode StringCode - Descriptive text that can be used to further explain error.
+		 */
+		virtual void DiscoveryStatusL( TInt aStatus, 
+										TInt aErrorCode, 
+										TInt aErrorStringCode ) = 0;
+		/**
+		 * Called by Image Printer Server to notify the client application that a printer 
+		 * returned from the cache was not discovered during the discovery phase, 
+		 * and should be removed from the UI. If this call is needed, it will be made 
+		 * after all BPP printers have been returned, but before the discovery completes.
+		 *  @param aPrinterInfo Contains printer information of the printer that was not found during discovery
+		 */
+		virtual void RemovePrinterL( const TPrinter& aPrinterInfo ) = 0;
+	};
+
+/**
+ *	@brief Interface to be implemented by the class using CImagePrint. It is used by CImagePrint to report anything related
+ *	to the printing process, once it is started.
+ */
+class MPrintEventObserver
+	{
+	public:
+		virtual void PrintJobProgressEvent( TInt aStatus, 
+										TInt aPercentCompletion, 
+										TInt aJobStateCode ) = 0;
+										
+		virtual void PrintJobErrorEvent( TInt aError, 
+										TInt aErrorStringCode ) = 0;
+										
+		virtual void PrinterStatusEvent( TInt aError, 
+										TInt aErrorStringCode ) = 0;
+										
+		virtual void PreviewImageEvent( TInt aFsBitmapHandle ) = 0;
+		
+		virtual void ShowMessageL( TInt aMsgLine1Code, 
+										TInt aMsgLine2Code ) = 0;
+										
+		virtual TBool AskYesNoQuestionL( TInt aMsgLine1Code, 
+										TInt aMsgLine2Code ) = 0;
+										
+		virtual const TDesC& AskForInputL( TInt aMsgLine1Code, 
+										TInt aMsgLine2Code ) = 0;
+	};
+
+/**
+ *  @brief Interface to be implemented by the class using CImagePrint. It is used by CImagePrint to report
+ *  anything related to status changes in the handling protocol.
+ *  @sa CImagePrint::RegisterIdleObserver
+ */
+class MIdleObserver
+	{
+	public:
+		/** Called by CImagePrint to notify of events. The meaning of the event and associated error and mesage codes
+		 *  is protocol dependant.
+		 */
+		virtual void StatusEvent( const TEvent &aEvent, 
+										TInt aError, 
+										TInt aMsgCode ) = 0;
+	};
+
+
+#endif // IMAGEPRINT_H
+
+//  End of File