00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef PV_PLAYER_INTERFACE_H_INCLUDED
00013 #define PV_PLAYER_INTERFACE_H_INCLUDED
00014
00015
00016
00017 #ifndef OSCL_BASE_H_INCLUDED
00018 #include "oscl_base.h"
00019 #endif
00020
00021 #ifndef OSCL_STRING_H_INCLUDED
00022 #include "oscl_string.h"
00023 #endif
00024
00025 #ifndef OSCL_VECTOR_H_INCLUDED
00026 #include "oscl_vector.h"
00027 #endif
00028
00029 #ifndef OSCL_MEM_H_INCLUDED
00030 #include "oscl_mem.h"
00031 #endif
00032
00033 #ifndef PVLOGGER_H_INCLUDED
00034 #include "pvlogger.h"
00035 #endif
00036
00037 #ifndef PVMF_RETURN_CODES_H_INCLUDED
00038 #include "pvmf_return_codes.h"
00039 #endif
00040
00041 #ifndef PV_ENGINE_TYPES_H_INCLUDED
00042 #include "pv_engine_types.h"
00043 #endif
00044
00045 #ifndef PV_PLAYER_TYPES_H_INCLUDED
00046 #include "pv_player_types.h"
00047 #endif
00048
00049 #ifndef PV_PLAYER_EVENTS_H_INCLUDED
00050 #include "pv_player_events.h"
00051 #endif
00052
00053 #ifndef PV_PLAYER_DATASOURCE_H_INCLUDED
00054 #include "pv_player_datasource.h"
00055 #endif
00056
00057 #ifndef PV_PLAYER_DATASINK_H_INCLUDED
00058 #include "pv_player_datasink.h"
00059 #endif
00060
00061 #ifndef PVMI_KVP_H_INCLUDED
00062 #include "pvmi_kvp.h"
00063 #endif
00064
00065 #ifndef PVMF_MEDIA_CLOCK_H_INCLUDED
00066 #include "pvmf_media_clock.h"
00067 #endif
00068
00069
00070
00077 class PVPlayerInterface
00078 {
00079 public:
00080
00085 virtual ~PVPlayerInterface() {};
00086
00104 virtual PVCommandId GetSDKModuleInfo(PVSDKModuleInfo &aSDKModuleInfo, const OsclAny* aContextData = NULL) = 0;
00105
00128 virtual PVCommandId SetLogAppender(const char* aTag, OsclSharedPtr<PVLoggerAppender>& aAppender, const OsclAny* aContextData = NULL) = 0;
00129
00149 virtual PVCommandId RemoveLogAppender(const char* aTag, OsclSharedPtr<PVLoggerAppender>& aAppender, const OsclAny* aContextData = NULL) = 0;
00150
00174 virtual PVCommandId SetLogLevel(const char* aTag, int32 aLevel, bool aSetSubtree = false, const OsclAny* aContextData = NULL) = 0;
00175
00194 virtual PVCommandId GetLogLevel(const char* aTag, PVLogLevelInfo& aLogInfo, const OsclAny* aContextData = NULL) = 0;
00195
00219 virtual PVCommandId QueryUUID(const PvmfMimeString& aMimeType, Oscl_Vector<PVUuid, OsclMemAllocator>& aUuids,
00220 bool aExactUuidsOnly = false, const OsclAny* aContextData = NULL) = 0;
00241 virtual PVCommandId QueryInterface(const PVUuid& aUuid, PVInterface*& aInterfacePtr, const OsclAny* aContextData = NULL) = 0;
00242
00259 virtual PVCommandId CancelCommand(PVCommandId aCancelCmdId, const OsclAny* aContextData = NULL) = 0;
00260
00272 virtual PVCommandId CancelAllCommands(const OsclAny* aContextData = NULL) = 0;
00273
00288 virtual PVCommandId GetPVPlayerState(PVPlayerState& aState, const OsclAny* aContextData = NULL) = 0;
00289
00300 virtual PVMFStatus GetPVPlayerStateSync(PVPlayerState& aState) = 0;
00301
00319 virtual PVCommandId AddDataSource(PVPlayerDataSource& aDataSource, const OsclAny* aContextData = NULL) = 0;
00320
00338 virtual PVCommandId Init(const OsclAny* aContextData = NULL) = 0;
00339
00366 virtual PVCommandId GetMetadataKeys(PVPMetadataList& aKeyList, int32 aStartingIndex = 0, int32 aMaxEntries = -1,
00367 char* aQueryKey = NULL, const OsclAny* aContextData = NULL) = 0;
00368
00399 virtual PVCommandId GetMetadataValues(PVPMetadataList& aKeyList, int32 aStartingValueIndex, int32 aMaxValueEntries, int32& aNumAvailableValueEntries,
00400 Oscl_Vector<PvmiKvp, OsclMemAllocator>& aValueList, const OsclAny* aContextData = NULL, bool aMetadataValuesCopiedInCallBack = true) = 0;
00401
00419 virtual PVCommandId ReleaseMetadataValues(Oscl_Vector<PvmiKvp, OsclMemAllocator>& aValueList, const OsclAny* aContextData = NULL) = 0;
00420
00438 virtual PVCommandId AddDataSink(PVPlayerDataSink& aDataSink, const OsclAny* aContextData = NULL) = 0;
00439
00470 virtual PVCommandId SetPlaybackRange(PVPPlaybackPosition aBeginPos, PVPPlaybackPosition aEndPos, bool aQueueRange, const OsclAny* aContextData = NULL) = 0;
00471
00492 virtual PVCommandId GetPlaybackRange(PVPPlaybackPosition &aBeginPos, PVPPlaybackPosition &aEndPos, bool aQueued, const OsclAny* aContextData = NULL) = 0;
00493
00509 virtual PVCommandId GetCurrentPosition(PVPPlaybackPosition &aPos, const OsclAny* aContextData = NULL) = 0;
00510
00543 virtual PVCommandId SetPlaybackRate(int32 aRate, PVMFTimebase* aTimebase = NULL, const OsclAny* aContextData = NULL) = 0;
00544
00568 virtual PVCommandId GetPlaybackRate(int32& aRate, PVMFTimebase*& aTimebase, const OsclAny* aContextData = NULL) = 0;
00569
00589 virtual PVCommandId GetPlaybackMinMaxRate(int32& aMinRate, int32& aMaxRate, const OsclAny* aContextData = NULL) = 0;
00590
00602 virtual PVMFStatus GetCurrentPositionSync(PVPPlaybackPosition &aPos) = 0;
00603
00620 virtual PVCommandId Prepare(const OsclAny* aContextData = NULL) = 0;
00621
00636 virtual PVCommandId Start(const OsclAny* aContextData = NULL) = 0;
00637
00651 virtual PVCommandId Pause(const OsclAny* aContextData = NULL) = 0;
00652
00667 virtual PVCommandId Resume(const OsclAny* aContextData = NULL) = 0;
00668
00684 virtual PVCommandId Stop(const OsclAny* aContextData = NULL) = 0;
00685
00703 virtual PVCommandId RemoveDataSink(PVPlayerDataSink& aDataSink, const OsclAny* aContextData = NULL) = 0;
00704
00720 virtual PVCommandId Reset(const OsclAny* aContextData = NULL) = 0;
00721
00739 virtual PVCommandId RemoveDataSource(PVPlayerDataSource& aDataSource, const OsclAny* aContextData = NULL) = 0;
00740
00750 OSCL_IMPORT_REF static void GetSDKInfo(PVSDKInfo& aSDKInfo);
00751
00752 };
00753
00754
00755
00756
00757 #endif // PV_PLAYER_INTERFACE_H_INCLUDED