--- a/internetradio2.0/streamsourceinc/irstreamsource.h Tue Jul 06 14:07:20 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,245 +0,0 @@
-/*
-* Copyright (c) 2006-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: Manages the entire connection.
-*
-*/
-
-
-#ifndef IRSTREAMSOURCE_H
-#define IRSTREAMSOURCE_H
-
-#include <e32base.h>
-
-#include "irctrlcommand.h"
-#include "irsockettimeouttimer.h"
-#include "irstationconnection.h"
-#include "irstationdataobserver.h"
-
-
-// Constants
-const TInt KBufferingTimeOut = 60000000;
-
-class CIRMetadataHandler;
-class CIRNetworkController;
-class MIRStreamSourceObserver;
-
-/**
- * This class acts as a manager class for the streamsource component
- *
- * @code
- *
- * // Create a stream source object which is used for streaming data
- * // iObserver is the reference of the observer object which is called
- * // for issuing call backs.
- * CIRStreamSource iStreamSource = CIRStreamSource::NewL(iObserver);
- *
- * // Called to connect to the channel server iUrl specifying the
- * // url to be connect to.
- * iStreamSource->ConnectToServerL(iUrl);
- *
- * // Called by the media engine to indicate that its buffers are to
- * // to be filled and iInputBuffer is the reference of the buffer to
- * // which data is to be copied
- * iStreamSource->FilltheBuffer(iInputbuffer);
- *
- * // Called to cancel a channel server connection request
- * iStreamSource->CancelRequest();
- *
- * // Called by the mediaclient to know the content-type
- * // of the audio stream
- * iStreamSource->ContentType();
- *
- * @endcode
- */
-
-NONSHARABLE_CLASS ( CIRStreamSource ): public CBase, public MIRStreamFill,
- public MIRSocketTimeoutNotifier, public MIRStationConnectionObserver,
- public MIRStationDataObserver
- {
-public:
-
- /**
- * Initiates a connection to the url.
- *
- * @param aUrl Url of the channel server to connect to.
- */
- IMPORT_C void ConnectToServerL(const TDesC& aUrl);
-
- /**
- * Reinitiates a connection to the url by
- *
- * @param aUrl Url of the channel server to connect to.
- */
- IMPORT_C void ReconnectL(const TDesC& aUrl );
-
- /**
- * Creates an Instance of CIRStreamSource
- * @param aObserver Reference to the StreamSource Observer
- * @return CIRStreamSource* pointer to the created CIRStreamSource object
- */
- IMPORT_C static CIRStreamSource* NewL(MIRStreamSourceObserver& aObserver);
-
- /**
- * Fills the buffer with the data from the stream
- * @param aInputBuffer Reference to the Input Buffer
- */
- IMPORT_C void FilltheBuffer(TDes8& aInputBuffer);
-
- /**
- * Cancels the connection request
- */
- IMPORT_C void CancelRequest();
-
- /**
- * Returns the content type header information of the channel
- * @return const TDesC8& content type header information of the channel
- */
- IMPORT_C const TDesC8& ContentTypeL();
-
- /**
- * Default C++ Destructor
- */
- virtual ~CIRStreamSource();
-
-private:
-
- /**
- * Creates a connection object and initiates the connection
- * to channel server
- */
- void DoConnectL(const TDesC& aUrl);
-
- /**
- * Default Constructor
- * @param aObserver Reference to StreamSource observer
- */
- CIRStreamSource(MIRStreamSourceObserver& aObserver);
-
- /**
- * 2nd Phase construction.
- */
- void ConstructL();
-
-//from base class MIRStationConnectionObserver
-
- /**
- * From base class MIRStationConnectionObserver.
- *
- * @see MIRStationConnectionObserver::ConnectionSuccessful()
- */
- void ConnectionSuccessful( CIRStationConnection* aConnection );
-
- /**
- * From base class MIRStationConnectionObserver.
- *
- * @see MIRStationConnectionObserver::ConnectionError()
- */
- void ConnectionError( CIRStationConnection* aConnection, TInt aErrorCode );
-
-// from base class MIRSocketTimeoutNotifier
-
- /**
- * From base class MIRSocketTimeoutNotifier.
- *
- * @see MIRSocketTimeoutNotifier::TimerExpired()
- */
- void TimerExpired();
-
-// from base class MIRStationDataObserver
-
- /**
- * From base class MIRStationDataObserver.
- *
- * @see MIRStationDataObserver::MetadataReceived()
- */
- void MetadataReceived( const CIRMetaData& aMetaData );
-
- /**
- * From base class MIRStationDataObserver.
- *
- * @see MIRStationDataObserver::AudioDataEvent()
- */
- void AudioDataEvent( const TInt aResponseCode, TInt aValue );
-
- /**
- * Schedules an asynchronous cleanup for given connection.
- *
- * @param aConnection The connection to be deleted.
- */
- void AsyncCleanupConnection( CIRStationConnection* aConnection );
-
- /**
- * Callback method that performs the actual deletion of connections.
- *
- * @param aSelfPtr Pointer argument given when the callback/timer is created.
- * @return KErrNone Specified in the function pointer declaration.
- */
- static TInt StaticConnectionCleanupCallback( TAny* aSelfPtr );
-
-private:
-
- /**
- * Handle to the Network controller used to get the reference
- * of the RSocketServ and RConnection.
- * Not owned.
- */
- CIRNetworkController* iNetworkControllerHandle;
-
- /**
- * Timer for handling timeouts.
- * Owned
- */
- CIRSocketTimeOutTimer* iSocketTimer;
-
- /**
- * Pointer to the connection to current channel server.
- * Not owned.
- */
- CIRStationConnection* iCurrentConnection;
-
- /**
- * Pointer to the connection to previous channel server.
- * Not owned.
- */
- CIRStationConnection* iNewConnection;
-
- /**
- * Array of pointers to connections.
- * Owned.
- */
- RPointerArray<CIRStationConnection> iConnections;
-
- /**
- * Timer for delayed cleanup of connections.
- * Owned.
- */
- CPeriodic* iConnectionCleanupTimer;
-
- /**
- * Reference of the Stream source observer
- */
- MIRStreamSourceObserver& iStreamSourceObserver;
-
- /**
- * Is set when reconnecting to a channel and reset
- * when connecting for the first time
- */
- TBool iReConnecting;
-
- };
-
-#endif //IRSTREAMSOURCE_H
-
-
-