mmfenh/enhancedmediaclient/Client/src/Components/ControlFactory/ControlFactoryImpl.h
changeset 0 71ca22bcf22a
child 16 43d09473c595
equal deleted inserted replaced
-1:000000000000 0:71ca22bcf22a
       
     1 /*
       
     2 * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Definition of the ControlFactoryImpl class.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef C_CCONTROLFACTORYIMPL_H
       
    20 #define C_CCONTROLFACTORYIMPL_H
       
    21 
       
    22 #include <e32base.h>
       
    23 
       
    24 namespace multimedia
       
    25     {
       
    26     // Forward declaration
       
    27     class MStreamControl;
       
    28     class MSourceControl;
       
    29     class MEffectControl;
       
    30     class MDataBuffer;
       
    31     class MSinkControl;
       
    32     class CMultimediaFactoryImpl;
       
    33     class CDownloadGateway;
       
    34     
       
    35     /**
       
    36     *  Implements the MultimediaFactor Implementation
       
    37     *  @lib EnhancedMediaClient.lib
       
    38     *  @since S60 v3.2
       
    39     */    
       
    40     class CMultimediaFactoryImpl : public CBase                                             
       
    41         {
       
    42         public:
       
    43             /**
       
    44              * Function to Create the Object.
       
    45              */
       
    46             static CMultimediaFactoryImpl* NewL();
       
    47 
       
    48             /**
       
    49             * Destructor.
       
    50             */
       
    51             ~CMultimediaFactoryImpl();
       
    52             
       
    53             /**
       
    54             * Creates the StreamControl 
       
    55             *
       
    56             * @since S60 v3.2
       
    57             * @param aType      UID of Stream Type
       
    58             * @param aControl   Actual Pointer returned
       
    59             */            
       
    60             TInt CreateStreamControl( TUid aType, MStreamControl*& aControl );
       
    61             /**
       
    62             * Deletes the StreamControl 
       
    63             *
       
    64             * @since S60 v3.2
       
    65             * @param aControl   Stream Control to be Deleted
       
    66             */            
       
    67             TInt DeleteStreamControl( MStreamControl*& aControl );
       
    68             /**
       
    69             * Creates the SourceControl 
       
    70             *
       
    71             * @since S60 v3.2
       
    72             * @param aType      UID of Source Type
       
    73             * @param aControl   Actual Pointer returned
       
    74             */            
       
    75             TInt CreateSourceControl( TUid aType, MSourceControl*& aControl );
       
    76             /**
       
    77             * Deletes the SourceControl 
       
    78             *
       
    79             * @since S60 v3.2
       
    80             * @param aControl   Source Control to be Deleted
       
    81             */            
       
    82             TInt DeleteSourceControl( MSourceControl*& aControl );
       
    83             /**
       
    84             * Creates the SinkControl 
       
    85             *
       
    86             * @since S60 v3.2
       
    87             * @param aType      UID of Sink Type
       
    88             * @param aControl   Actual Pointer returned
       
    89             */            
       
    90             TInt CreateSinkControl( TUid aType, MSinkControl*& aControl );
       
    91             /**
       
    92             * Deletes the SinkControl 
       
    93             *
       
    94             * @since S60 v3.2
       
    95             * @param aControl   Sink Control to be Deleted
       
    96             */            
       
    97             TInt DeleteSinkControl( MSinkControl*& aControl );
       
    98             /**
       
    99             * Creates the EffectControl 
       
   100             *
       
   101             * @since S60 v3.2
       
   102             * @param aType      UID of Effect Type
       
   103             * @param aControl   Actual Pointer returned
       
   104             */            
       
   105             TInt CreateEffectControl( TUid aType, MEffectControl*& aControl );
       
   106             /**
       
   107             * Deletes the EffectControl 
       
   108             *
       
   109             * @since S60 v3.2
       
   110             * @param aControl   Effect Control to be Deleted
       
   111             */            
       
   112             TInt DeleteEffectControl( MEffectControl*& aControl );
       
   113             /**
       
   114             * Creates the MDataBuffer
       
   115             *
       
   116             * @since S60 v3.2
       
   117             * @param aType      UID of Buffer Type
       
   118             * @param aSize      Size of the Buffer
       
   119             * @param aBuffer   Actual Pointer returned
       
   120             */            
       
   121             TInt CreateDataBuffer( TUid aType, TUint aSize, MDataBuffer*& aBuffer );
       
   122             /**
       
   123             * Deletes the MDataBuffer
       
   124             *
       
   125             * @since S60 v3.2
       
   126             * @param aControl   Buffer to be Deleted
       
   127             */            
       
   128             TInt DeleteDataBuffer( MDataBuffer*& aBuffer );
       
   129             
       
   130         private:
       
   131             CMultimediaFactoryImpl();
       
   132             void ConstructL();
       
   133                 
       
   134         private:
       
   135             // Pointer to the Download Gateway.
       
   136             CDownloadGateway* iGateway;
       
   137                         
       
   138         };
       
   139     } // namespace multimedia
       
   140 
       
   141 #endif // C_CCONTROLFACTORYIMPL_H
       
   142 
       
   143 // End of file