mmmw_plat/enhanced_media_client_api/inc/StreamControl.h
changeset 0 71ca22bcf22a
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:  Header of StreamControl interface.
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #ifndef STREAMCONTROL_H
       
    20 #define STREAMCONTROL_H
       
    21 
       
    22 #include <e32base.h>
       
    23 #include <Control.h>
       
    24 #include <MCustomInterface.h>
       
    25 
       
    26 namespace multimedia
       
    27     {
       
    28     
       
    29     // Forward declaration
       
    30     class MSourceControl;
       
    31     class MSinkControl;
       
    32     class MEffectControl;
       
    33     
       
    34     // Uid identifying Stream Control
       
    35     const TUid KStreamControl = {0x10207B44};
       
    36     
       
    37     // Class declaration
       
    38     class MStreamControl : public MControl, public MCustomInterface
       
    39         {
       
    40         public:
       
    41             enum TStreamState
       
    42                 {
       
    43                 CLOSED,
       
    44                 INITIALIZED,
       
    45                 PRIMED,
       
    46                 EXECUTING,
       
    47                 BUFFERING,
       
    48                 PAUSED
       
    49                 };
       
    50 
       
    51         public:
       
    52             // Config msgs
       
    53             virtual TInt AddSource( MSourceControl& aSource ) = 0;
       
    54             virtual TInt RemoveSource( MSourceControl& aSource ) = 0;
       
    55             virtual TInt AddSink( MSinkControl& aSink ) = 0;
       
    56             virtual TInt RemoveSink( MSinkControl& aSink ) = 0;
       
    57             virtual TInt AddEffect( MEffectControl& aEffect ) = 0;
       
    58             virtual TInt RemoveEffect( MEffectControl& aEffect ) = 0;
       
    59             virtual TInt SetPosition( TInt64& aPos ) = 0;
       
    60             virtual TInt SetPriority( TInt aPriority, TInt aPreference ) = 0;
       
    61             
       
    62             // Query msgs
       
    63             virtual TInt GetDuration( TInt64& aDuration ) = 0;
       
    64             virtual TInt GetPosition( TInt64& aPos) = 0;
       
    65             virtual TInt GetSeekingSupport( TBool& aFlag ) = 0;
       
    66             virtual TInt GetRandomSeekingSupport( TBool& aFlag ) = 0;
       
    67             virtual TStreamState GetState() = 0;
       
    68             virtual TAny* CustomInterface( TUid aCIUid ) = 0;
       
    69             
       
    70             // Control msg
       
    71             virtual TInt Open() = 0;
       
    72             virtual TInt Prime() = 0;
       
    73             virtual TInt Start() = 0;
       
    74             virtual TInt Pause() = 0;
       
    75             virtual TInt Stop() = 0;
       
    76             virtual TInt Close() = 0;
       
    77             
       
    78         };
       
    79     } // namespace multimedia
       
    80 
       
    81 #endif // STREAMCONTROL_H
       
    82 
       
    83 // End of file