mpxplugins/viewplugins/views/upnpplaybackdialog/src/mpxupnpplaybackdialog.cpp
branchRCL_3
changeset 15 a1247965635c
parent 5 2a40e88564c8
equal deleted inserted replaced
14:c54d95799c80 15:a1247965635c
   315     {
   315     {
   316     MPX_FUNC( "CMPXUPnPPlaybackDialog::UpdateViewL" );
   316     MPX_FUNC( "CMPXUPnPPlaybackDialog::UpdateViewL" );
   317 
   317 
   318     if ( GetUPnPPlaybackDialogCustomControl() && !iSwitchingView )
   318     if ( GetUPnPPlaybackDialogCustomControl() && !iSwitchingView )
   319         {
   319         {
   320         UpdatePlaybackState( iPlaybackState );
   320         UpdatePlaybackStateL( iPlaybackState );
   321         UpdateTrackInfoL( iMedia );
   321         UpdateTrackInfoL( iMedia );
   322         UpdateTrackPlaybackPositionL( iPosition, iDuration );
   322         UpdateTrackPlaybackPositionL( iPosition, iDuration );
   323         UpdateTrackPosInPlaylistL();
   323         UpdateTrackPosInPlaylistL();
   324         UpdateAlbumArtL( iMedia );
   324         UpdateAlbumArtL( iMedia );
   325         UpdateDownloadStateLabelL();
   325         UpdateDownloadStateLabelL();
   432 
   432 
   433 // ---------------------------------------------------------------------------
   433 // ---------------------------------------------------------------------------
   434 // Update current playback state.
   434 // Update current playback state.
   435 // ---------------------------------------------------------------------------
   435 // ---------------------------------------------------------------------------
   436 //
   436 //
   437 void CMPXUPnPPlaybackDialog::UpdatePlaybackState(
   437 void CMPXUPnPPlaybackDialog::UpdatePlaybackStateL(
   438     TMPXPlaybackState aPlaybackState )
   438     TMPXPlaybackState aPlaybackState )
   439     {
   439     {
   440     MPX_FUNC( "CMPXUPnPPlaybackDialog::UpdatePlaybackState()" );
   440     MPX_FUNC( "CMPXUPnPPlaybackDialog::UpdatePlaybackStateL()" );
   441     MPX_DEBUG2("CMPXUPnPPlaybackDialog::UpdatePlaybackState(%d): Entering", aPlaybackState);
   441     MPX_DEBUG2("CMPXUPnPPlaybackDialog::UpdatePlaybackStateL(%d): Entering", aPlaybackState);
   442 
   442 
   443     if ( GetUPnPPlaybackDialogCustomControl() && !iSwitchingView )
   443     if ( GetUPnPPlaybackDialogCustomControl() && !iSwitchingView )
   444         {
   444         {
   445         TMPXPbvPlaybackMode mode( EInvalidMode );
   445         TMPXPbvPlaybackMode mode( EInvalidMode );
   446 
   446 
   484             iPlaybackState = aPlaybackState;
   484             iPlaybackState = aPlaybackState;
   485             GetUPnPPlaybackDialogCustomControl()->SetMode( mode );
   485             GetUPnPPlaybackDialogCustomControl()->SetMode( mode );
   486             }
   486             }
   487 
   487 
   488         GetUPnPPlaybackDialogCustomControl()->UpdateButtons( aPlaybackState );
   488         GetUPnPPlaybackDialogCustomControl()->UpdateButtons( aPlaybackState );
   489         UpdateToolbar();
   489         UpdateToolbarL();
   490         }
   490         }
   491     else
   491     else
   492         {
   492         {
   493         // If no container, just need to update state
   493         // If no container, just need to update state
   494         switch ( aPlaybackState )
   494         switch ( aPlaybackState )
  1114                 }
  1114                 }
  1115             }
  1115             }
  1116         }
  1116         }
  1117     else
  1117     else
  1118         {
  1118         {
  1119         UpdatePlaybackState( aState );
  1119         UpdatePlaybackStateL( aState );
  1120 
  1120 
  1121         switch ( aState )
  1121         switch ( aState )
  1122             {
  1122             {
  1123             case EPbStateStopped:
  1123             case EPbStateStopped:
  1124                 {
  1124                 {
  1336 void CMPXUPnPPlaybackDialog::HandleAllTracksInvalidL()
  1336 void CMPXUPnPPlaybackDialog::HandleAllTracksInvalidL()
  1337     {
  1337     {
  1338     MPX_FUNC( "CMPXUPnPPlaybackDialog::HandleAllTracksInvalidL()" );
  1338     MPX_FUNC( "CMPXUPnPPlaybackDialog::HandleAllTracksInvalidL()" );
  1339 
  1339 
  1340     iPlaybackUtility->CommandL( EPbCmdStop );
  1340     iPlaybackUtility->CommandL( EPbCmdStop );
  1341     UpdatePlaybackState( EPbStateStopped );
  1341     UpdatePlaybackStateL( EPbStateStopped );
  1342 
  1342 
  1343     // Do not display error if view is not active
  1343     // Do not display error if view is not active
  1344     if ( GetUPnPPlaybackDialogCustomControl() )
  1344     if ( GetUPnPPlaybackDialogCustomControl() )
  1345         {
  1345         {
  1346         iCommonUiHelper->HandleErrorL( KMPXAllTracksInvalid, iMedia );
  1346         iCommonUiHelper->HandleErrorL( KMPXAllTracksInvalid, iMedia );
  1918     if ( ( iPlaybackState == EPbStateInitialising ) ||
  1918     if ( ( iPlaybackState == EPbStateInitialising ) ||
  1919          ( iPlaybackState == EPbStateDownloading ) )
  1919          ( iPlaybackState == EPbStateDownloading ) )
  1920         {
  1920         {
  1921         delete iMedia;
  1921         delete iMedia;
  1922         iMedia = NULL;
  1922         iMedia = NULL;
  1923         UpdatePlaybackState( iPlaybackState );
  1923         UpdatePlaybackStateL( iPlaybackState );
  1924         UpdateTrackInfoL( iMedia );
  1924         UpdateTrackInfoL( iMedia );
  1925         }
  1925         }
  1926     else if ( iMedia == NULL )
  1926     else if ( iMedia == NULL )
  1927         {
  1927         {
  1928         MMPXSource* s = iPlaybackUtility->Source();
  1928         MMPXSource* s = iPlaybackUtility->Source();
  1933                 {
  1933                 {
  1934                 CleanupStack::PushL( playlist );
  1934                 CleanupStack::PushL( playlist );
  1935                 if ( playlist->Count() > 0 )
  1935                 if ( playlist->Count() > 0 )
  1936                     {
  1936                     {
  1937                     RequestMediaL();
  1937                     RequestMediaL();
  1938                     UpdatePlaybackState( iPlaybackState );
  1938                     UpdatePlaybackStateL( iPlaybackState );
  1939                     }
  1939                     }
  1940                 else
  1940                 else
  1941                     {
  1941                     {
  1942                     // playlist count is 0, no tracks
  1942                     // playlist count is 0, no tracks
  1943                     iPlaybackState = EPbStateNotInitialised;
  1943                     iPlaybackState = EPbStateNotInitialised;
  2142 
  2142 
  2143     switch ( aCommand )
  2143     switch ( aCommand )
  2144         {
  2144         {
  2145         case EPbCmdSetVolume:
  2145         case EPbCmdSetVolume:
  2146             {
  2146             {
  2147     		TMPXPlaybackState playerState( iPlaybackUtility->StateL() );
  2147                     MPX_TRAPD( err,
  2148             if ( iAvkonAppUi->IsForeground() || playerState == EPbStatePlaying )
  2148                     TMPXPlaybackState playerState( iPlaybackUtility->StateL() );
  2149                 {
  2149                     if ( iAvkonAppUi->IsForeground() || playerState == EPbStatePlaying )
  2150 				if ( aData != iCurrentVolume )
  2150                         {
  2151 					{
  2151                         if ( aData != iCurrentVolume )
  2152 					SetVolume( aData );
  2152                             {
  2153 					}
  2153                             SetVolumeL( aData );
  2154 				// popup volume control even if volume didn't change
  2154                             }
  2155 				HandlePopupL( EPbCmdSetVolume );
  2155                         // popup volume control even if volume didn't change
  2156 				}
  2156                         HandlePopupL( EPbCmdSetVolume );
  2157             break;
  2157                         }
       
  2158                     );
       
  2159                     if( err != KErrNone )
       
  2160                     	{
       
  2161                         MPX_DEBUG2( "CMPXUPnPPlaybackDialog::HandleMediaKeyCommand EPbCmdSetVolume leave err%d", err ); 
       
  2162                     	}
       
  2163                     break;
  2158             }
  2164             }
  2159         case EPbCmdMuteVolume:
  2165         case EPbCmdMuteVolume:
  2160             {
  2166                     {
  2161     		TMPXPlaybackState playerState( iPlaybackUtility->StateL() );
  2167                     MPX_TRAPD( err, 
  2162             if ( iAvkonAppUi->IsForeground() || playerState == EPbStatePlaying )
  2168                     TMPXPlaybackState playerState( iPlaybackUtility->StateL() );
  2163                 {
  2169                     if ( iAvkonAppUi->IsForeground() || playerState == EPbStatePlaying )
  2164 				MuteVolume();
  2170                         {
  2165 				HandlePopupL( EPbCmdMuteVolume );
  2171                         MuteVolumeL();
  2166 				}
  2172                         HandlePopupL( EPbCmdMuteVolume );
  2167             break;
  2173                         }
       
  2174                     );
       
  2175                     if( err != KErrNone )
       
  2176                     	{
       
  2177                         MPX_DEBUG2( "CMPXUPnPPlaybackDialog::HandleMediaKeyCommand EPbCmdMuteVolume leave err%d", err ); 
       
  2178                     	}
       
  2179                     break;
  2168             }
  2180             }
  2169         case EPbCmdUnMuteVolume:
  2181         case EPbCmdUnMuteVolume:
  2170             {
  2182                     {
  2171     		TMPXPlaybackState playerState( iPlaybackUtility->StateL() );
  2183                     MPX_TRAPD( err,
  2172             if ( iAvkonAppUi->IsForeground() || playerState == EPbStatePlaying )
  2184                     TMPXPlaybackState playerState( iPlaybackUtility->StateL() );
  2173                 {
  2185                     if ( iAvkonAppUi->IsForeground() || playerState == EPbStatePlaying )
  2174 				UnMuteVolume();
  2186                         {
  2175 				HandlePopupL( EPbCmdUnMuteVolume );
  2187                         UnMuteVolumeL();
  2176 				}
  2188                         HandlePopupL( EPbCmdUnMuteVolume );
  2177             break;
  2189                         }
       
  2190                     );
       
  2191                     if( err != KErrNone )
       
  2192                      	{
       
  2193                         MPX_DEBUG2( "CMPXUPnPPlaybackDialog::HandleMediaKeyCommand EPbCmdUnMuteVolume leave err%d", err ); 
       
  2194                      	}
       
  2195 
       
  2196                     break;
  2178             }
  2197             }
  2179         default:
  2198         default:
  2180             {
  2199             {
  2181             if ( iAvkonAppUi->IsForeground() )
  2200             if ( iAvkonAppUi->IsForeground() )
  2182                 {
  2201                 {
  2195                      playerState == EPbStatePaused ||
  2214                      playerState == EPbStatePaused ||
  2196                      playerState == EPbStateSeekingForward ||
  2215                      playerState == EPbStateSeekingForward ||
  2197                      playerState == EPbStateSeekingBackward )
  2216                      playerState == EPbStateSeekingBackward )
  2198                     {
  2217                     {
  2199                     MPX_DEBUG2( "CMPXUPnPPlaybackDialog::HandleCustomCommand not foreground, sending command %d to HandleMediaKeyCommandL", aCommand );
  2218                     MPX_DEBUG2( "CMPXUPnPPlaybackDialog::HandleCustomCommand not foreground, sending command %d to HandleMediaKeyCommandL", aCommand );
  2200                     TRAP_IGNORE( DoHandleMediaKeyCommandL( aCommand ) );
  2219                             TRAP_IGNORE( DoHandleMediaKeyCommandL( aCommand ) );
  2201                     }
  2220                             }
  2202                 else if ( aCommand == EPbCmdPlay || aCommand == EPbCmdPlayPause )
  2221                         else if ( aCommand == EPbCmdPlay || aCommand == EPbCmdPlayPause )
  2203                     {
  2222                             {
  2204                     MPX_DEBUG2( "CMPXUPnPPlaybackDialog::HandleCustomCommand not foreground, active idle foreground, sending command %d to HandleMediaKeyCommandL", aCommand );
  2223                     MPX_DEBUG2( "CMPXUPnPPlaybackDialog::HandleCustomCommand not foreground, active idle foreground, sending command %d to HandleMediaKeyCommandL", aCommand );
  2205                     // not foreground, play without loading playback view
  2224                             // not foreground, play without loading playback view
  2206                     TRAP_IGNORE( DoHandleMediaKeyCommandL( aCommand ) );
  2225                             TRAP_IGNORE( DoHandleMediaKeyCommandL( aCommand ) );
  2207                     }
  2226                             }
  2208                 else
  2227                 else
  2209                     {
  2228                     {
  2210                     MPX_DEBUG2( "CMPXUPnPPlaybackDialog::HandleCustomCommand not foreground, inactive state, command %d ignored", aCommand );
  2229                     MPX_DEBUG2( "CMPXUPnPPlaybackDialog::HandleCustomCommand not foreground, inactive state, command %d ignored", aCommand );
  2211                     }
  2230                     }
  2212                 }
  2231                 }
  2409 
  2428 
  2410 // -----------------------------------------------------------------------------
  2429 // -----------------------------------------------------------------------------
  2411 // CMPXUPnPPlaybackDialog::SetVolume
  2430 // CMPXUPnPPlaybackDialog::SetVolume
  2412 // -----------------------------------------------------------------------------
  2431 // -----------------------------------------------------------------------------
  2413 //
  2432 //
  2414 void CMPXUPnPPlaybackDialog::SetVolume( const TInt aVolume )
  2433 void CMPXUPnPPlaybackDialog::SetVolumeL( const TInt aVolume )
  2415     {
  2434     {
  2416     CMPXCommand* cmd( CMPXCommand::NewL() );
  2435     CMPXCommand* cmd( CMPXCommand::NewL() );
  2417     CleanupStack::PushL( cmd );
  2436     CleanupStack::PushL( cmd );
  2418     cmd->SetTObjectValueL<TInt>( KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral );
  2437     cmd->SetTObjectValueL<TInt>( KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral );
  2419     cmd->SetTObjectValueL<TBool>( KMPXCommandGeneralDoSync, ETrue );
  2438     cmd->SetTObjectValueL<TBool>( KMPXCommandGeneralDoSync, ETrue );
  2426 
  2445 
  2427 // -----------------------------------------------------------------------------
  2446 // -----------------------------------------------------------------------------
  2428 // CMPXUPnPPlaybackDialog::MuteVolume
  2447 // CMPXUPnPPlaybackDialog::MuteVolume
  2429 // -----------------------------------------------------------------------------
  2448 // -----------------------------------------------------------------------------
  2430 //
  2449 //
  2431 void CMPXUPnPPlaybackDialog::MuteVolume()
  2450 void CMPXUPnPPlaybackDialog::MuteVolumeL()
  2432     {
  2451     {
  2433     CMPXCommand* cmd( CMPXCommand::NewL() );
  2452     CMPXCommand* cmd( CMPXCommand::NewL() );
  2434     CleanupStack::PushL( cmd );
  2453     CleanupStack::PushL( cmd );
  2435     cmd->SetTObjectValueL<TInt>( KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral );
  2454     cmd->SetTObjectValueL<TInt>( KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral );
  2436     cmd->SetTObjectValueL<TBool>( KMPXCommandGeneralDoSync, ETrue );
  2455     cmd->SetTObjectValueL<TBool>( KMPXCommandGeneralDoSync, ETrue );
  2442 
  2461 
  2443 // -----------------------------------------------------------------------------
  2462 // -----------------------------------------------------------------------------
  2444 // CMPXUPnPPlaybackDialog::UnMuteVolume
  2463 // CMPXUPnPPlaybackDialog::UnMuteVolume
  2445 // -----------------------------------------------------------------------------
  2464 // -----------------------------------------------------------------------------
  2446 //
  2465 //
  2447 void CMPXUPnPPlaybackDialog::UnMuteVolume()
  2466 void CMPXUPnPPlaybackDialog::UnMuteVolumeL()
  2448     {
  2467     {
  2449     CMPXCommand* cmd( CMPXCommand::NewL() );
  2468     CMPXCommand* cmd( CMPXCommand::NewL() );
  2450     CleanupStack::PushL( cmd );
  2469     CleanupStack::PushL( cmd );
  2451     cmd->SetTObjectValueL<TInt>( KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral );
  2470     cmd->SetTObjectValueL<TInt>( KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral );
  2452     cmd->SetTObjectValueL<TBool>( KMPXCommandGeneralDoSync, ETrue );
  2471     cmd->SetTObjectValueL<TBool>( KMPXCommandGeneralDoSync, ETrue );
  2458 
  2477 
  2459 // ---------------------------------------------------------------------------
  2478 // ---------------------------------------------------------------------------
  2460 // Updates the middle toolbar button
  2479 // Updates the middle toolbar button
  2461 // ---------------------------------------------------------------------------
  2480 // ---------------------------------------------------------------------------
  2462 //
  2481 //
  2463 void CMPXUPnPPlaybackDialog::UpdateToolbar()
  2482 void CMPXUPnPPlaybackDialog::UpdateToolbarL()
  2464     {
  2483     {
  2465     if ( AknLayoutUtils::PenEnabled() )
  2484     if ( AknLayoutUtils::PenEnabled() )
  2466         {
  2485         {
  2467         MPX_DEBUG1("AknLayoutUtils::PenEnabled() : true");
  2486         MPX_DEBUG1("AknLayoutUtils::PenEnabled() : true");
  2468         if ( iToolbar && iToolbar->IsVisible())
  2487         if ( iToolbar && iToolbar->IsVisible())
  2545     CAknAppUi* appUi = static_cast<CAknAppUi*>( CCoeEnv::Static()->AppUi());
  2564     CAknAppUi* appUi = static_cast<CAknAppUi*>( CCoeEnv::Static()->AppUi());
  2546     CAknToolbar* toolbar = appUi->CurrentFixedToolbar();
  2565     CAknToolbar* toolbar = appUi->CurrentFixedToolbar();
  2547     if ( toolbar == aToolbar )
  2566     if ( toolbar == aToolbar )
  2548         {
  2567         {
  2549         // Put initializations here to take effect before toolbar is shown
  2568         // Put initializations here to take effect before toolbar is shown
  2550         UpdateToolbar();
  2569         UpdateToolbarL();
  2551         aToolbar->UpdateBackground();
  2570         aToolbar->UpdateBackground();
  2552        }
  2571        }
  2553     }
  2572     }
  2554 
  2573 
  2555 // -----------------------------------------------------------------------------
  2574 // -----------------------------------------------------------------------------