diff -r 000000000000 -r d11fb78c4374 ImagePrint/ImagePrintEngine/ImagePrintServer/inc/rimageprintclient.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ImagePrint/ImagePrintEngine/ImagePrintServer/inc/rimageprintclient.h Thu Dec 17 08:45:53 2009 +0200 @@ -0,0 +1,310 @@ +/* +* 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 RIMAGEPRINTCLIENT_H +#define RIMAGEPRINTCLIENT_H + +#include + +class TPrintCapability; +class TIdleGuardData; +class TDiscoveryGuardData; +class TJobGuardData; + +class RImagePrintClient : public RSessionBase + { + public: + + /** + * Constructor + */ + IMPORT_C RImagePrintClient(); + + /** + * Connect to the ImagePrint server + * + * @return KErrNone if successful, otherwise another of the system-wide error codes + */ + IMPORT_C TInt ConnectL(); + + /** + * Close the session + */ + IMPORT_C void Close(); + + /** + * Count connections to the server ( all clients in all prosesses ) + * + * @param aConnections holder for connnections count + * @return KErrNone if successful, otherwise another of the system-wide error codes + */ + IMPORT_C TInt CountConnections( TInt& aConnections ) const; + + /** + * Inform server about foreground/background state of the client + * + * @param aFg foreground/background flag + * @return KErrNone if successful, otherwise another of the system-wide error codes + */ + IMPORT_C TInt SetForeground( TInt aFg ) const; + + + /** + * Reserves ImagePrint engine for this client + * + * @return KErrNone if successful, KErrInUse if used by another client + */ + IMPORT_C TInt ReserveEngine() const; + + /** + * Releases ImagePrint engine + * + * @return KErrNone if successful, KErrInUse if used by another client + */ + IMPORT_C TInt ReleaseEngine() const; + + /** + * Get protocols supported by ImagePrint engine + * + * @return OR:ed protocols or KErrInUse if used by another client + */ + IMPORT_C TInt SupportedProtocols() const; + + /** + * Gets the number of pages to be printed + * + * @return Number of pages to print or KErrInUse if used by another client + */ + IMPORT_C TInt GetNumPrintPages() const; + + /** + * Gets the status of the printing job created + * + * @return Printing job status or KErrInUse if used by another client + */ + IMPORT_C TInt GetJobStatus() const; + + /** + * Gets the status of the printer + * + * @param aPrinterID The exposed ID of the printer the client wants to know about. + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt GetPrinterStatus( TInt aPrinterID ) const; + + /** + * Cancel discovery + * + * @return KErrNone or KErrInUse if used by another client + */ + IMPORT_C TInt CancelDiscovery() const; + + /** + * Submits a print job already created. The actual job execution is asynchronous so this + * function returns immediately. If successful, notification of job status and job + * completion is received by the client through the MPrintEventObserver. + * + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt SubmitPrintJob() const; + + /** + * Cancels the print job. This is an asynchronous command. MPrintEventObserver::PrintJobProgressEvent + * will be called with the status of TPrintJobProgressEventStatus::EDone when the cancellation + * is completed. The notification can potentially be received by the client before + * this command returns to the client. + * + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt CancelPrintJob() const; + + /** + * Continues printing and / or submitting a print job. + * + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt ContinuePrintJob() const; + + /** + * Removes a specified cached printer. + * + * @param aPrinterID The exposed ID of the printer the client wants to remove. + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt RemoveCachedPrinter( TInt aPrinterID ) const; + + /** + * Gets the icon representing a given layout or template. + * + * @param aTemplateID ID of the template / layout of interest. + * @param aFbsBitmapHandle Handle to the appropriate bitmap. + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt GetJobTemplateIcon( TInt aTemplateID, TInt& aFbsBitmapHandle ) const; + + /** + * Gets the number of pages in the preview. + * + * @return Number of pages in the preview. + */ + IMPORT_C TInt GetNumPreviewPages() const; + + /** + * Sets a print job setting. + * + * @param aCapabilityID ID of the capability of interest. + * @param aValue New capability value. + * @param aAffectedCapability ID of any affected capability. + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt SetJobSetting( TInt aCapabilityID, TInt aValue, TInt& aAffectedCapability ) const; + + /** + * Gets a setting configured for the created print job. + * + * @param aCapabilityID ID of the capability of interest. + * @param aValue Capability value. + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt GetJobSetting( TInt aCapabilityID, TInt& aValue ) const; + + /** + * Gets the detail of a certain capability of a certain printer. + * + * @param aPrinterID The exposed ID of the printer the client wants to know about. + * @param aCapabilityID ID of the capability of interest. + * @param aCapability Capability information. + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt GetPrinterCapability(TInt aPrinterID, TInt aCapabilityID, TPrintCapability& aCapability) const; + + /** + * Gets the IDs of the capabilities supported by the printer specified. + * + * @param aPrinterID The exposed ID of the printer the client wants to know about. + * @param aCapabilityIDs Array containing the ID's of the capabilities of the specified printer. + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt GetPrinterCapabilityIDs( TInt aPrinterID, RArray& aCapabilityIDs ) const; + + /** + * Registers the IdleObserver to send idle event notifications. Asynchronous function. + * + * @param aData place holder for idle event. On function completion contains idle event data. + * @param aStatus request status + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt RegisterIdleObserver( TIdleGuardData& aData, TRequestStatus& aStatus ); + + /** + * Cancel registering idle observer + * + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt CancelRegisterIdleObserver() const; + + /** + * Start discovery and set request for discovery event. Asynchronous function. + * + * @param aData place holder for discovery event. On function completion contains discovery event data. + * @param aProtocols OR:ed protocol ids + * @param aStatus request status + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt StartDiscovery( TDiscoveryGuardData& aData, TUint aProtocols, TRequestStatus& aStatus ); + + /** + * Set next request for discovery event. Asynchronous function. + * + * @param aData place holder for discovery event. On function completion contains discovery event data. + * @param aStatus request status + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt ContinueDiscovery( TDiscoveryGuardData& aData, TRequestStatus& aStatus ); + + /** + * Create print job and set request for print job event. Asynchronous function. + * + * @param aPrinterID printer id + * @param aData place holder for print job event. On function completion contains print job event data. + * @param aImages array of image file names + * @param aStatus request status + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt CreateJob( TInt aPrinterID, TJobGuardData& aData, RPointerArray& aImages, TRequestStatus& aStatus ); + + /** + * Set next request for print job event. Asynchronous function. + * + * @param aData place holder for print job event. On function completion contains print job event data. + * @param aStatus request status + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt ContinueCreateJob( TJobGuardData& aData, TRequestStatus& aStatus ); + + /** + * Cancel starting discovery + * + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt CancelStartDiscovery() const; + + /** + * Cancel creating print job + * + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt CancelCreateJob() const; + + /** + * PictBridge USB mode checker + * + * @return TInt value more than 0, if PictBridge USB mode is on; 0 if off; negative value if error + */ + IMPORT_C TInt IsPictBridgeMode() const; + + /** + * Set number of copies + * + * @param aArray array of number of copies elements. Each array element corresponds to the array + * of image file names of created print job + * @return Any standard Symbian error code or error codes [ KErrInvalidSequence (-50) / KErrInvalidData (-51) ]. + */ + IMPORT_C TInt SetNumberOfCopies( const RArray& aArray ) const; + + public: + + /** + * Version getter + * + * @return version of the client + */ + TVersion Version() const; + + private: + + TPtr8 iDicsoveryDataPtr; + TPtr8 iIdleDataPtr; + TPtr8 iJobDataPtr; + TPrintCapability* iCapability; + }; + + +#endif // RIMAGEPRINTCLIENT_H + +// End of File