diff -r 5b2a402e96ac -r 25fce757be94 usbclasses/pictbridgeengine/src/pictbridge.cpp --- a/usbclasses/pictbridgeengine/src/pictbridge.cpp Thu Aug 19 10:54:11 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,384 +0,0 @@ -/* -* Copyright (c) 2006, 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: This class defines and implements the API for UI engine. -* -*/ - - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "pictbridge.h" -#include "dpsdefs.h" -#include "dpsxmlstring.h" -#include "dpsconst.h" -#include "dpsstatemachine.h" -#include "dpsscriptreceiver.h" -#include "dpsusbnotifier.h" -#include "dpsparam.h" -#include "dpsscriptsender.h" -#include "dpstransaction.h" -#include "dpsfile.h" - -#ifdef _DEBUG -# define IF_DEBUG(t) {RDebug::t;} -#else -# define IF_DEBUG(t) -#endif - -const TInt KResource = 32; -const TInt KDriver = 3; -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C CDpsEngine* CDpsEngine::GetEngineL() - { - IF_DEBUG(Print(_L("CDpsEngine::GetEngineL"))); - CDpsEngine* me; - me = static_cast(Dll::Tls()); - if (!me) - { - CDpsEngine* self = new(ELeave) CDpsEngine(); - - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(); - User::LeaveIfError(Dll::SetTls(self)); - return self; - } - else - { - return me; - } - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CDpsEngine::Delete() - { - IF_DEBUG(Print(_L(">>>DpsEngine::Delete"))); - CDpsEngine *me; me = static_cast(Dll::Tls()); - if (me) - { - delete me; - Dll::SetTls(NULL); - } - IF_DEBUG(Print(_L("<<>>CDpsEngine::ConstructL"))); - iDpsParameters = TDpsXmlString::NewL(); - User::LeaveIfError(iPtp.Connect()); - iDpsOperator = CDpsStateMachine::NewL(this); - iUsbNotifier = CDpsUsbNotifier::NewL(this); - IF_DEBUG(Print(_L("<<>>~CDpsEngine"))); - - delete iDpsOperator; - iDpsOperator = NULL; - - delete iUsbNotifier; - iUsbNotifier = NULL; - - if (iDpsOperationRequest) - { - User::RequestComplete(iDpsOperationRequest, KErrCancel); - } - if (iDpsEventRequest) - { - User::RequestComplete(iDpsEventRequest, KErrCancel); - } - if (iPrinterConnectRequest) - { - User::RequestComplete(iPrinterConnectRequest, KErrCancel); - } - delete iDpsParameters; - iDpsParameters = NULL; - iPtp.Close(); - IF_DEBUG(Print(_L("<<<~CDpsEngine"))); - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CDpsEngine::SetPrintMode(TRequestStatus& aStatus) - { - IF_DEBUG(Print(_L(">>>DpsEngine::SearchPrinter"))); - - iPrinterConnectRequest = &aStatus; - *iPrinterConnectRequest = KRequestPending; - iUsbNotifier->WaitForPrinterNotify(); - IF_DEBUG(Print(_L("<<>>DpsEngine::CancelSearchPrinter"))); - iUsbNotifier->CancelPrinterNotify(); - IF_DEBUG(Print(_L("<<>>DpsEngine::ConnectStateNotifyL"))); - // SetPrintMode must be finished - if (!iUsbNotifier->IsSetPrintModeIssued()) - { - TRequestStatus* status = &aStatus; - User::RequestComplete(status, KErrNotReady); - return; - } - - iPrinterConnectRequest = &aStatus; - *iPrinterConnectRequest = KRequestPending; - iUsbNotifier->ConnectNotify(); - IF_DEBUG(Print(_L("<<>>DpsEngine::DoDpsRequestL"))); - // the ptp printer must be connected and registered for the dps event - if (!iUsbNotifier->IsConfigured() || !iDpsEventRequest) - { - TRequestStatus* status = &aStatus; - User::RequestComplete(status, KErrNotReady); - return; - } - - // there is a request from the host received and the reply has been - // sending out, but the host has not received it yet. we can not send - // the device request now - IF_DEBUG(Print(_L("curState is %x, idleState is %x"), - iDpsOperator->CurState(), iDpsOperator->IdleState())); - if (iDpsOperator->CurState() != iDpsOperator->IdleState()) - { - TRequestStatus* status = &aStatus; - User::RequestComplete(status, KErrInUse); - return; - } - - iDpsOperator->StartTransactionL(aRequest); - iDpsOperationRequest = &aStatus; - *iDpsOperationRequest = KRequestPending; - IF_DEBUG(Print(_L("<<>>DpsEngine::CancelDpsOperation"))); - if (iDpsOperationRequest) - { - iDpsOperator->ScriptSender()->Cancel(); - User::RequestComplete(iDpsOperationRequest, KErrCancel); - } - iDpsOperator->Initialize(); - IF_DEBUG(Print(_L("<<>>DpsEngine::DpsEventNotify"))); - // the PTP printer must be connected and registered for the disconnect - if (!iUsbNotifier->IsConfigured() || !iPrinterConnectRequest) - { - TRequestStatus* status = &aStatus; - User::RequestComplete(status, KErrNotReady); - return; - } - - iOutEvent = &aParam; - iDpsEventRequest = &aStatus; - *iDpsEventRequest = KRequestPending; - iDpsOperator->ScriptReceiver()->WaitForReceive(); - IF_DEBUG(Print(_L("<<ScriptReceiver()->Cancel(); - } - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CDpsEngine::GetDpsConfigL(TDpsConfigPrintReq& aConfig) - { - IF_DEBUG(Print(_L(">>>DpsEngine::GetDpsConfigL"))); - - RFs fs = iDpsOperator->Trader()->FileHandle()->FileSession(); - RResourceFile resource; - - TBuf resourceFile(PathInfo::RomRootPath()); - TBuf length(KDpsResource); - resourceFile.SetLength(KDriver + length.Length()); - resourceFile.Replace(KDriver, length.Length(), KDpsResource); - IF_DEBUG(Print(_L("file is %S"), &resourceFile)); - resource.OpenL(fs, resourceFile); - CleanupClosePushL(resource); - resource.ConfirmSignatureL(KDpsResourceVersion); - HBufC8* id = resource.AllocReadLC(DPS_CONFIG); - TResourceReader reader; - reader.SetBuffer(id); - TInt count = static_cast(reader.ReadUint8()); - for (TInt i = 0; i < count; i++) - { - TDpsVersion version; - version.iMajor = static_cast(reader.ReadUint8()); - version.iMinor = static_cast(reader.ReadUint8()); - aConfig.iDpsVersions.AppendL(version); - } - TPtrC vendorString = reader.ReadTPtrC(); - aConfig.iVendorName.Copy(vendorString); - TDpsVersion vendorVersion; - vendorVersion.iMajor = static_cast(reader.ReadUint8()); - vendorVersion.iMinor = static_cast(reader.ReadUint8()); - aConfig.iVendorVersion = vendorVersion; - TPtrC productString = reader.ReadTPtrC(); - aConfig.iProductName.Copy(productString); - TPtrC SerialNo = reader.ReadTPtrC(); - aConfig.iSerialNo.Copy(SerialNo); - CleanupStack::PopAndDestroy(id); - CleanupStack::PopAndDestroy(&resource); - IF_DEBUG(Print(_L("<<