camerauis/cameraapp/generic/src/audioplayer/camaudioplayerwrapper.cpp
changeset 19 d9aefe59d544
parent 3 8b2d6d0384b0
child 21 fa6d9f75d6a6
child 28 3075d9b614e6
--- a/camerauis/cameraapp/generic/src/audioplayer/camaudioplayerwrapper.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,403 +0,0 @@
-/*
-* Copyright (c) 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:  Implementation of Wrapper for Audio Player Utility
-*
-*/
-
-
-// ===========================================================================  
-// includes
-#include <mdaaudiosampleplayer.h>
-#include <AudioPreference.h>
-
-#include "Cam.hrh"
-#include "CamPanic.h"
-#include "camlogging.h"
-#include "CamUtility.h" // for resource id's of sounds
-#include "mcamplayerobserver.h"
-#include "camaudioplayerwrapper.h"
-#include "CamPerformance.h"
-#include "OstTraceDefinitions.h"
-#ifdef OST_TRACE_COMPILER_IN_USE
-#include "camaudioplayerwrapperTraces.h"
-#endif
-
-
-
-// ===========================================================================  
-// Constants
-
-// Migrated directly from old sound player.
-#ifndef __WINSCW__
-  static const TUint KAudioPriority = KAudioPriorityCameraTone;
-#else
-  static const TUint KAudioPriority = KAudioPriorityVideoRecording;
-#endif // __WINSCW__                                                                                              
-
-
-// ===========================================================================  
-// public constructors and destructor
-
-// ---------------------------------------------------------------------------
-// NewL <<static>>
-// ---------------------------------------------------------------------------
-//
-CCamAudioPlayerWrapper* 
-CCamAudioPlayerWrapper::NewL( MCamPlayerObserver& aObserver, 
-                              TInt                aSoundId )
-  {
-  PRINT( _L("Camera => CCamAudioPlayerWrapper::NewL()") );
-  CCamAudioPlayerWrapper* self = 
-    new (ELeave) CCamAudioPlayerWrapper( aObserver, aSoundId );
-
-  CleanupStack::PushL( self );
-  self->ConstructL();
-  CleanupStack::Pop( self );
-
-  PRINT( _L("Camera <= CCamAudioPlayerWrapper::NewL()") );
-  return self;
-  }
-
-// ---------------------------------------------------------------------------
-// destructor <<virtual>>
-// ---------------------------------------------------------------------------
-//
-CCamAudioPlayerWrapper::~CCamAudioPlayerWrapper()
-  {
-  if( iPlayer )
-    {
-    iPlayer->Stop();
-    iPlayer->Close();
-    delete iPlayer;
-    iPlayer = NULL;
-    }
-  }
-
-
-
-// ===========================================================================  
-// from CCamPlayerWrapperBase
-
-// ---------------------------------------------------------------------------
-// Id <<virtual>><<const>>
-// ---------------------------------------------------------------------------
-//
-TInt 
-CCamAudioPlayerWrapper::Id() const
-  {
-  return iSoundId;
-  }
-
-// ---------------------------------------------------------------------------
-// IsEqualSound <<virtual>><<const>>
-//
-// Compare if two sounds are equal. 
-// If the ids or filenames match, the sounds are considered to be equal.
-// ---------------------------------------------------------------------------
-//
-TBool
-CCamAudioPlayerWrapper::IsEqualSound( TInt aSoundId ) const
-  {
-  TInt eq( EFalse );
-  TRAP_IGNORE( 
-    {
-    eq = aSoundId == iSoundId
-      || MapSoundId2FilenameL( aSoundId ) == MapSoundId2FilenameL( iSoundId );
-    });
-  return eq;
-  }
-
-
-// ---------------------------------------------------------------------------
-// Play <<virtual>>
-// ---------------------------------------------------------------------------
-//
-void 
-CCamAudioPlayerWrapper::Play( TBool aCallback )
-  {
-  PRINT2( _L("Camera => CCamAudioPlayerWrapper::Play, callback:%d iState[%s]"), 
-          aCallback, 
-          KCamAudioPlayerWrapperStateNames[iState] );
-
-  switch( iState )
-    {
-    case CCamAudioPlayerWrapper::EReady:
-      iPlayRequested = EFalse;
-      iState         = CCamAudioPlayerWrapper::EPlaying;
-      iCallback      = aCallback;
-      iPlayer->Play();
-      break;
-
-    case CCamAudioPlayerWrapper::EInitializing:
-      iPlayRequested = ETrue;
-      iCallback      = aCallback;
-      break;
-
-    case CCamAudioPlayerWrapper::ECorrupt:
-      // Notify observer rigth away as init has failed.
-      iCallback      = aCallback;
-      NotifyPlayComplete( KErrCorrupt );
-      break;
-
-    case CCamAudioPlayerWrapper::EPlaying:
-      PRINT( _L("Camera <> WARNING: Still playing old sound, need to stop early") );
-      iPlayer->Stop();
-      // Notify observer that playing was interrupted (if callback was requested for previous play).
-      // Sets state to idle so that we are ready to play again.
-      NotifyPlayComplete( KErrAbort );
-      // Now we can repeat the call as the state is right.
-      Play( aCallback ); 
-      break;
-    case CCamAudioPlayerWrapper::EIdle:
-    default:
-      //Set state and ignore otherwise...
-      PRINT( _L("Camera <> CCamAudioPlayerWrapper::Play invalid state") );
-      iState = CCamAudioPlayerWrapper::ECorrupt;
-      break;
-    }
-
-  PRINT( _L("Camera <= CCamAudioPlayerWrapper::Play") );
-  }
-
-
-// ---------------------------------------------------------------------------
-// CancelPlay <<virtual>>
-// ---------------------------------------------------------------------------
-//
-void 
-CCamAudioPlayerWrapper::CancelPlay()
-  {
-  PRINT1( _L("Camera => CCamAudioPlayerWrapper::CancelPlay, id:%d"), iSoundId );
-  switch( iState )
-    {
-    case CCamAudioPlayerWrapper::EPlaying:
-      PRINT( _L("Camera <> CCamAudioPlayerWrapper::CancelPlay .. iState == EPlaying, call Stop()..") );
-      iPlayer->Stop();
-      NotifyPlayComplete( KErrAbort );
-      break;
-    default:
-      break;  
-    }
-
-  // Make sure pending Play() is cancelled.
-  iPlayRequested = EFalse;      
-  PRINT( _L("Camera <= CCamAudioPlayerWrapper::CancelPlay") );
-  }
-
-
-// ===========================================================================  
-// from MMdaAudioPlayerCallback
-  
-// ---------------------------------------------------------------------------
-// MapcInitComplete <<virtual>>
-// ---------------------------------------------------------------------------
-//
-void 
-CCamAudioPlayerWrapper
-::MapcInitComplete(       TInt                       aStatus, 
-                    const TTimeIntervalMicroSeconds& /*aDuration*/ )
-  {
-  PRINT2( _L("Camera => CCamAudioPlayerWrapper::MapcInitComplete, id:%d status:%d"), iSoundId, aStatus );
-  if( KErrNone != aStatus )
-    {
-    // If we encounter an error in init phase,
-    // we'll notify observer once Play gets called.
-    iState = CCamAudioPlayerWrapper::ECorrupt;
-    }
-  else
-    {
-    iState = CCamAudioPlayerWrapper::EReady;
-    }
-
-  // If play has been called before init has finished
-  // try to play now. If we had an error in init,
-  // Play() will handle this based on iState.
-  if( iPlayRequested )
-    {
-    Play( iCallback );
-    }
-  PRINT( _L("Camera <= CCamAudioPlayerWrapper::MapcInitComplete") );
-  }
-
-// ---------------------------------------------------------------------------
-// MapcPlayComplete <<virtual>>
-// ---------------------------------------------------------------------------
-//
-void 
-CCamAudioPlayerWrapper::MapcPlayComplete( TInt aStatus )
-  {
-  NotifyPlayComplete( aStatus );
-  }
-
-
-
-
-// ===========================================================================  
-// other public
-
-// ---------------------------------------------------------------------------
-// MapSoundId2FilenameL <<static>>
-// ---------------------------------------------------------------------------
-//
-TPtrC
-CCamAudioPlayerWrapper::MapSoundId2FilenameL( TInt aSoundId )
-  {
-  PRINT1( _L("Camera => CCamAudioPlayerWrapper::MapSoundId2FilenameL, id:%d"), aSoundId );
-    
-  TPtrC filename( KNullDesC );
-
-  switch( aSoundId )
-    {
-    case ECamVideoStartSoundId:    filename.Set( KCamVideoStartTone );    break;
-    case ECamVideoStopSoundId:     filename.Set( KCamVideoStopTone  );    break;
-    case ECamVideoPauseSoundId:    filename.Set( KCamVideoPauseTone );    break;
-    case ECamVideoResumeSoundId:   filename.Set( KCamVideoStartTone );    break;
-    case ECamAutoFocusFailed:      User::Leave( KErrNotSupported );       break;
-    case ECamAutoFocusComplete:    filename.Set( KCamAutoFocusComplete ); break;
-    case ECamStillCaptureSoundId1: filename.Set( KCamCaptureTone1 );      break;
-    case ECamStillCaptureSoundId2: filename.Set( KCamCaptureTone2 );      break;
-    case ECamStillCaptureSoundId3: filename.Set( KCamCaptureTone3 );      break;
-    case ECamStillCaptureSoundId4: filename.Set( KCamCaptureTone4 );      break;
-    case ECamBurstCaptureSoundId1: filename.Set( KCamBurstCaptureTone1 );      break;
-    case ECamBurstCaptureSoundId2: filename.Set( KCamBurstCaptureTone2 );      break;
-    case ECamBurstCaptureSoundId3: filename.Set( KCamBurstCaptureTone3 );      break;
-    case ECamBurstCaptureSoundId4: filename.Set( KCamBurstCaptureTone4 );      break;
-    
-    case ECamSelfTimerSoundId:     User::Leave( KErrNotSupported );       break;
-    case ECamInCallToneId:         User::Leave( KErrNotSupported );       break;
-
-    default:
-      __ASSERT_DEBUG( EFalse, CamPanic( ECamPanicNotSupported ) );
-      break;
-    }
-
-  PRINT1( _L("Camera <= CCamAudioPlayerWrapper::MapSoundId2FilenameL, return [%S]"), &filename );
-  return filename;
-  }
-
-
-
-// ===========================================================================  
-// other private
-
-// ---------------------------------------------------------------------------
-// InitL
-// ---------------------------------------------------------------------------
-//
-void 
-CCamAudioPlayerWrapper::InitL()
-  {
-  PRINT( _L("Camera => CCamAudioPlayerWrapper::InitL") );
-  if( CCamAudioPlayerWrapper::EIdle == iState )
-    {
-    iState = CCamAudioPlayerWrapper::EInitializing;
-    // Our process uses multiple players. Ensure they
-    // (or their internal controllers) share the same
-    // heap so we don't run out of memory chunks.
-    iPlayer->UseSharedHeap();
-    iPlayer->OpenFileL( MapSoundId2FilenameL( iSoundId ) );
-    }
-  else
-    {
-    CamPanic( ECamPanicInvalidState );
-    PRINT( _L("Camera <> CCamAudioPlayerWrapper::InitL invalid state") );
-    iState = CCamAudioPlayerWrapper::ECorrupt;
-    User::Leave(KErrCorrupt);
-    }
-  PRINT( _L("Camera <= CCamAudioPlayerWrapper::InitL") );
-  }
-
-
-// ---------------------------------------------------------------------------
-// NotifyPlayComplete
-// ---------------------------------------------------------------------------
-//
-void
-CCamAudioPlayerWrapper::NotifyPlayComplete( TInt aStatus )
-  {
-  PRINT1( _L("Camera => CCamAudioPlayerWrapper::NotifyPlayComplete, status:%d"), aStatus );
-  switch( iState ) 
-    {
-    // Problem initializing.
-    // Init is not tried again as it could slow down the capturing.
-    case CCamAudioPlayerWrapper::ECorrupt:
-      break;
-
-    // Normal case where the playing has completed.
-    // Set state to EReady to indicate we are ready 
-    // for new play request. 
-    case CCamAudioPlayerWrapper::EPlaying:
-      iState = CCamAudioPlayerWrapper::EReady;
-      break;
-
-    // Other states not allowed here.
-    default:
-      // Make this player ready that we can play new sound.
-      PRINT( _L("Camera <> CCamAudioPlayerWrapper::NotifyPlayComplete invalid state") );
-      iState = CCamAudioPlayerWrapper::EReady;
-      break;
-    }
-
-  // Clear flag just in case.
-  iPlayRequested = EFalse;
-
-  OstTrace0( CAMERAAPP_PERFORMANCE, CCAMAUDIOPLAYERWRAPPER_NOTIFYPLAYCOMPLETE, "e_CAM_APP_CAPTURE_SOUND_PLAY 0" ); //CCORAPP_CAPTURE_SOUND_PLAY_END
-
-  // Notify observer with our sound id and received status.
-  if( iCallback )
-    iObserver.PlayComplete( aStatus, iSoundId );
-
-  PRINT( _L("Camera <= CCamAudioPlayerWrapper::NotifyPlayComplete") );
-  }
-
-// ===========================================================================  
-// private constructors
-
-// ---------------------------------------------------------------------------
-// ConstructL
-// ---------------------------------------------------------------------------
-//
-void 
-CCamAudioPlayerWrapper::ConstructL()
-  {
-  PRINT( _L("Camera => CCamAudioPlayerWrapper::ConstructL()") );
-  iPlayer = CMdaAudioPlayerUtility::NewL( 
-              *this, 
-               KAudioPriority ,
-               TMdaPriorityPreference( KAudioPrefCamera ) );
-
-  InitL();
-  PRINT( _L("Camera <= CCamAudioPlayerWrapper::ConstructL()") );
-  }
-
-
-// ---------------------------------------------------------------------------
-// C++ constructor
-// ---------------------------------------------------------------------------
-//
-CCamAudioPlayerWrapper
-::CCamAudioPlayerWrapper( MCamPlayerObserver& aObserver, 
-                          TInt                aSoundId )
-  : iObserver     ( aObserver                     ),
-    iSoundId      ( aSoundId                      ),
-    iPlayer       ( NULL                          ),
-    iState        ( CCamAudioPlayerWrapper::EIdle ),
-    iPlayRequested( EFalse                        ),
-    iCallback     ( EFalse                        )
-  {
-  }
-
-// ===========================================================================  
-// end of file
-