--- a/voicerecorder/RecViewSrc/CVRMdaRecorder.h Thu Aug 19 09:57:40 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,441 +0,0 @@
-/*
-* Copyright (c) 2002 - 2006 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 acts as a high level wrapper around the media server
-* playback and recording functionalities.
-*
-*/
-
-
-#ifndef __CVRMDARECORDER_H__
-#define __CVRMDARECORDER_H__
-
-// INCLUDES
-#include <e32property.h>
-#include <mdaaudiosampleeditor.h>
-#include <hwrmlight.h>
-
-#include "MVRMdaRecorder.h"
-#include "MVRUpdateEventProvider.h"
-
-#include <AudioInput.h>
-// FORWARD DECLARATIONS
-class CVRSystemEventHandler;
-class CAknGlobalNote;
-class CMdaAudioRecorderUtility;
-class CVRMemo;
-class MVRObserver;
-class CErrorUI;
-class CAudioOutput;
-class CVRTonePlayer;
-class CVRDiskSpaceWatcher;
-class CAudioInput;
-
-// CLASS DEFINITION
-/**
-* This class acts as a high level wrapper around the media server
-* playback and recording functionalities.
-*/
-NONSHARABLE_CLASS( CVRMdaRecorder )
- : public CBase, public MVRMdaRecorder,
- public MMdaObjectStateChangeObserver,
- public MVRUpdateEventProvider,
- public MHWRMLightObserver // for light control
- {
- public: // Constructors and destructor
-
- /**
- * Default constructor
- */
- CVRMdaRecorder();
-
- /**
- * Destructor
- */
- ~CVRMdaRecorder();
-
- /**
- * 2nd phase constructor
- */
- void ConstructL();
-
- public: // from MMdaObjectStateChangeObserver
-
- /**
- * Encapsulates the interface for handling the change of state of
- * an audio data sample object.
- * @param aObject A pointer to the audio sample object that has
- * changed state.
- * @param aPreviousState The state before the change
- * @param aCurrentState The state after the change
- * @param aErrorCode If not KErrNone, then the error that
- * caused the state change
- */
- void MoscoStateChangeEvent( CBase* aObject, TInt aPreviousState,
- TInt aCurrentState, TInt aErrorCode );
-
- /**
- * Registers an observer for receiving update notifications.
- * @param aObserver The observer object.
- */
- void RegisterObserver( MVRObserver* aObserver );
-
- /**
- * Unregisters a previously registered observer
- * @param aObserver The observer object.
- */
- void UnregisterObserver( MVRObserver* aObserver );
-
- /**
- * Registers an observer for receiving auto stop notifications.
- * @param aObserver The observer object.
- */
- void SetAutoStopObserver( MVRObserver* aObserver );
-
- /**
- * Attachs this recorder to a memo file, i.e. opens it
- * and initialises media server.
- * @param aMemo Specifies the file to be attached to.
- */
- void AttachToMemoL( CVRMemo* aMemo );
-
- /**
- * Creates a new memo file and attachs to it.
- * @param aMemo Specifies the file to be created.
- */
- void CreateNewMemoL( CVRMemo* aMemo );
-
- /**
- * Detachs from the current memo, i.e. closes the file.
- */
- void DetachMemo();
-
- /**
- * Sets playback volume.
- * @param aStep Volume level in steps
- * @param aMaxSteps How many steps there are (10 usually).
- */
- void SetVolume( TInt aStep, TInt aMaxSteps );
-
- /**
- * Starts playback.
- * @return System wide error code
- */
- TInt PlayL();
-
- /**
- * Starts recording.
- * @return System wide error code
- */
- TInt RecordL();
-
- /**
- * Stops playback or recording.
- */
- void Stop();
-
- /**
- * Pauses playback or recording.
- */
- void Pause();
-
- /**
- * Moves the playing position forward 5 seconds.
- * @return System wide error code. KErrOverflow if the
- * position was forwarded past the end.
- */
- TInt ForwardL();
-
- /**
- * Moves the playing position backward 5 seconds.
- * @return System wide error code
- */
- TInt RewindL();
-
- /**
- * Indicates if we are in a state that can accept
- * more commands (i.e. all async calls have completed).
- * @return ETrue if it's ok to proceed calling methods.
- */
- TBool CanAcceptCommands() const;
-
- /**
- * Set active speaker if feature is supported
- * @param aEnabled ETrue if playback should be routed to IHF
- * @return Error code returned by routing operation
- */
- TInt SetIhf( TBool aEnabled );
-
- /**
- * Set the audio recorder position to a new value
- * @param aSeconds The position to set
- */
- void SetPositionL( TInt aSeconds );
-
- /**
- * From MBacklightControlObserver.
- * Callback for change in backlight status
- *
- * @since S60 ?S60_version
- * @param aTarget The target of light change event; keypad, screen or both
- * @param aTarget New status of the target
- */
- void LightStatusChanged(TInt aTarget, CHWRMLight::TLightStatus aStatus);
-
- /**
- * Returns iInRecording flag
- * @return True or False
- */
- TBool GetInRecordingFlag();
-
- /**
- * set iInRecording flag
- *
- */
- void SetInRecordingFlag(TBool);
-
- /**
- * Returns ifStopCalled flag
- * @return True or False
- */
- TBool GetIfStopCalled();
-
- /**
- * set ifStopCalled flag
- *
- */
- void SetIfStopCalled(TBool);
-
- /**
- * return the iIsAttachToMemo flag
- *
- */
- TBool IsAttachedToMemo();
- /**
- * Sets the AudioInput.
- *
- * Leaves on error.
- */
- void SetAudioInputL(CAudioInput::TAudioInputPreference aAudioInput);
-
- /**
- * set sample rate during voice call
- *
- */
- void ConfigSampleRateOfVoiceCallL();
-
-public:
- friend class CVRDiskSpaceWatcher;
-
- private: // new methods
-
- /**
- * Moves the playing position to beginning.
- */
- void ResetPosition();
-
- /**
- * Stops playing or recording and notifies the observer
- * registered with SetAutoStopObserver().
- */
- void StopAndNotify();
-
- /**
- * Updates duration and position fields in CVRMemo
- * and notifies the observer registered with SetObserver();
- */
- void SyncAndNotify();
-
- /**
- * Creates and starts a CPeriodic timer object
- * with a resolution of one second.
- */
- void StartTimerL();
-
- /**
- * Stops and deletes the timer object.
- */
- void StopTimer();
-
- /**
- * Called by the CPeriodic timer to handle a tick.
- * Uses HandleTick() to do the actual work.
- * @param aMdaRecorder Always a valid pointer to CVRMdaRecorder object
- * @return ETrue to indicate that the timer should continue.
- */
- static TInt TimerCallBack( TAny* aMdaRecorder );
-
- /**
- * Non-static variant of TimerCallBack (more convinient to implement).
- */
- void HandleTick();
-
- /**
- * Moves the playing position forward or backward.
- * @param aSeconds Negative for bacward, positive for forward
- * @return EFalse if the position moved past the end
- */
- TBool MovePositionL( TInt aSeconds );
-
- /**
- * Configures the memo to be recorded.
- *
- * This function reads configuration data (bitrate, sampling rate,
- * mono/stereo information from utility and configures the clip opened
- * recording.
- *
- * Leaves on error.
- *
- */
- void ConfigureMemoL();
-
-
- /**
- * Creates the AudioInput.
- *
- * Leaves on error.
- */
- void CreateAudioInputL();
-
-
- /**
- * Deletes the AudioInput.
- *
- */
- void DeleteAudioInput();
-
-
-
- private: // data
-
- /**
- * For listening call events. Owned.
- */
- CVRSystemEventHandler* iCurrentCallHandler;
-
- /**
- * Pointer to the media server audio recorder object. Owned.
- */
- CMdaAudioRecorderUtility* iAudioRecorder;
-
- /**
- * Pointer to the voice memo object. Not owned.
- */
- CVRMemo* iMemo;
-
- /**
- * Pointer to the timer object. Owned.
- */
- CPeriodic* iTimer;
-
- /**
- * Pointers to the memo status observers. Not owned.
- */
- RPointerArray<MVRObserver> iObservers;
-
- /**
- * Pointer to the auto stop (non-user initiated) observer. Not owned.
- */
- MVRObserver* iAutoStopObserver;
-
-
- /**
- * ETrue if a memo is currently attached.
- */
- TBool iIsAttachedToMemo;
-
- /**
- * Identifies the last media server error, or KErrNone.
- */
- TInt iMediaServerError;
-
- /**
- * CActiveScheduler wrapper object. Owned.
- */
- CActiveSchedulerWait iActiveWait;
-
- /**
- * Pointer to the generic error note object. Owned.
- */
- CAknGlobalNote* iGlobalNote;
-
- /**
- * Pointer to a Error UI object. Owned.
- * Used for showing system error notes
- */
- CErrorUI* iErrorUI;
-
- /**
- * Pub&Sub property.
- * For notifying voice dialing about the state of voice recorder
- */
- RProperty iPropVRState;
-
- /**
- * Pub&Sub property.
- * For checking and setting the state of the screen saver.
- */
- RProperty iPropScreenSaver;
-
- /**
- * Fix for pause problem
- */
- TBool iPause;
-
- /**
- * For storing current position
- */
- TTimeIntervalMicroSeconds iPosition;
-
- /**
- * For playing the recording start and stop tones. Owned.
- */
- CVRTonePlayer* iTonePlayer;
-
- /**
- * Pointer to the CHWRMLight. owned.
- */
- CHWRMLight* iLight;
-
- /**
- * State of the Light. If EFalse the dimmed light is set as off
- * causes no action.
- */
- TBool iDimLight;
-
- // Boolean to maintain attaching to memo state.
- TBool iAttachingToMemo;
-
- /**
- * Returns if Voice Recorder start to record new file (real recording not necessary started) .
- * @return True or False
- */
- TBool ifInRecording;
-
-
- /**
- * Returns if Voice Recorder has called stoped, if so should not handle Pause .
- * @return True or False
- */
- TBool ifStopCalled;
-
-
- CVRDiskSpaceWatcher* iDiskSpaceWatcher;
- CAudioInput* iAudioInput;
- CAudioInput::TAudioInputPreference iCurrentAudioInput;
-
-
- };
-
-#endif // __CVRMDARECORDER_H__