--- a/usbclasses/pictbridgeengine/src/pictbridge.cpp Fri May 28 16:51:12 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 <e32base.h>
-#include <e32debug.h>
-#include <dps.rsg>
-#include <f32file.h>
-#include <barsc.h>
-#include <barsread.h>
-#include <bautils.h>
-#include <pathinfo.h>
-
-#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<CDpsEngine*>(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<CDpsEngine*>(Dll::Tls());
- if (me)
- {
- delete me;
- Dll::SetTls(NULL);
- }
- IF_DEBUG(Print(_L("<<<DpsEngine::Delete")));
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CDpsEngine::ConstructL()
- {
- 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("<<<DpsEngine::ConstructL")));
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-CDpsEngine::~CDpsEngine()
- {
- 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::SearchPrinter")));
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CDpsEngine::CancelPrintMode()
- {
- IF_DEBUG(Print(_L(">>>DpsEngine::CancelSearchPrinter")));
- iUsbNotifier->CancelPrinterNotify();
- IF_DEBUG(Print(_L("<<<DpsEngine::CancelSearchPrinter")));
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CDpsEngine::ConnectStateNotify(TRequestStatus& aStatus)
- {
- 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::ConnecStatetNotifyL")));
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CDpsEngine::DoDpsRequestL(TMDpsOperation* aRequest,
- TRequestStatus& aStatus)
- {
- 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::DoDpsRequestL")));
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CDpsEngine::CancelDpsRequest()
- {
- IF_DEBUG(Print(_L(">>>DpsEngine::CancelDpsOperation")));
- if (iDpsOperationRequest)
- {
- iDpsOperator->ScriptSender()->Cancel();
- User::RequestComplete(iDpsOperationRequest, KErrCancel);
- }
- iDpsOperator->Initialize();
- IF_DEBUG(Print(_L("<<<DpsEngine::CancelDpsOperation")));
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CDpsEngine::DpsEventNotify(TDpsEvents& aParam,
- TRequestStatus& aStatus)
- {
- 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("<<<DpsEngine::DpsEventNotify")));
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CDpsEngine::CancelDpsEventNotify()
- {
- IF_DEBUG(Print(_L("DpsEngine::CancelDpsEventNotify")));
- if (iDpsEventRequest)
- {
- User::RequestComplete(iDpsEventRequest, KErrCancel);
- iDpsOperator->ScriptReceiver()->Cancel();
- }
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CDpsEngine::GetDpsConfigL(TDpsConfigPrintReq& aConfig)
- {
- IF_DEBUG(Print(_L(">>>DpsEngine::GetDpsConfigL")));
-
- RFs fs = iDpsOperator->Trader()->FileHandle()->FileSession();
- RResourceFile resource;
-
- TBuf<KResource> resourceFile(PathInfo::RomRootPath());
- TBuf<KResource> 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<TInt>(reader.ReadUint8());
- for (TInt i = 0; i < count; i++)
- {
- TDpsVersion version;
- version.iMajor = static_cast<TInt>(reader.ReadUint8());
- version.iMinor = static_cast<TInt>(reader.ReadUint8());
- aConfig.iDpsVersions.Append(version);
- }
- TPtrC vendorString = reader.ReadTPtrC();
- aConfig.iVendorName.Copy(vendorString);
- TDpsVersion vendorVersion;
- vendorVersion.iMajor = static_cast<TInt>(reader.ReadUint8());
- vendorVersion.iMinor = static_cast<TInt>(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("<<<DpsEngine::GetDpsConfigL")));
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C const TDesC& CDpsEngine::DpsFolder() const
- {
- return iDpsFolder;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TDpsEvents* CDpsEngine::Event() const
- {
- return iOutEvent;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-RPtp& CDpsEngine::Ptp()
- {
- return iPtp;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TDpsXmlString* CDpsEngine::DpsParameters() const
- {
- return iDpsParameters;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TRequestStatus*& CDpsEngine::EventRequest()
- {
- return iDpsEventRequest;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TRequestStatus*& CDpsEngine::OperationRequest()
- {
- return iDpsOperationRequest;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-TRequestStatus*& CDpsEngine::PrinterConnectRequest()
- {
- return iPrinterConnectRequest;
- }
-
-// ---------------------------------------------------------------------------
-//
-// ---------------------------------------------------------------------------
-//
-void CDpsEngine::SetDpsFolder(const TDesC& aFolder)
- {
- iDpsFolder.Copy(aFolder);
- }
-