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 ) |
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 // ----------------------------------------------------------------------------- |