connectivitylayer/usbphonetlink/usbpnserver_exe/src/cusbpninterface.cpp
changeset 9 8486d82aef45
parent 8 6295dc2169f3
equal deleted inserted replaced
8:6295dc2169f3 9:8486d82aef45
   152 // (other items were commented in a header).
   152 // (other items were commented in a header).
   153 // -----------------------------------------------------------------------------
   153 // -----------------------------------------------------------------------------
   154 //
   154 //
   155 void CUsbPnInterface::HandleDeviceStateChange( TUint aDeviceState )
   155 void CUsbPnInterface::HandleDeviceStateChange( TUint aDeviceState )
   156     {
   156     {
   157     OstTrace1( TRACE_API, CUSBPNINTERFACE_HANDLEDEVICESTATECHANGE_ENTRY, "CUsbPnInterface::HandleDeviceStateChange;aDeviceState=%u", aDeviceState );
   157     OstTrace1( TRACE_BORDER, CUSBPNINTERFACE_HANDLEDEVICESTATECHANGE_ENTRY, "CUsbPnInterface::HandleDeviceStateChange;aDeviceState=%u", aDeviceState );
   158     A_TRACE( ( _T( "CUsbPnInterface::HandleDeviceStateChange( aDeviceState:%d )"), aDeviceState ));
   158     A_TRACE( ( _T( "CUsbPnInterface::HandleDeviceStateChange( aDeviceState:%d )"), aDeviceState ));
   159 
   159 
   160     if(aDeviceState & KUsbAlternateSetting)
   160     if(aDeviceState & KUsbAlternateSetting)
   161         {
   161         {
   162         OstTrace0( TRACE_API, CUSBPNINTERFACE_HANDLEDEVICESTATECHANGE, "CUsbPnInterface::HandleDeviceStateChange - Change alternate setting" );
   162         OstTrace0( TRACE_BORDER, CUSBPNINTERFACE_HANDLEDEVICESTATECHANGE, "CUsbPnInterface::HandleDeviceStateChange - Change alternate setting" );
   163         A_TRACE( ( _T( "CUsbPnInterface::HandleDeviceStateChange - Change alternate setting")));
   163         A_TRACE( ( _T( "CUsbPnInterface::HandleDeviceStateChange - Change alternate setting")));
   164         TUint altSetNbr( aDeviceState & ~KUsbAlternateSetting );
   164         TUint altSetNbr( aDeviceState & ~KUsbAlternateSetting );
   165 
   165 
   166         SetAltSetting( altSetNbr );
   166         SetAltSetting( altSetNbr );
   167         }
   167         }
   168     else
   168     else
   169         {
   169         {
   170         OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_HANDLEDEVICESTATECHANGE_DUP1, "CUsbPnInterface::HandleDeviceStateChange - Normal state change" );
   170         OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_HANDLEDEVICESTATECHANGE_DUP1, "CUsbPnInterface::HandleDeviceStateChange - Normal state change" );
   171         E_TRACE( ( _T( "CUsbPnInterface::HandleDeviceStateChange - Normal state change")));
   171         E_TRACE( ( _T( "CUsbPnInterface::HandleDeviceStateChange - Normal state change")));
   172         switch( aDeviceState )
   172         switch( aDeviceState )
   173             {
   173             {
   174             case EUsbcDeviceStateUndefined:
   174             case EUsbcDeviceStateUndefined:
   175                 {
   175                 {
   176                 OstTrace0( TRACE_API, CUSBPNINTERFACE_HANDLEDEVICESTATECHANGE_DUP4, "CUsbPnInterface::HandleDeviceStateChange - EUsbcDeviceStateUndefined" );
   176                 OstTrace0( TRACE_BORDER, CUSBPNINTERFACE_HANDLEDEVICESTATECHANGE_DUP4, "CUsbPnInterface::HandleDeviceStateChange - EUsbcDeviceStateUndefined" );
   177                 A_TRACE( ( _T( "CUsbPnInterface::HandleDeviceStateChange - EUsbcDeviceStateUndefined")));
   177                 A_TRACE( ( _T( "CUsbPnInterface::HandleDeviceStateChange - EUsbcDeviceStateUndefined")));
   178                 // Cancel async USB operations
   178                 // Cancel async USB operations
   179                 iUsbReceiver->SetEnumerated( EFalse );
   179                 iUsbReceiver->SetEnumerated( EFalse );
   180                 iUsbReceiver->Cancel();
   180                 iUsbReceiver->Cancel();
   181                 break;
   181                 break;
   182                 }
   182                 }
   183             case EUsbcDeviceStateDefault:
   183             case EUsbcDeviceStateDefault:
   184                 {
   184                 {
   185                 OstTrace0( TRACE_API, CUSBPNINTERFACE_HANDLEDEVICESTATECHANGE_DUP5, "CUsbPnInterface::HandleDeviceStateChange - EUsbcDeviceStateDefault" );
   185                 OstTrace0( TRACE_BORDER, CUSBPNINTERFACE_HANDLEDEVICESTATECHANGE_DUP5, "CUsbPnInterface::HandleDeviceStateChange - EUsbcDeviceStateDefault" );
   186                 A_TRACE( ( _T( "CUsbPnInterface::HandleDeviceStateChange - EUsbcDeviceStateDefault")));
   186                 A_TRACE( ( _T( "CUsbPnInterface::HandleDeviceStateChange - EUsbcDeviceStateDefault")));
   187                 // Cancel async USB operations
   187                 // Cancel async USB operations
   188                 iUsbReceiver->SetEnumerated( EFalse );
   188                 iUsbReceiver->SetEnumerated( EFalse );
   189                 iUsbReceiver->Cancel();
   189                 iUsbReceiver->Cancel();
   190                 break;
   190                 break;
   191                 }
   191                 }
   192             default:
   192             default:
   193                 {
   193                 {
   194                 OstTrace0( TRACE_API, CUSBPNINTERFACE_HANDLEDEVICESTATECHANGE_DUP6, "CUsbPnInterface::HandleDeviceStateChange - State of no interest" );
   194                 OstTrace0( TRACE_BORDER, CUSBPNINTERFACE_HANDLEDEVICESTATECHANGE_DUP6, "CUsbPnInterface::HandleDeviceStateChange - State of no interest" );
   195                 A_TRACE( ( _T( "CUsbPnInterface::HandleDeviceStateChange - State of no interest")));
   195                 A_TRACE( ( _T( "CUsbPnInterface::HandleDeviceStateChange - State of no interest")));
   196                 break;
   196                 break;
   197                 }
   197                 }
   198             }
   198             }
   199         }
   199         }
   200 
   200 
   201     OstTrace0( TRACE_API, CUSBPNINTERFACE_HANDLEDEVICESTATECHANGE_EXIT, "CUsbPnInterface::HandleDeviceStateChange - return void" );
   201     OstTrace0( TRACE_BORDER, CUSBPNINTERFACE_HANDLEDEVICESTATECHANGE_EXIT, "CUsbPnInterface::HandleDeviceStateChange - return void" );
   202     A_TRACE( ( _T( "CUsbPnInterface::HandleDeviceStateChange() - return void")));
   202     A_TRACE( ( _T( "CUsbPnInterface::HandleDeviceStateChange() - return void")));
   203     }
   203     }
   204 
   204 
   205 // -----------------------------------------------------------------------------
   205 // -----------------------------------------------------------------------------
   206 // CUsbPnInterface::SetAltSetting
   206 // CUsbPnInterface::SetAltSetting
   208 // (other items were commented in a header).
   208 // (other items were commented in a header).
   209 // -----------------------------------------------------------------------------
   209 // -----------------------------------------------------------------------------
   210 //
   210 //
   211 void CUsbPnInterface::SetAltSetting( TUint aAltSetNumber )
   211 void CUsbPnInterface::SetAltSetting( TUint aAltSetNumber )
   212     {
   212     {
   213     OstTrace1( TRACE_API, CUSBPNINTERFACE_SETALTSETTING_ENTRY, "CUsbPnInterface::SetAltSetting;aAltSetNumber=%u", aAltSetNumber );
   213     OstTrace1( TRACE_BORDER, CUSBPNINTERFACE_SETALTSETTING_ENTRY, "CUsbPnInterface::SetAltSetting;aAltSetNumber=%u", aAltSetNumber );
   214     A_TRACE( ( _T( "CUsbPnInterface::SetAltSetting( aAltSetNumber:%d )" ), aAltSetNumber ) );
   214     A_TRACE( ( _T( "CUsbPnInterface::SetAltSetting( aAltSetNumber:%d )" ), aAltSetNumber ) );
   215 
   215 
   216     if( aAltSetNumber )
   216     if( aAltSetNumber )
   217         {
   217         {
   218         // Receive from ISA with forwarding
   218         // Receive from ISA with forwarding
   228 
   228 
   229         iUsbReceiver->SetEnumerated( EFalse );
   229         iUsbReceiver->SetEnumerated( EFalse );
   230         iUsbReceiver->Cancel();
   230         iUsbReceiver->Cancel();
   231         }
   231         }
   232 
   232 
   233     OstTrace0( TRACE_API, CUSBPNINTERFACE_SETALTSETTING_EXIT, "CUsbPnInterface::SetAltSetting - return void" );
   233     OstTrace0( TRACE_BORDER, CUSBPNINTERFACE_SETALTSETTING_EXIT, "CUsbPnInterface::SetAltSetting - return void" );
   234     A_TRACE( ( _T( "CUsbPnInterface::SetAltSetting() - return void")));
   234     A_TRACE( ( _T( "CUsbPnInterface::SetAltSetting() - return void")));
   235     }
   235     }
   236 
   236 
   237 // -----------------------------------------------------------------------------
   237 // -----------------------------------------------------------------------------
   238 // CUsbPnInterface::InitialiseInterfaceL
   238 // CUsbPnInterface::InitialiseInterfaceL
   240 // (other items were commented in a header).
   240 // (other items were commented in a header).
   241 // -----------------------------------------------------------------------------
   241 // -----------------------------------------------------------------------------
   242 //
   242 //
   243 void CUsbPnInterface::InitialiseInterfaceL()
   243 void CUsbPnInterface::InitialiseInterfaceL()
   244     {
   244     {
   245     OstTrace0( TRACE_API, CUSBPNINTERFACE_INITIALISEINTERFACEL_ENTRY, "CUsbPnInterface::InitialiseInterfaceL" );
   245     OstTrace0( TRACE_BORDER, CUSBPNINTERFACE_INITIALISEINTERFACEL_ENTRY, "CUsbPnInterface::InitialiseInterfaceL" );
   246     A_TRACE( ( _T( "CUsbPnInterface::InitialiseInterfaceL()" ) ) );
   246     A_TRACE( ( _T( "CUsbPnInterface::InitialiseInterfaceL()" ) ) );
   247 
   247 
   248     TInt ret = iCommLdd.Open(0);
   248     TInt ret = iCommLdd.Open(0);
   249     if (ret != KErrNone)
   249     if (ret != KErrNone)
   250         {
   250         {
   251         // Maybe the device is not loaded yet.
   251         // Maybe the device is not loaded yet.
   252         _LIT(KUsbLDDName, "eusbc");
   252         _LIT(KUsbLDDName, "eusbc");
   253         ret = User::LoadLogicalDevice( KUsbLDDName );
   253         ret = User::LoadLogicalDevice( KUsbLDDName );
   254 
   254 
   255         OstTrace1( TRACE_DETAILED, DUP100_CUSBPNINTERFACE_INITIALISEINTERFACEL, "CUsbPnInterface::InitialiseInterfaceL - Tried loading the device with status %d", ret );
   255         OstTrace1( TRACE_INTERNALS, DUP100_CUSBPNINTERFACE_INITIALISEINTERFACEL, "CUsbPnInterface::InitialiseInterfaceL - Tried loading the device with status %d", ret );
   256         E_TRACE( ( _T("CUsbPnInterface::InitialiseInterfaceL - Tried loading the device with status %d"), ret ) );
   256         E_TRACE( ( _T("CUsbPnInterface::InitialiseInterfaceL - Tried loading the device with status %d"), ret ) );
   257 
   257 
   258         if (ret == KErrNone || ret == KErrAlreadyExists)
   258         if (ret == KErrNone || ret == KErrAlreadyExists)
   259             {
   259             {
   260             ret = iCommLdd.Open(0);
   260             ret = iCommLdd.Open(0);
   261             }
   261             }
   262 
   262 
   263         if (ret != KErrNone)
   263         if (ret != KErrNone)
   264             {
   264             {
   265             OstTrace1( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Cannot open Comm LDD %d", ret );
   265             OstTrace1( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Cannot open Comm LDD %d", ret );
   266             E_TRACE( ( _T( "USBPN - Cannot open Comm LDD %d" ), ret ) );
   266             E_TRACE( ( _T( "USBPN - Cannot open Comm LDD %d" ), ret ) );
   267             User::Leave( KErrNotReady );
   267             User::Leave( KErrNotReady );
   268             }
   268             }
   269         }
   269         }
   270 
   270 
   271     ret = iPnDataLdd.Open(0);
   271     ret = iPnDataLdd.Open(0);
   272     if (ret != KErrNone)
   272     if (ret != KErrNone)
   273         {
   273         {
   274         OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP1, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Cannot open PnData LDD" );
   274         OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP1, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Cannot open PnData LDD" );
   275         E_TRACE( ( _T( "USBPN - Cannot open PnData LDD" ) ) );
   275         E_TRACE( ( _T( "USBPN - Cannot open PnData LDD" ) ) );
   276         User::Leave( KErrNotReady );
   276         User::Leave( KErrNotReady );
   277         }
   277         }
   278 
   278 
   279 
   279 
   280 //////////////////////////////////////////////////////////////////////
   280 //////////////////////////////////////////////////////////////////////
   281 // Comm interface
   281 // Comm interface
   282 //////////////////////////////////////////////////////////////////////
   282 //////////////////////////////////////////////////////////////////////
   283 
   283 
   284     OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP2, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Setup Comm interface" );
   284     OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP2, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Setup Comm interface" );
   285     E_TRACE( ( _T( "USBPN - Setup Comm interface" ) ) );
   285     E_TRACE( ( _T( "USBPN - Setup Comm interface" ) ) );
   286 
   286 
   287     TUsbcInterfaceInfoBuf ifc;
   287     TUsbcInterfaceInfoBuf ifc;
   288 
   288 
   289     ifc().iString = const_cast<TDesC16*> (&KUsbPnCommIfc);
   289     ifc().iString = const_cast<TDesC16*> (&KUsbPnCommIfc);
   290     ifc().iTotalEndpointsUsed = 0;
   290     ifc().iTotalEndpointsUsed = 0;
   291     ifc().iClass.iClassNum    = KCommInterfaceClass;
   291     ifc().iClass.iClassNum    = KCommInterfaceClass;
   292     ifc().iClass.iSubClassNum = KCommInterfaceSubClass;
   292     ifc().iClass.iSubClassNum = KCommInterfaceSubClass;
   293     ifc().iClass.iProtocolNum = KCommInterfaceProtocol;
   293     ifc().iClass.iProtocolNum = KCommInterfaceProtocol;
   294 
   294 
   295     OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP3, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Call SetInterface 0" );
   295     OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP3, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Call SetInterface 0" );
   296     E_TRACE( ( _T( "USBPN - Call SetInterface 0" ) ) );
   296     E_TRACE( ( _T( "USBPN - Call SetInterface 0" ) ) );
   297 
   297 
   298     ret = iCommLdd.SetInterface(0, ifc);
   298     ret = iCommLdd.SetInterface(0, ifc);
   299     if (ret != KErrNone)
   299     if (ret != KErrNone)
   300         {
   300         {
   336     desc.Append(KVendorDMAFDDescriptorLength);
   336     desc.Append(KVendorDMAFDDescriptorLength);
   337     desc.Append(KUsbDescType_CS_Interface);
   337     desc.Append(KUsbDescType_CS_Interface);
   338     desc.Append(KVendorDMADescriptorSubType);
   338     desc.Append(KVendorDMADescriptorSubType);
   339     desc.Append(KDmaCapabilities);      // Is zero. Meaning interface is DMA incapable
   339     desc.Append(KDmaCapabilities);      // Is zero. Meaning interface is DMA incapable
   340 
   340 
   341     OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP4, "CUsbPnInterface::InitialiseInterfaceL - USBPN - SetCSInterfaceDescriptorBlock" );
   341     OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP4, "CUsbPnInterface::InitialiseInterfaceL - USBPN - SetCSInterfaceDescriptorBlock" );
   342     E_TRACE( ( _T( "USBPN - SetCSInterfaceDescriptorBlock" ) ) );
   342     E_TRACE( ( _T( "USBPN - SetCSInterfaceDescriptorBlock" ) ) );
   343     ret = iCommLdd.SetCSInterfaceDescriptorBlock(0, desc);
   343     ret = iCommLdd.SetCSInterfaceDescriptorBlock(0, desc);
   344 
   344 
   345     CleanupStack::PopAndDestroy( descBuf );
   345     CleanupStack::PopAndDestroy( descBuf );
   346 
   346 
   353 
   353 
   354 //////////////////////////////////////////////////////////////////////
   354 //////////////////////////////////////////////////////////////////////
   355 // PHONET data interface alt 0
   355 // PHONET data interface alt 0
   356 //////////////////////////////////////////////////////////////////////
   356 //////////////////////////////////////////////////////////////////////
   357 
   357 
   358     OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP5, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Register PHONET Data IF (alt 0)" );
   358     OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP5, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Register PHONET Data IF (alt 0)" );
   359     E_TRACE( ( _T( "USBPN - Register PHONET Data IF (alt 0)" ) ) );
   359     E_TRACE( ( _T( "USBPN - Register PHONET Data IF (alt 0)" ) ) );
   360     TUsbcInterfaceInfoBuf dataifc;
   360     TUsbcInterfaceInfoBuf dataifc;
   361 
   361 
   362     dataifc().iString = const_cast<TDesC16*> (&KUsbPnDataAlt0Ifc);
   362     dataifc().iString = const_cast<TDesC16*> (&KUsbPnDataAlt0Ifc);
   363     dataifc().iClass.iClassNum = KDataInterfaceClass;
   363     dataifc().iClass.iClassNum = KDataInterfaceClass;
   364     dataifc().iClass.iSubClassNum = KDataInterfaceSubClass;
   364     dataifc().iClass.iSubClassNum = KDataInterfaceSubClass;
   365     dataifc().iClass.iProtocolNum = KDataInterfaceProtocol;
   365     dataifc().iClass.iProtocolNum = KDataInterfaceProtocol;
   366     dataifc().iTotalEndpointsUsed = 0;
   366     dataifc().iTotalEndpointsUsed = 0;
   367 
   367 
   368     OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP6, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Setup PHONET Data IF (alt 0)" );
   368     OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP6, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Setup PHONET Data IF (alt 0)" );
   369     E_TRACE( ( _T( "USBPN - Setup PHONET Data IF (alt 0)" ) ) );
   369     E_TRACE( ( _T( "USBPN - Setup PHONET Data IF (alt 0)" ) ) );
   370 
   370 
   371     ret = iPnDataLdd.SetInterface(0, dataifc);
   371     ret = iPnDataLdd.SetInterface(0, dataifc);
   372     if (ret != KErrNone)
   372     if (ret != KErrNone)
   373         {
   373         {
   379 
   379 
   380 //////////////////////////////////////////////////////////////////////
   380 //////////////////////////////////////////////////////////////////////
   381 // data interface alt 1
   381 // data interface alt 1
   382 //////////////////////////////////////////////////////////////////////
   382 //////////////////////////////////////////////////////////////////////
   383 
   383 
   384     OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP7, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Register PHONET Data IF (alt 1)" );
   384     OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP7, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Register PHONET Data IF (alt 1)" );
   385     E_TRACE( ( _T( "USBPN - Register PHONET Data IF (alt 1)" ) ) );
   385     E_TRACE( ( _T( "USBPN - Register PHONET Data IF (alt 1)" ) ) );
   386     //Register Data Interface 1
   386     //Register Data Interface 1
   387     TUsbcInterfaceInfoBuf dataifc1;
   387     TUsbcInterfaceInfoBuf dataifc1;
   388     // Fill in dataifc1
   388     // Fill in dataifc1
   389     dataifc1().iString = const_cast<TDesC16*> (&KUsbPnDataAlt1Ifc);;
   389     dataifc1().iString = const_cast<TDesC16*> (&KUsbPnDataAlt1Ifc);;
   392     dataifc1().iClass.iProtocolNum = KDataInterfaceProtocol;
   392     dataifc1().iClass.iProtocolNum = KDataInterfaceProtocol;
   393     dataifc1().iTotalEndpointsUsed = KUsbPnRequiredNumberOfEndpoints;
   393     dataifc1().iTotalEndpointsUsed = KUsbPnRequiredNumberOfEndpoints;
   394 
   394 
   395     TUsbDeviceCaps dCaps1;
   395     TUsbDeviceCaps dCaps1;
   396     ret = iPnDataLdd.DeviceCaps(dCaps1);
   396     ret = iPnDataLdd.DeviceCaps(dCaps1);
   397     OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP8, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Checking result of DeviceCaps" );
   397     OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP8, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Checking result of DeviceCaps" );
   398     E_TRACE( ( _T( "USBPN - Checking result of DeviceCaps" ) ) );
   398     E_TRACE( ( _T( "USBPN - Checking result of DeviceCaps" ) ) );
   399     if ( ret )
   399     if ( ret )
   400         {
   400         {
   401         TRACE_ASSERT_ALWAYS;
   401         TRACE_ASSERT_ALWAYS;
   402         User::Leave( ret );
   402         User::Leave( ret );
   403         }
   403         }
   404 
   404 
   405     const TUint totalEndpoints1 = static_cast<TUint>(dCaps1().iTotalEndpoints);
   405     const TUint totalEndpoints1 = static_cast<TUint>(dCaps1().iTotalEndpoints);
   406     OstTrace1( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP9, "CUsbPnInterface::InitialiseInterfaceL - USBPN - TotalEndpoints1=%d", totalEndpoints1 );
   406     OstTrace1( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP9, "CUsbPnInterface::InitialiseInterfaceL - USBPN - TotalEndpoints1=%d", totalEndpoints1 );
   407     E_TRACE( ( _T( "USBPN - TotalEndpoints1 %d" ), totalEndpoints1 ) );
   407     E_TRACE( ( _T( "USBPN - TotalEndpoints1 %d" ), totalEndpoints1 ) );
   408     if (totalEndpoints1 < KUsbPnRequiredNumberOfEndpoints)
   408     if (totalEndpoints1 < KUsbPnRequiredNumberOfEndpoints)
   409         {
   409         {
   410         TRACE_ASSERT_ALWAYS;
   410         TRACE_ASSERT_ALWAYS;
   411         User::Leave( KErrGeneral );
   411         User::Leave( KErrGeneral );
   413 
   413 
   414 
   414 
   415     TUsbcEndpointData data1[KUsbcMaxEndpoints];
   415     TUsbcEndpointData data1[KUsbcMaxEndpoints];
   416     TPtr8 dataptr1 = TPtr8(reinterpret_cast<TUint8*>(data1), sizeof(data1), sizeof(data1));
   416     TPtr8 dataptr1 = TPtr8(reinterpret_cast<TUint8*>(data1), sizeof(data1), sizeof(data1));
   417     ret = iPnDataLdd.EndpointCaps(dataptr1);
   417     ret = iPnDataLdd.EndpointCaps(dataptr1);
   418     OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP10, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Checking result of EndpointCaps" );
   418     OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP10, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Checking result of EndpointCaps" );
   419     E_TRACE( ( _T( "USBPN - Checking result of EndpointCaps" ) ) );
   419     E_TRACE( ( _T( "USBPN - Checking result of EndpointCaps" ) ) );
   420     if (ret)
   420     if (ret)
   421         {
   421         {
   422         TRACE_ASSERT_ALWAYS;
   422         TRACE_ASSERT_ALWAYS;
   423         User::Leave( ret );
   423         User::Leave( ret );
   427     TBool outFound = EFalse;
   427     TBool outFound = EFalse;
   428     TBool inFound = EFalse;
   428     TBool inFound = EFalse;
   429 
   429 
   430     for (TUint ii = 0 ; ii < totalEndpoints1; ii++)
   430     for (TUint ii = 0 ; ii < totalEndpoints1; ii++)
   431         {
   431         {
   432         OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP11, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Set data interface 1" );
   432         OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP11, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Set data interface 1" );
   433         E_TRACE( ( _T( "USBPN - Set data interface 1" ) ) );
   433         E_TRACE( ( _T( "USBPN - Set data interface 1" ) ) );
   434         const TUsbcEndpointCaps* caps;
   434         const TUsbcEndpointCaps* caps;
   435         caps = &data1[ii].iCaps;
   435         caps = &data1[ii].iCaps;
   436 
   436 
   437         OstTraceExt2( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP12, "CUsbPnInterface::InitialiseInterfaceL - USBPN - iTypesAndDir=%d, epSize=%d", caps->iTypesAndDir, caps->MaxPacketSize() );
   437         OstTraceExt2( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP12, "CUsbPnInterface::InitialiseInterfaceL - USBPN - iTypesAndDir=%d, epSize=%d", caps->iTypesAndDir, caps->MaxPacketSize() );
   438         E_TRACE( ( _T( "USBPN - iTypesAndDir %d, epSize:%d" ), caps->iTypesAndDir, caps->MaxPacketSize() ) );
   438         E_TRACE( ( _T( "USBPN - iTypesAndDir %d, epSize:%d" ), caps->iTypesAndDir, caps->MaxPacketSize() ) );
   439 
   439 
   440 #ifdef EXTENDED_TRACE_FLAG
   440 #ifdef EXTENDED_TRACE_FLAG
   441         if(((caps->iTypesAndDir & (KUsbEpDirIn)) == (KUsbEpDirIn) ) )
   441         if(((caps->iTypesAndDir & (KUsbEpDirIn)) == (KUsbEpDirIn) ) )
   442             {
   442             {
   443             OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP13, "CUsbPnInterface::InitialiseInterfaceL - USBPN - IN" );
   443             OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP13, "CUsbPnInterface::InitialiseInterfaceL - USBPN - IN" );
   444             E_TRACE( ( _T( "USBPN - IN" )));
   444             E_TRACE( ( _T( "USBPN - IN" )));
   445             }
   445             }
   446         if(((caps->iTypesAndDir & (KUsbEpDirOut)) == (KUsbEpDirOut) ) )
   446         if(((caps->iTypesAndDir & (KUsbEpDirOut)) == (KUsbEpDirOut) ) )
   447             {
   447             {
   448             OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP14, "CUsbPnInterface::InitialiseInterfaceL - USBPN - OUT" );
   448             OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP14, "CUsbPnInterface::InitialiseInterfaceL - USBPN - OUT" );
   449             E_TRACE( ( _T( "USBPN - OUT" )));
   449             E_TRACE( ( _T( "USBPN - OUT" )));
   450             }
   450             }
   451         if(((caps->iTypesAndDir & (KUsbEpTypeBulk)) == (KUsbEpTypeBulk)))
   451         if(((caps->iTypesAndDir & (KUsbEpTypeBulk)) == (KUsbEpTypeBulk)))
   452             {
   452             {
   453             OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP15, "CUsbPnInterface::InitialiseInterfaceL - USBPN - BULK" );
   453             OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP15, "CUsbPnInterface::InitialiseInterfaceL - USBPN - BULK" );
   454             E_TRACE( ( _T( "USBPN - BULK" )));
   454             E_TRACE( ( _T( "USBPN - BULK" )));
   455             }
   455             }
   456 #endif // EXTENDED_TRACE_FLAG
   456 #endif // EXTENDED_TRACE_FLAG
   457 
   457 
   458         if(data1[ii].iInUse)
   458         if(data1[ii].iInUse)
   459             {
   459             {
   460             OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP16, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Ep in use. Next..." );
   460             OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP16, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Ep in use. Next..." );
   461             E_TRACE( ( _T( "USBPN - Ep in use. Next...")));
   461             E_TRACE( ( _T( "USBPN - Ep in use. Next...")));
   462             continue;
   462             continue;
   463             }
   463             }
   464 
   464 
   465         //changes to bulk in ep
   465         //changes to bulk in ep
   466         if (((caps->iTypesAndDir & (KUsbEpTypeBulk | KUsbEpDirIn)) ==
   466         if (((caps->iTypesAndDir & (KUsbEpTypeBulk | KUsbEpDirIn)) ==
   467             (KUsbEpTypeBulk | KUsbEpDirIn)) && !inFound)
   467             (KUsbEpTypeBulk | KUsbEpDirIn)) && !inFound)
   468             {
   468             {
   469             OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP17, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Bulk IN found for EEndpoint1" );
   469             OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP17, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Bulk IN found for EEndpoint1" );
   470             E_TRACE( ( _T( "USBPN - Bulk IN found for EEndpoint1" ) ) );
   470             E_TRACE( ( _T( "USBPN - Bulk IN found for EEndpoint1" ) ) );
   471             // EEndpoint1 is bulk in endpoint
   471             // EEndpoint1 is bulk in endpoint
   472             dataifc1().iEndpointData[0].iType       = KUsbEpTypeBulk;
   472             dataifc1().iEndpointData[0].iType       = KUsbEpTypeBulk;
   473             dataifc1().iEndpointData[0].iDir        = KUsbEpDirIn;
   473             dataifc1().iEndpointData[0].iDir        = KUsbEpDirIn;
   474             //dataifc1().iEndpointData[0].iInterval   = 0;
   474             //dataifc1().iEndpointData[0].iInterval   = 0;
   477             inFound = ETrue;
   477             inFound = ETrue;
   478             }
   478             }
   479         else if (((caps->iTypesAndDir & (KUsbEpTypeBulk | KUsbEpDirOut)) ==
   479         else if (((caps->iTypesAndDir & (KUsbEpTypeBulk | KUsbEpDirOut)) ==
   480             (KUsbEpTypeBulk | KUsbEpDirOut)) && !outFound)
   480             (KUsbEpTypeBulk | KUsbEpDirOut)) && !outFound)
   481             {
   481             {
   482             OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP18, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Bulk OUT found for EEndpoint2" );
   482             OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP18, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Bulk OUT found for EEndpoint2" );
   483             E_TRACE( ( _T( "USBPN - Bulk OUT found for EEndpoint2" ) ) );
   483             E_TRACE( ( _T( "USBPN - Bulk OUT found for EEndpoint2" ) ) );
   484             // EEndpoint2 is bulk out endpoint
   484             // EEndpoint2 is bulk out endpoint
   485             dataifc1().iEndpointData[1].iType       = KUsbEpTypeBulk;
   485             dataifc1().iEndpointData[1].iType       = KUsbEpTypeBulk;
   486             dataifc1().iEndpointData[1].iDir        = KUsbEpDirOut;
   486             dataifc1().iEndpointData[1].iDir        = KUsbEpDirOut;
   487             //dataifc1().iEndpointData[1].iInterval   = 0;
   487             //dataifc1().iEndpointData[1].iInterval   = 0;
   493         if (outFound && inFound)
   493         if (outFound && inFound)
   494             {
   494             {
   495             break;
   495             break;
   496             }
   496             }
   497         } // end for ( ... )
   497         } // end for ( ... )
   498     OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP19, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Checking epFound" );
   498     OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP19, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Checking epFound" );
   499     E_TRACE( ( _T( "USBPN - Checking epFound" ) ) );
   499     E_TRACE( ( _T( "USBPN - Checking epFound" ) ) );
   500     if (!outFound || !inFound )
   500     if (!outFound || !inFound )
   501         {
   501         {
   502         TRACE_ASSERT_ALWAYS;
   502         TRACE_ASSERT_ALWAYS;
   503         User::Leave( KErrGeneral );
   503         User::Leave( KErrGeneral );
   504         }
   504         }
   505 
   505 
   506     OstTrace0( TRACE_DETAILED, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP20, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Setting LCIF Data IF (alt 1)" );
   506     OstTrace0( TRACE_INTERNALS, CUSBPNINTERFACE_INITIALISEINTERFACEL_DUP20, "CUsbPnInterface::InitialiseInterfaceL - USBPN - Setting LCIF Data IF (alt 1)" );
   507     E_TRACE( ( _T( "USBPN - Setting LCIF Data IF (alt 1)" ) ) );
   507     E_TRACE( ( _T( "USBPN - Setting LCIF Data IF (alt 1)" ) ) );
   508 
   508 
   509     ret = iPnDataLdd.SetInterface(1, dataifc1);
   509     ret = iPnDataLdd.SetInterface(1, dataifc1);
   510     if (ret != KErrNone)
   510     if (ret != KErrNone)
   511         {
   511         {
   525 // Release and close all LDD in reverse order as in setup
   525 // Release and close all LDD in reverse order as in setup
   526 // -----------------------------------------------------------------------------
   526 // -----------------------------------------------------------------------------
   527 //
   527 //
   528 EXPORT_C void CUsbPnInterface::ReleaseInterface()
   528 EXPORT_C void CUsbPnInterface::ReleaseInterface()
   529     {
   529     {
   530     OstTrace0( TRACE_API, CUSBPNINTERFACE_RELEASEINTERFACE_ENTRY, "CUsbPnInterface::ReleaseInterface" );
   530     OstTrace0( TRACE_BORDER, CUSBPNINTERFACE_RELEASEINTERFACE_ENTRY, "CUsbPnInterface::ReleaseInterface" );
   531     A_TRACE( ( _T( "CUsbPnInterface::ReleaseInterface()" ) ) );
   531     A_TRACE( ( _T( "CUsbPnInterface::ReleaseInterface()" ) ) );
   532 
   532 
   533     iAlt->Cancel();
   533     iAlt->Cancel();
   534 
   534 
   535     TInt ret;
   535     TInt ret;