--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbuis/imageprintui/src/connectionmanager.cpp Thu Dec 17 09:14:30 2009 +0200
@@ -0,0 +1,220 @@
+/*
+* 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: Informs about USB connection
+*
+*/
+
+
+#include <pictbridge.h>
+#include <imageprintui.rsg>
+
+#include "connectionmanager.h"
+#include "imageprintuidebug.h"
+#include "settingsview.h"
+#include "notes.h"
+#include "imageprintuiappui.h"
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CConnectionManager::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CConnectionManager* CConnectionManager::NewL( CImagePrintUiAppUi* aAppUi,
+ CDpsEngine* aEngine, CNotes* aNotes)
+ {
+ FLOG(_L("[IMAGEPRINTUI]\tCConnectionManager:NewL"));
+ CConnectionManager* self
+ = new (ELeave) CConnectionManager(aAppUi, aEngine, aNotes);
+ return self;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CConnectionManager::~CConnectionManager
+// C++ default destructor
+// -----------------------------------------------------------------------------
+//
+CConnectionManager::~CConnectionManager()
+ {
+ FLOG(_L("[IMAGEPRINTUI]\tCConnectionManager: desctructor"));
+ Cancel(); // cancels any existing active object orders for iStatus
+
+ FLOG(_L("[IMAGEPRINTUI]\tCConnectionManager: desctructor complete"));
+ }
+
+
+// -----------------------------------------------------------------------------
+// CConnectionManager::CConnectionManager
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CConnectionManager::CConnectionManager( CImagePrintUiAppUi* aAppUi,
+ CDpsEngine* aEngine, CNotes* aNotes)
+ : CActive(EPriorityStandard), iAppUi(aAppUi),
+ iDpsEngine(aEngine), iActiveNote(EFalse),iSetPrintCall(EFalse),
+ iNotes(aNotes), iPreviousStatus(CDpsEngine::ENotConnected)
+ {
+ CActiveScheduler::Add(this);
+ }
+
+
+
+// -----------------------------------------------------------------------------
+// CConnectionManager::RunError
+// Standard active object error function.
+// -----------------------------------------------------------------------------
+//
+
+TInt CConnectionManager::RunError(TInt aError)
+ {
+ FTRACE(FPrint(_L("[IMAGEPRINTUI]\tCConnectionManager::RunError: ERROR %d from RunL."), aError));
+ if ( aError == KErrTimedOut)
+ {
+ FLOG(_L("[IMAGEPRINTUI] CConnectionManager: Time out, start listen again"));
+ StartListening();
+ }
+ else
+ {
+ FLOG(_L("[IMAGEPRINTUI] CConnectionManager RunError close application"));
+ iAppUi->CloseApplication(ETrue);
+ }
+ return KErrNone;
+ }
+// -----------------------------------------------------------------------------
+// Starts search printer
+// -----------------------------------------------------------------------------
+//
+void CConnectionManager::StartSearchPrinter()
+ {
+ FLOG(_L("[IMAGEPRINTUI]\tCConnectionManager: StartSerchPrinter"));
+ iDpsEngine->SetPrintMode(iStatus);
+ iSetPrintCall = ETrue;
+ SetActive();
+ FLOG(_L("[IMAGEPRINTUI]\tCConnectionManager: StartSerchPrinter complete"));
+ }
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CConnectionManager::RunL()
+ {
+ FLOG(_L("[IMAGEPRINTUI]>>>CConnectionManager::RunL"));
+ FTRACE(FPrint(_L("[IMAGEPRINTUI] CConnectionManager iStatus is %d"), iStatus.Int() ));
+ FTRACE(FPrint(_L("[IMAGEPRINTUI] CConnectionManager iPreviousStatus is %d"), iPreviousStatus ))
+
+ if ( iStatus.Int() == CDpsEngine::ENotConnected )
+ {
+ FLOG(_L("[IMAGEPRINTUI]>>>CConnectionManager::ENotConnected "));
+ if(iPreviousStatus == CDpsEngine::EOtherConnected)
+ {
+ FLOG(_L("[IMAGEPRINTUI]\tCConnectionManager:: Previous was EOtherConnected, close earlier note"));
+ iNotes->StopShowNote(R_NOT_CONNECT_PRINTER);
+ }
+ iNotes->ShowNoteL(R_CONNECT_USB);
+ iActiveNote = ETrue;
+ iPreviousStatus = CDpsEngine::ENotConnected;
+ StartListening();
+
+ }
+ else if ( iStatus.Int() == CDpsEngine::EOtherConnected )
+ {
+ FLOG(_L("[IMAGEPRINTUI]>>>CConnectionManager::EOtherConnected "));
+ if(iPreviousStatus == CDpsEngine::ENotConnected)
+ {
+ FLOG(_L("[IMAGEPRINTUI]\tCConnectionManager:: Previous was ENotConnected, close earlier note"));
+ iNotes->StopShowNote(R_CONNECT_USB);
+ }
+ iNotes->ShowNoteL(R_NOT_CONNECT_PRINTER);
+ iActiveNote = ETrue;
+ iPreviousStatus = CDpsEngine::EOtherConnected;
+ StartListening();
+
+ }
+ else if (iStatus.Int() == CDpsEngine::EPrinterConnected)
+ {
+ FLOG(_L("[IMAGEPRINTUI]>>>CConnectionManager::EPrinterConnected"));
+ iSetPrintCall = EFalse;
+ if(iActiveNote)
+ {
+ FLOG(_L("[IMAGEPRINTUI]>>>CConnectionManager::Stop show note"));
+ iNotes->StopShowNote(R_CONNECT_USB);
+ iActiveNote = EFalse;
+ }
+ iPreviousStatus = CDpsEngine::EPrinterConnected;
+ StartListening();
+ TRAPD(err, iAppUi->CableConnectedL());
+ if(err)
+ {
+ // creation of some manager instance was unsuccessfull, close application
+ iNotes->ShowErrorMsgL(R_ERROR_GENERAL);
+ iAppUi->CloseApplication(EFalse);
+ }
+ }
+ else if ( iStatus.Int() == CDpsEngine::EPrinterDisconnected ||
+ iStatus.Int() == CDpsEngine::EWrongPrintModeConnected )
+ {
+ FLOG(_L("[IMAGEPRINTUI]>>>CConnectionManager::EPrinterDisconnected or EWrongPrintModeConnected"));
+ iAppUi->CloseApplication(ETrue);
+ }
+
+ FLOG(_L("[IMAGEPRINTUI]<<<CConnectionManager::RunL complete."));
+ }
+
+
+
+// -----------------------------------------------------------------------------
+// CConnectionManager::StartListening
+// Orders notifications and sets the object active.
+// -----------------------------------------------------------------------------
+//
+void CConnectionManager::StartListening()
+ {
+ FLOG(_L("[IMAGEPRINTUI]\tCConnectionManager: StartListeningL"));
+ if(IsActive())
+ {
+ return;
+ }
+ iDpsEngine->ConnectStateNotify( iStatus );
+ SetActive();
+ FLOG(_L("[IMAGEPRINTUI]\tCConnectionManager: StartListeningL complete"));
+ }
+
+
+// -----------------------------------------------------------------------------
+// CConnectionManager::DoCancel
+// Standard active object cancellation function.
+// -----------------------------------------------------------------------------
+//
+void CConnectionManager::DoCancel()
+ {
+ FLOG(_L("[IMAGEPRINTUI]\tCConnectionManager::DoCancel"));
+ FTRACE(FPrint(_L("[IMAGEPRINTUI]\t tCConnectionManager iDpsEngine is %x"), iDpsEngine ));
+ if(!iDpsEngine)
+ {
+ FLOG(_L("[IMAGEPRINTUI]\tCConnectionManager::DpsEngine allredy destroyed, panic"));
+ }
+ else
+ {
+ iDpsEngine->CancelPrintMode();
+ }
+ FLOG(_L("[IMAGEPRINTUI]\tCConnectionManager::DoCancel complete"));
+ }
+
+
+
+// End of file