mtpdataproviders/mtpplaybackcontroldp/mtpplaybackinterface/inc/mmtpplaybackinterface.h
author hgs
Thu, 04 Nov 2010 15:31:42 +0800
changeset 60 841f70763fbe
parent 49 c20dd21d1eb4
permissions -rw-r--r--
201044_04
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
49
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
    24
#include "mtpdebug.h"
c20dd21d1eb4 201035_05
hgs
parents: 29
diff changeset
    25
29
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    26
const TInt KPlaybackErrNone = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    27
const TInt KPlaybackErrDeviceBusy = (-8000);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    28
const TInt KPlaybackErrDeviceUnavailable = (-8001);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    29
const TInt KPlaybackErrParamInvalid = (-8002);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    30
const TInt KPlaybackErrContextInvalid = (-8003);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    31
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    32
/** Playback status */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    33
enum TMTPPlaybackState
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    34
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    35
    /** Playing */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    36
    EPlayStatePlaying,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    37
    /** Pause */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    38
    EPlayStatePaused,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    39
    /** Forward seeking */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    40
    EPlayStateForwardSeeking,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    41
    /** Backward seeking */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    42
    EPlayStateBackwardSeeking,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    43
    /** error state */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    44
    EPlayStateError
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    45
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    46
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    47
/** Playback events */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    48
enum TMTPPlaybackEvent
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    49
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    50
    EPlaybackEventNone,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    51
    /** playback volume update */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    52
    EPlaybackEventVolumeUpdate,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    53
    /** playback object update */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    54
    EPlaybackEventObjectUpdate,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    55
    /** playback object index update */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    56
    EPlaybackEventObjectIndexUpdate,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    57
    /** player state update */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    58
    EPlaybackEventStateUpdate,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    59
    /** Last Event */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    60
    EPlaybackEventEnd
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    61
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    62
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    63
/** Playback command */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    64
enum TMTPPlaybackCommand
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    65
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    66
    EPlaybackCmdNone,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    67
    EPlaybackCmdInitObject,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    68
    EPlaybackCmdInitIndex,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    69
    EPlaybackCmdPlay,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    70
    EPlaybackCmdPause,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    71
    EPlaybackCmdStop,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    72
    EPlaybackCmdSkip,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    73
    EPlaybackCmdSeekForward,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    74
    EPlaybackCmdSeekBackward,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    75
    EPlaybackCmdGetVolume,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    76
    EPlaybackCmdGetVolumeSet,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    77
    EPlaybackCmdSetVolume,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    78
    EPlaybackCmdGetPosition,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    79
    EPlaybackCmdSetPosition,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    80
    EPlaybackCmdGetDuration,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    81
    EPlaybackCmdGetState,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    82
    EPlaybackCmdGetObject,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    83
    EPlaybackCmdGetIndex,
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    84
    EPlaybackCmdEnd
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    85
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    86
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    87
class CMTPPlaybackCommand;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    88
class CMTPPlaybackEvent;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    89
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    90
class MMTPPlaybackObserver
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    91
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    92
public: 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    93
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    94
     * Called when playback object is updated or 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    95
     * playback object's position is updated 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    96
     * in the active player instance.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    97
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    98
    virtual void HandlePlaybackEventL(CMTPPlaybackEvent* aEvent, TInt aErr = KPlaybackErrNone) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
    99
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   100
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   101
class MMTPPlaybackCallback
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   102
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   103
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   104
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   105
     * Called when playback command is completed
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   106
     * 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   107
     * @param aErr Complete error
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   108
     * @param aCmd Complete command
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   109
     */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   110
    virtual void HandlePlaybackCommandCompleteL(CMTPPlaybackCommand* aCmd, TInt aErr = KPlaybackErrNone) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   111
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   112
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   113
class MMTPPlaybackControl
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   114
    {
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   115
public:
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   116
    /** 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   117
    *  Create an Instance of MMTPPlaybackControl's implementation.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   118
    */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   119
    static MMTPPlaybackControl* NewL(MMTPPlaybackObserver& aObserver);
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   120
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   121
    /**
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   122
    *  Frees resource, and destroy the object itself.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   123
    */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   124
    virtual void Close()=0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   125
    
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   126
    /** 
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   127
    *  Issue player commands, with optional data.
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   128
    *  @param aCmd the command
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   129
    *  @param aCallback Call back function
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   130
    */
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   131
    virtual void CommandL(CMTPPlaybackCommand& aCmd, MMTPPlaybackCallback* aCallback = NULL) = 0;
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   132
    };
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   133
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   134
#endif // MMTPPLAYBACKINTERFACE_H
3ae5cb0b4c02 201025_07
hgs
parents:
diff changeset
   135
// End of File