diff -r 26673e532f65 -r 159fc2f68139 ImagePrint/ImagePrintUI/imageprinteng/src/cimageprint.cpp --- a/ImagePrint/ImagePrintUI/imageprinteng/src/cimageprint.cpp Tue May 25 12:42:41 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,324 +0,0 @@ -/* -* 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: -* -*/ - - -#include "cimageprint.h" -#include "cidleguard.h" -#include "cdiscoveryguard.h" -#include "cjobguard.h" -#include "clog.h" - -const static TInt KImagePrintVersionMajor = 0; -const static TInt KImagePrintVersionMinor = 0; -const static TInt KImagePrintVersionBuild = 231; - -/********************** -Public member functions -**********************/ - -CImagePrint::CImagePrint () - { - } - -/// Destructor. -CImagePrint::~CImagePrint () - { - LOG("CImagePrint::~CImagePrint BEGIN"); - delete iDiscoveryGuard; - delete iIdleGuard; - delete iJobGuard; - CCoeEnv::Static()->RemoveForegroundObserver( *this ); - iClient.Close(); - LOG("CImagePrint::~CImagePrint END"); - } - -/** - * @brief Initialize the server. - */ -void CImagePrint::ConnectL() - { - if( iClient.Handle() == KNullHandle ) - { - User::LeaveIfError( iClient.ConnectL() ); - iIdleGuard = CIdleGuard::NewL( iClient ); - iDiscoveryGuard = CDiscoveryGuard::NewL( iClient ); - iJobGuard = CJobGuard::NewL( iClient ); - User::LeaveIfError( iClient.ReserveEngine() ); - iClient.SetForeground( ETrue ); //For aiw cases - CCoeEnv::Static()->AddForegroundObserverL( *this ); - } - } - -/** - * @brief Shutdown the server. - */ -void CImagePrint::Close() - { - iClient.ReleaseEngine(); - } - -/** - * @brief Returns the current version of the Image Print Server - * @return The current version of the Image Print Server - */ -TVersion CImagePrint::Version() - { - return TVersion(KImagePrintVersionMajor, KImagePrintVersionMinor, KImagePrintVersionBuild); // Julian Day, August 18. - } - -/** - * @brief Starts the discovery process. - * - * Starts printer discovery on specified printer plug-ins. This is an asynchronous call that will use the - * supplied MPrinterDiscoveryObserver to signal the client when Printers are found and upon error or successful completion. - * - * @param aObserver The discovery observer. - * @param aProtocols Used to indicate what protocols to search for. 0 = all, 1 = BPP, 2 = BIP, 4 = OPP_Printer, 8 = DPOF, 16 = PB, 32 = OPP_PC - * @return Any standard Symbian error code. - * @sa KImagePrint_PrinterProtocol_BPP @sa KImagePrint_PrinterProtocol_BIP @sa KImagePrint_PrinterProtocol_OPP_Printer - * @sa KImagePrint_PrinterProtocol_DPOF @sa KImagePrint_PrinterProtocol_PictBridge @sa KImagePrint_PrinterProtocol_OPP_PC - */ -TInt CImagePrint::StartDiscoveryL(MPrinterDiscoveryObserver& aObserver, TUint aProtocols) - { - return iDiscoveryGuard->Guard( aObserver, aProtocols ); - } - -/** - * Cancels printer discovery on all printer plug-ins. This is an asynchronous call - * that will use the MPrinterDiscoveryObserver previously supplied by - * CImagePrint::StartDiscoveryL to signal the client upon error or successful completion. - * @brief Cancels the discovery process. - * @return \c KErrNone if cancel was successfully submitted, otherwise another of the system-wide error codes. - */ -TInt CImagePrint::CancelDiscovery() - { - return iClient.CancelDiscovery(); - } - -/** - * Creates a print job using the default settings and template. All job information beyond the images and Printer are set to the defaults of the printer. - * If the Printer Discovery process is ongoing when \c CreatePrintJobL is received, Printer Discovery is terminated, without sending a notification event to the Client. - * @brief Creates a print job in the specified printer. - * @param[in] aPrinterID The exposed ID of the printer where the client wishes to create the print job. - * @param aImages Array containing the full names of the files to print. - * @param aObserver The print event observer. - * @return Any standard Symbian error code or KErrInvalidSequence / KErrInvalidData. - * @note Only one print job can be active at a time. The Print Job must be created before any - * print job related functions are called. These functions include changing settings, preview, job submission, canceling, or getting status. - */ -TInt CImagePrint::CreatePrintJobL(TInt aPrinterID, RPointerArray& aImages, MPrintEventObserver& aObserver) - { - return iJobGuard->Guard(aPrinterID, aImages, aObserver); - } - -/** - * @brief Submits a print job already created. - * @return Any standard Symbian error code or KErrInvalidSequence / KErrInvalidData. - * @note 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. - */ -TInt CImagePrint::SubmitPrintJobL() - { - return iClient.SubmitPrintJob(); - } - -/** - * @brief Cancels the print job. - * @return Any standard Symbian error code or KErrInvalidSequence / KErrInvalidData. - * @note This is an asynchronous command. MPrintEventObserver::PrintJobProgressEvent will be called with the status of TPrintJobProgressEventStatus::EDone when the cancellation is completed. - * @note The notification can potentially be received by the client before this command returns to the client. - */ -TInt CImagePrint::CancelPrintJob() - { - LOG("CImagePrint::CancelPrintJob"); - return iClient.CancelPrintJob(); - } - -/** - * @brief Continues printing and / or submitting a print job. Implementation may vary from protocol to protocol. - * @return Any standard Symbian error code or KErrInvalidSequence / KErrInvalidData. - */ -TInt CImagePrint::ContinuePrintJobL() - { - return iClient.ContinuePrintJob(); - } - -/** - * @brief Gets the number of pages to be printed. - * @return Number of pages to print. - */ -TInt CImagePrint::GetNumPrintPages() - { - return iClient.GetNumPrintPages(); - } - -/** - * @brief Gets the status of the printing job created. - * @return Printing job status. - */ -TInt CImagePrint::GetJobStatus() - { - return iClient.GetJobStatus(); - } - -/** - * @brief Gets the status of the printer. - * @param[in] aPrinterID The exposed ID of the printer the client wants to know about. - * @return Any standard Symbian error code or KErrInvalidSequence / KErrInvalidData. - */ -TInt CImagePrint::GetPrinterStatus( TInt aPrinterID ) - { - return iClient.GetPrinterStatus( aPrinterID ); - } - -/** - * @brief Gets the IDs of the capabilities supported by the printer specified. - * @param[in] aPrinterID The exposed ID of the printer the client wants to know about. - * @param[out] aCapabilityIDs Array containing the ID's of the capabilities of the specified printer. - * @return Any standard Symbian error code or KErrInvalidSequence / KErrInvalidData. - */ -TInt CImagePrint::GetPrinterCapabilityIDsL(TInt aPrinterID, RArray& aCapabilityIDs) - { - return iClient.GetPrinterCapabilityIDs(aPrinterID, aCapabilityIDs); - } - -/** - * @brief Gets the detail of a certain capability of a certain printer. - * @param[in] aPrinterID The exposed ID of the printer the client wants to know about. - * @param[in] aCapabilityID ID of the capability of interest. - * @param[out] aCapability Capability information. - * @return Any standard Symbian error code or KErrInvalidSequence / KErrInvalidData. - */ -TInt CImagePrint::GetPrinterCapabilityL(TInt aPrinterID, TInt aCapabilityID, TPrintCapability& aCapability) - { - return iClient.GetPrinterCapability(aPrinterID, aCapabilityID, aCapability); - } - -/** - * @brief Gets a setting configured for the created print job. - * @param[in] aCapabilityID ID of the capability of interest. - * @param[out] aValue Capability value. - * @return Any standard Symbian error code or KErrInvalidSequence / KErrInvalidData. - */ -TInt CImagePrint::GetJobSetting(TInt aCapabilityID, TInt& aValue) - { - return iClient.GetJobSetting(aCapabilityID, aValue); - } - -/** - * @brief Sets a print job setting. - * @param[in] aCapabilityID ID of the capability of interest. - * @param[in] aValue New capability value. - * @param[out] aAffectedCapability ID of any affected capability. - * @return Any standard Symbian error code or KErrInvalidSequence / KErrInvalidData. - */ -TInt CImagePrint::SetJobSettingL(TInt aCapabilityID, TInt aValue, TInt& aAffectedCapability) - { - return iClient.SetJobSetting(aCapabilityID, aValue, aAffectedCapability); - } - -/** - * @brief Gets the number of pages in the preview. - * @return Number of pages in the preview. - */ -TInt CImagePrint::GetNumPreviewPages() - { - return iClient.GetNumPreviewPages(); - } - -/** - * @brief Gets the icon representing a given layout or template. - * @param[in] aTemplateID ID of the template / layout of interest. - * @param[out] aFbsBitmapHandle Handle to the appropriate bitmap. - * @return Any standard Symbian error code or KErrInvalidSequence / KErrInvalidData. - */ -TInt CImagePrint::GetJobTemplateIconL(TInt /*aTemplateID*/, TInt& /*aFbsBitmapHandle*/) - { - return KErrNotSupported; - } - -/** - * @brief Gets number of copies for each image. - * @param[out] aArray contains number of copies for each image. - * @return Any standard Symbian error code or KErrInvalidSequence / KErrInvalidData. - */ -TInt CImagePrint::GetNumberOfCopies( RArray& /*aArray*/ ) - { - return KErrNotSupported; - } - -/** - * @brief Sets number of copies for each image. - * @param[in] aArray contains number of copies for each image. - * @return Any standard Symbian error code or KErrInvalidSequence / KErrInvalidData. - */ -TInt CImagePrint::SetNumberOfCopies( const RArray& aArray ) - { - return iClient.SetNumberOfCopies( aArray ); - } - -/** - * @brief Creates a preview image. - * @param[in] aPageNumber Page number to create preview image of. - * @return Any standard Symbian error code or KErrInvalidSequence / KErrInvalidData. - */ -TInt CImagePrint::CreatePreviewImage(TInt /*aPageNumber*/) - { - return KErrNotSupported; - } - -/** - * @brief Removes a specified cached printer. - * @param[in] aPrinterID The exposed ID of the printer the client wants to remove. - * @return Any standard Symbian error code or KErrInvalidSequence / KErrInvalidData.k - */ -TInt CImagePrint::RemoveCachedPrinterL(TInt aPrinterID) - { - return iClient.RemoveCachedPrinter( aPrinterID ); - } - -/** - * @brief Returns the Protocols supported by the DLL. It can be any of the KImagePrint_PrinterProtocol* constants. - * @return An OR'ed value with the supported protocols information. - * @sa KImagePrint_PrinterProtocol_BPP @sa KImagePrint_PrinterProtocol_BIP @sa KImagePrint_PrinterProtocol_OPP - * @sa KImagePrint_PrinterProtocol_DPOF @sa KImagePrint_PrinterProtocol_PictBridge - */ -TUint CImagePrint::SupportedProtocols() - { - return iClient.SupportedProtocols(); - } - -/** - * @brief Registers the IdleObserver to send idle event notifications - * @param A pointer to an object implementing MIdleObserver interface that will be notified of events - * @note In order to stop sending notifications, send NULL as the parameter. - */ -void CImagePrint::RegisterIdleObserver(MIdleObserver *aObserver) - { - iIdleGuard->Guard( aObserver ); - } - -void CImagePrint::HandleGainingForeground() - { - iClient.SetForeground( ETrue ); - } - -void CImagePrint::HandleLosingForeground() - { - iClient.SetForeground( EFalse ); - } - -// End of File