--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneplugins/csplugin/inc/cspaudiohandler.h Fri Mar 19 09:28:42 2010 +0200
@@ -0,0 +1,199 @@
+/*
+* Copyright (c) 2007-2009 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: Declarations for class CSPAudioHandler
+*
+*/
+
+
+#ifndef CSPAUDIOHANDLER_H
+#define CSPAUDIOHANDLER_H
+
+#include <e32base.h>
+#include <sounddevice.h>
+
+#include "mcsppubsubobserver.h"
+#include "mcspcenrepobserver.h"
+
+
+class CSPPubSubListener;
+class CSPCenRepListener;
+class CSPAudioStreams;
+
+/**
+* Handles call adding from calls not done by the plugin.
+*
+*/
+class CSPAudioHandler: public CBase,
+ public MCSPPubSubObserver,
+ public MCSPCenRepObserver,
+ public MDevSoundObserver
+ {
+
+ public: //Constructors and descructor
+
+ /**
+ * Two-phased constructing for the monitor.
+ *
+ * @param aObserver the observer for getting notification
+ * @param aLine the line to monitor
+ * @param aLineId line identifier
+ */
+ static CSPAudioHandler* NewL( );
+
+ /**
+ * C++ default destructor.
+ */
+ virtual ~CSPAudioHandler( );
+
+ /**
+ * Start audio streams.
+ */
+ void Start();
+
+ /**
+ * Stop audio streams.
+ */
+ void Stop();
+
+ /**
+ * From base class MCSPPubSubObserver.
+ * Handler for changed event.
+ * @param aUid uid of setting
+ * @param aKey id of setting
+ * @param aStatus status of completed AO operation
+ */
+ virtual void HandleNotifyPSL( const TUid aUid, const TInt& aKey,
+ const TRequestStatus& aStatus );
+
+ /**
+ * From base class MCSPCenRepObserver.
+ * Handler for changed event.
+ * @param aUid uid of setting
+ * @param aVal value
+ */
+ virtual void CSPAudioHandler::HandleNotifyCenRepL(
+ const TUid aUid,
+ const TUint32 aKey,
+ TInt aVal );
+
+ protected: //From DevSound
+
+ /**
+ * Handles DevDound initialization completion event.
+ * @param aError. KErrNone if successful. Other values are possible
+ * indicating a problem initializing CMMFDevSound object.
+ */
+ void InitializeComplete( TInt aError );
+
+ /**
+ * Handles CMMFDevSound object's data request event.
+ * @param aBuffer. Buffer to be filled
+ */
+ void BufferToBeFilled( CMMFBuffer* aBuffer );
+
+ /**
+ * Handles play completion or cancel event.
+ * @param aError. The status of playback
+ */
+ void PlayError( TInt aError );
+
+ /**
+ * Not Supported
+ */
+ void ToneFinished( TInt aError );
+
+ /**
+ * Not supported.
+ */
+ void BufferToBeEmptied( CMMFBuffer* aBuffer );
+
+ /**
+ * Not supported.
+ */
+ void RecordError( TInt aError );
+
+ /**
+ * Not supported.
+ */
+ void ConvertError( TInt aError );
+
+ /**
+ * Not supported.
+ */
+ void DeviceMessage( TUid aMessageType, const TDesC8& aMsg );
+
+ protected: // From CActive
+ /**
+ * From CActive
+ * RunL
+ */
+ void RunL();
+
+ /**
+ * From CActive
+ * Catches errors if RunL leaves
+ * @param aError error code
+ * @return error code
+ */
+ TInt RunError( TInt aError );
+
+ /**
+ * From CActive
+ * Cancels the monitor
+ */
+ void DoCancel();
+
+ private:
+ /**
+ * C++ default constructor
+ * @param aObserver the observer for status change (incoming call)
+ * @param aLine the line associated with the call
+ * @param aLineId line identifier
+ */
+ CSPAudioHandler( );
+
+ /**
+ * Constructs the monitor in the second phase.
+ */
+ void ConstructL();
+
+ private: // data
+
+ /**
+ * Mute listening from Publish&Subscribe.
+ */
+ CSPPubSubListener* iMuteListener;
+
+ /**
+ * Incall loudspeaker listening from Central Repository.
+ */
+ CSPCenRepListener* iIncallLoudspeakerVolumeListener;
+
+ /**
+ * Incall ear volume listening from Central Repository.
+ */
+ CSPCenRepListener* iIncallEarVolumeListener;
+
+ /**
+ * Audio streams handler.
+ */
+ CSPAudioStreams* iAudioStreams;
+
+ /**
+ * Call count
+ */
+ TInt iCallCount;
+ };
+
+#endif // CSPAUDIOHANDLER_H