mtpdataproviders/mtppictbridgedp/pictbridgeengine/src/dpsusbnotifier.cpp
branchRCL_3
changeset 20 4a793f564d72
parent 19 0aa8cc770c8a
child 21 74aa6861c87d
--- a/mtpdataproviders/mtppictbridgedp/pictbridgeengine/src/dpsusbnotifier.cpp	Tue Aug 31 16:03:15 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,329 +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 implements functions of set mtp personality, the 
-*                notification of the MTP printer connection and the
-*				 notification of the MTP printer disconnection. 
-*
-*/
-
-
-#include <e32debug.h>
-#include <usbstates.h>
-#include <rptp.h>
-#include "dpsusbnotifier.h"
-#include "dpsconst.h"
-#include "dpsptpnotifier.h"
-#include "dpsconnectnotifier.h"
-
-#ifdef _DEBUG
-#	define IF_DEBUG(t) {RDebug::t;}
-#else
-#	define IF_DEBUG(t)
-#endif
-
-const TInt KUnknownPersonality = 0;
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-CDpsUsbNotifier* CDpsUsbNotifier::NewL(CDpsEngine* aEngine)
-	{
-	IF_DEBUG(Print(_L("CDpsUsbNotifier::NewL")));
-	CDpsUsbNotifier* self = new(ELeave) CDpsUsbNotifier(aEngine);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop();
-	return self;	
-	}
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-CDpsUsbNotifier::CDpsUsbNotifier(CDpsEngine* aEngine) :
-    CActive(EPriorityNormal), iEngine(aEngine), 
-    iPersonality(KUnknownPersonality), 
-    iConnectState(EUsbDeviceStateUndefined), iConfigured(EFalse), 
-    iConnection(CDpsEngine::ENotConnected), iRollback(EFalse)
-    {
-    IF_DEBUG(Print(_L(">>>CDpsUsbNotifier::Ctor")));
-    CActiveScheduler::Add(this);        
-    IF_DEBUG(Print(_L("<<<CDpsUsbNotifier::Ctor")));
-    }  
-  
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//	
-CDpsUsbNotifier::~CDpsUsbNotifier()
-	{
-	IF_DEBUG(Print(_L(">>>~CDpsUsbNotifier")));
-	Cancel();
-	Rollback();
-    delete iPtpP; iPtpP = NULL;
-    delete iConnectP; iConnectP = NULL;	
-    iUsbM.Close();
-    iUsbW.Close();
-    IF_DEBUG(Print(_L("<<<~CDpsUsbNotifier")));
-	}
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//	
-void CDpsUsbNotifier::ConstructL()
-    {
-    IF_DEBUG(Print(_L(">>>CDpsUsbNotifier::ConstructL")));
-    User::LeaveIfError(iUsbM.Connect());
-    User::LeaveIfError(iUsbW.Connect());
-    iPtpP = CDpsPtpNotifier::NewL(this);
-    iConnectP = CDpsConnectNotifier::NewL(this);
-    IF_DEBUG(Print(_L("<<<CDpsUsbNotifier::ConstructL")));
-    }    
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-void CDpsUsbNotifier::WaitForPrinterNotify()
-    {
-    IF_DEBUG(Print(_L("CDpsUsbNotifier::WaitForPrinterNotify")));
-    iPtpP->ChangePtpPersonality();
-    }
-  
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//  
-void CDpsUsbNotifier::CancelPrinterNotify()
-    {
-    IF_DEBUG(Print(_L(">>>CDpsUsbNotifier::CancelPrinterNotify")));
-    if (CDpsEngine::ENotConnected == iConnection)
-        {
-        iPtpP->Cancel(); 
-        iConfigured = EFalse;    
-        }
-    else if (CDpsEngine::EPrinterConnected == iConnection)
-        {
-        iConnectP->Cancel();
-        }
-    // if the request is replied through RunL before the cancel
-    // iPrinterConnectRequest will be NULL and we don't need to cancel anything
-    if (iEngine->PrinterConnectRequest())
-        {
-	    User::RequestComplete(iEngine->PrinterConnectRequest(), KErrCancel);   
-        }    
-    IF_DEBUG(Print(_L("<<<CDpsUsbNotifier::CancelWaitForPrinterNotify")));
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-void CDpsUsbNotifier::ConnectNotify()
-    {
-    IF_DEBUG(Print(_L(">>>CDpsUsbNotifier::ConnectNotify")));
-    iConnectP->ConnectNotify();
-    IF_DEBUG(Print(_L("<<<CDpsUsbNotifier::ConnectNotify")));
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//	
-void CDpsUsbNotifier::Rollback()
-    {
-    IF_DEBUG(Print(_L(">>>CDpsUsbNotifier::Rollback")));
-    // only when the personality has changed, we switch back to the previous
-    // personality
-    if (iPersonality)
-        {
-        TInt personalityId = KUsbPersonalityIdMTP;
-        iUsbM.GetCurrentPersonalityId(personalityId);
-        IF_DEBUG(Print(_L("CDpsUsbNotifier::Rollback, current personality= %d"), personalityId));
-        if(KUsbPersonalityIdPCSuiteMTP != personalityId)
-            {
-            if (!iConfigured || iRollback)
-                {
-                iUsbW.SetPreviousPersonality();
-                }
-            else
-                {
-                iUsbW.SetPreviousPersonalityOnDisconnect();
-                }
-            }
-        }
-    IF_DEBUG(Print(_L("<<<CDpsUsbNotifier::Rollback")));
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-void CDpsUsbNotifier::PtpNotify(TInt aErr)
-    {
-    IF_DEBUG(Print(_L(">>>CDpsUsbNotifier::PtpNotify %x %d"), 
-        iConnectState, aErr));
-    if (aErr == KErrNone)
-        {
-        // personality changed to MTP, but cable is not connected        
-        if (iConnectState != EUsbDeviceStateUndefined)
-            {
-            if (!IsActive())
-                {
-                iEngine->Ptp().IsDpsPrinter(iStatus);
-                SetActive();    
-                }
-            }
-        else
-            {
-            iConnection = CDpsEngine::ENotConnected;
-            User::RequestComplete(iEngine->PrinterConnectRequest(), iConnection);
-            }    
-        }
-    else
-        {
-        iConnection = CDpsEngine::EWrongPrintModeConnected;
-        User::RequestComplete(iEngine->PrinterConnectRequest(), iConnection); 
-        }
-        	
-    IF_DEBUG(Print(_L("<<<CDpsUsbNotifier::PtpNotify")));        
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//    
-void CDpsUsbNotifier::PersonalityChanged()
-    {
-    IF_DEBUG(Print(_L(">>>CDpsUsbNotifier::PersonalityChanged %x"), 
-                                                              iPersonality));     
-    if (iPersonality != KUsbPersonalityIdMTP)
-        {
-        iConnection = CDpsEngine::EWrongPrintModeConnected;
-        iConfigured = EFalse;
-        if (iEngine->PrinterConnectRequest())
-            {
-            User::RequestComplete(iEngine->PrinterConnectRequest(), 
-                iConnection);     
-            }
-        }
-    // when UI gets this notification, it must quit. As the result, the dps 
-    // engine will be deleted so we do not need to care the further change.
-    
-    IF_DEBUG(Print(_L(">>>CDpsUsbNotifier::PersonalityChanged ")));     
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//    
-void CDpsUsbNotifier::RunL()
-    {
-    IF_DEBUG(Print(_L(">>>CDpsUsbNotifier::RunL")));
-    
-    if (EPrinterAvailable == iStatus.Int())
-        {
-        iConnection = CDpsEngine::EPrinterConnected;
-        iConfigured = ETrue;	
-        iEngine->SetDpsFolder(iEngine->Ptp().PtpFolder());			            
-        }
-    else if (iStatus.Int() != KErrCancel)
-        {
-        iConnection = CDpsEngine::EOtherConnected;
-        }
-    User::RequestComplete(iEngine->PrinterConnectRequest(), iConnection);    
-        
-    IF_DEBUG(Print(_L("<<<CDpsUsbNotifier::RunL")));
-    }
-    
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//       
-void CDpsUsbNotifier::DoCancel()
-    {
-    IF_DEBUG(Print(_L(">>>CDpsUsbNotifier::DoCancel")));
-    iEngine->Ptp().CancelIsDpsPrinter();
-    IF_DEBUG(Print(_L(">>>CDpsUsbNotifier::DoCancel")));
-    }
-    
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//       
-TInt CDpsUsbNotifier::RunError(TInt aErr)
-    {
-    IF_DEBUG(Print(_L("CDpsUsbNotifier::RunError is %d"), aErr));
-    return aErr;
-    }
-    
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//    
-void CDpsUsbNotifier::DisconnectNotify(TUsbDeviceState aState)
-    {
-    IF_DEBUG(Print(_L(">>>CDpsUsbNotifier::DisconnectNotify %d"), aState));
-    if (iConfigured)
-        {
-        iConnection = CDpsEngine::EPrinterDisconnected;
-        }
-    else
-        {
-        iConnection = CDpsEngine::ENotConnected;
-        }
-    iConfigured = EFalse;
-    if (EUsbDeviceStateUndefined == aState)
-        {
-        iRollback = ETrue;
-        }
-    if (iEngine->PrinterConnectRequest())
-        {
-        User::RequestComplete(iEngine->PrinterConnectRequest(), iConnection);    
-        }
-    
-    IF_DEBUG(Print(_L("<<<CDpsUsbNotifier::DisconnectNotify")));
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-TInt CDpsUsbNotifier::ConnectState()
-    {
-    IF_DEBUG(Print(_L(">>>CDpsUsbNotifier::ConnectState")));    
-    TInt ret = iUsbM.GetDeviceState(iConnectState);
-	IF_DEBUG(Print(_L("<<<CDpsUsbNotifier::ConnectState %x"), iConnectState));    
-	return ret;    
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CDpsUsbNotifier::IsSetPrintModeIssued()
-    {
-    return (iPersonality != KUnknownPersonality);
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-TBool CDpsUsbNotifier::IsConfigured() const
-    {
-    return iConfigured;
-    }