mtpdataproviders/mtpplaybackcontroldp/mtpplaybackinterface/inc/mmtpplaybackinterface.h
author hgs
Fri, 25 Jun 2010 16:54:01 +0800
changeset 29 3ae5cb0b4c02
child 47 63cf70d3ecd8
permissions -rw-r--r--
201025_07
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     1
// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     2
// All rights reserved.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     7
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     8
// Initial Contributors:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    10
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    11
// Contributors:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    12
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    13
// Description:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    14
//
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    15
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    16
/**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    17
 @file
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    18
 @internalComponent
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    19
*/
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    20
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    21
#ifndef MMTPPLAYBACKINTERFACE_H
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    22
#define MMTPPLAYBACKINTERFACE_H
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    23
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    24
const TInt KPlaybackErrNone = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    25
const TInt KPlaybackErrDeviceBusy = (-8000);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    26
const TInt KPlaybackErrDeviceUnavailable = (-8001);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    27
const TInt KPlaybackErrParamInvalid = (-8002);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    28
const TInt KPlaybackErrContextInvalid = (-8003);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    30
/** Playback status */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    31
enum TMTPPlaybackState
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    32
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    33
    /** Playing */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    34
    EPlayStatePlaying,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    35
    /** Pause */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    36
    EPlayStatePaused,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    37
    /** Forward seeking */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    38
    EPlayStateForwardSeeking,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    39
    /** Backward seeking */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    40
    EPlayStateBackwardSeeking,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    41
    /** error state */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    42
    EPlayStateError
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    43
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    44
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    45
/** Playback events */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    46
enum TMTPPlaybackEvent
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    47
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    48
    EPlaybackEventNone,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    49
    /** playback volume update */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    50
    EPlaybackEventVolumeUpdate,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    51
    /** playback object update */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    52
    EPlaybackEventObjectUpdate,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    53
    /** playback object index update */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    54
    EPlaybackEventObjectIndexUpdate,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    55
    /** player state update */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    56
    EPlaybackEventStateUpdate,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    57
    /** Last Event */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    58
    EPlaybackEventEnd
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    59
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    60
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    61
/** Playback command */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    62
enum TMTPPlaybackCommand
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    63
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    64
    EPlaybackCmdNone,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    65
    EPlaybackCmdInitObject,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    66
    EPlaybackCmdInitIndex,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    67
    EPlaybackCmdPlay,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    68
    EPlaybackCmdPause,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    69
    EPlaybackCmdStop,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    70
    EPlaybackCmdSkip,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    71
    EPlaybackCmdSeekForward,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    72
    EPlaybackCmdSeekBackward,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    73
    EPlaybackCmdGetVolume,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    74
    EPlaybackCmdGetVolumeSet,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    75
    EPlaybackCmdSetVolume,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    76
    EPlaybackCmdGetPosition,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    77
    EPlaybackCmdSetPosition,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    78
    EPlaybackCmdGetDuration,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    79
    EPlaybackCmdGetState,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    80
    EPlaybackCmdGetObject,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    81
    EPlaybackCmdGetIndex,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    82
    EPlaybackCmdEnd
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    83
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    84
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    85
class CMTPPlaybackCommand;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    86
class CMTPPlaybackEvent;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    87
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    88
class MMTPPlaybackObserver
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    89
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    90
public: 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    91
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    92
     * Called when playback object is updated or 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    93
     * playback object's position is updated 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    94
     * in the active player instance.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    95
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    96
    virtual void HandlePlaybackEventL(CMTPPlaybackEvent* aEvent, TInt aErr = KPlaybackErrNone) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    97
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    98
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    99
class MMTPPlaybackCallback
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   100
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   101
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   102
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   103
     * Called when playback command is completed
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   104
     * 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   105
     * @param aErr Complete error
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   106
     * @param aCmd Complete command
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   107
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   108
    virtual void HandlePlaybackCommandCompleteL(CMTPPlaybackCommand* aCmd, TInt aErr = KPlaybackErrNone) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   109
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   110
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   111
class MMTPPlaybackControl
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   112
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   113
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   114
    /** 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   115
    *  Create an Instance of MMTPPlaybackControl's implementation.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   116
    */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   117
    static MMTPPlaybackControl* NewL(MMTPPlaybackObserver& aObserver);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   118
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   119
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   120
    *  Frees resource, and destroy the object itself.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   121
    */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   122
    virtual void Close()=0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   123
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   124
    /** 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   125
    *  Issue player commands, with optional data.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   126
    *  @param aCmd the command
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   127
    *  @param aCallback Call back function
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   128
    */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   129
    virtual void CommandL(CMTPPlaybackCommand& aCmd, MMTPPlaybackCallback* aCallback = NULL) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   130
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   131
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   132
#endif // MMTPPLAYBACKINTERFACE_H
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   133
// End of File