00001 #ifndef PVAUTHORENGINEINTERFACE_H_INCLUDED
00002 #define PVAUTHORENGINEINTERFACE_H_INCLUDED
00003
00004 #ifndef OSCL_BASE_H_INCLUDED
00005 #include "oscl_base.h"
00006 #endif
00007 #ifndef OSCL_STRING_H_INCLUDED
00008 #include "oscl_string.h"
00009 #endif
00010 #ifndef PV_ENGINE_TYPES_H_INCLUDED
00011 #include "pv_engine_types.h"
00012 #endif
00013
00014
00015 class PVMFNodeInterface;
00016 class PVLoggerAppender;
00017 template<class T, class Alloc> class Oscl_Vector;
00018
00022 enum PVAEState
00023 {
00024 PVAE_STATE_IDLE = 0,
00025 PVAE_STATE_OPENED,
00026 PVAE_STATE_INITIALIZED,
00027 PVAE_STATE_RECORDING,
00028 PVAE_STATE_PAUSED,
00029 PVAE_STATE_ERROR
00030 };
00031
00035 enum PVAEErrorEvent
00036 {
00037
00038 PVAE_ENCODE_ERROR
00039 };
00040
00044 enum PVAEInfoEvent
00045 {
00046
00047 PVAE_OUTPUT_PROGRESS
00048 };
00049
00050
00054 class PVAuthorEngineInterface
00055 {
00056 public:
00060 virtual ~PVAuthorEngineInterface() {};
00061
00081 virtual PVCommandId SetLogAppender(const char* aTag, PVLoggerAppender& aAppender, const OsclAny* aContextData = NULL) = 0;
00082
00099 virtual PVCommandId RemoveLogAppender(const char* aTag, PVLoggerAppender& aAppender, const OsclAny* aContextData = NULL) = 0;
00100
00120 virtual PVCommandId SetLogLevel(const char* aTag, int32 aLevel, bool aSetSubtree = false, const OsclAny* aContextData = NULL) = 0;
00121
00138 virtual PVCommandId GetLogLevel(const char* aTag, PVLogLevelInfo& aLogInfo, const OsclAny* aContextData = NULL) = 0;
00139
00149 virtual PVCommandId Open(const OsclAny* aContextData = NULL) = 0;
00150
00162 virtual PVCommandId Close(const OsclAny* aContextData = NULL) = 0;
00163
00174 virtual PVCommandId AddDataSource(const PVMFNodeInterface& aDataSource, const OsclAny* aContextData = NULL) = 0;
00175
00186 virtual PVCommandId RemoveDataSource(const PVMFNodeInterface& aDataSource, const OsclAny* aContextData = NULL) = 0;
00187
00209 virtual PVCommandId SelectComposer(const PvmfMimeString& aComposerType,
00210 PVInterface*& aConfigInterface,
00211 const OsclAny* aContextData = NULL) = 0;
00212
00234 virtual PVCommandId SelectComposer(const PVUuid& aComposerUuid,
00235 PVInterface*& aConfigInterface,
00236 const OsclAny* aContextData = NULL) = 0;
00237
00263 virtual PVCommandId AddMediaTrack(const PVMFNodeInterface& aDataSource,
00264 const PvmfMimeString& aEncoderType,
00265 const OsclAny* aComposer,
00266 PVInterface*& aConfigInterface,
00267 const OsclAny* aContextData = NULL) = 0;
00268
00294 virtual PVCommandId AddMediaTrack(const PVMFNodeInterface& aDataSource,
00295 const PVUuid& aEncoderUuid,
00296 const OsclAny* aComposer,
00297 PVInterface*& aConfigInterface,
00298 const OsclAny* aContextData = NULL) = 0;
00299
00314 virtual PVCommandId AddDataSink(const PVMFNodeInterface& aDataSink,
00315 const OsclAny* aComposer,
00316 const OsclAny* aContextData = NULL) = 0;
00317
00329 virtual PVCommandId RemoveDataSink(const PVMFNodeInterface& aDataSink, const OsclAny* aContextData = NULL) = 0;
00330
00331
00347 virtual PVCommandId Init(const OsclAny* aContextData = NULL) = 0;
00348
00366 virtual PVCommandId Reset(const OsclAny* aContextData = NULL) = 0;
00367
00380 virtual PVCommandId Start(const OsclAny* aContextData = NULL) = 0;
00381
00393 virtual PVCommandId Pause(const OsclAny* aContextData = NULL) = 0;
00394
00406 virtual PVCommandId Resume(const OsclAny* aContextData = NULL) = 0;
00407
00420 virtual PVCommandId Stop(const OsclAny* aContextData = NULL) = 0;
00421
00431 virtual PVAEState GetPVAuthorState() = 0;
00432
00447 virtual PVCommandId QueryUUID(const PvmfMimeString& aMimeType,
00448 Oscl_Vector<PVUuid, OsclMemAllocator>& aUuids,
00449 bool aExactUuidsOnly = false,
00450 const OsclAny* aContextData = NULL) = 0;
00451
00465 virtual PVCommandId QueryInterface(const PVUuid& aUuid,
00466 PVInterface*& aInterfacePtr,
00467 const OsclAny* aContextData = NULL) = 0;
00468
00482 virtual PVCommandId GetSDKModuleInfo(PVSDKModuleInfo& aSDKModuleInfo, const OsclAny* aContextData = NULL) = 0;
00483
00492 virtual PVCommandId CancelAllCommands(const OsclAny* aContextData = NULL) = 0;
00493
00503 OSCL_IMPORT_REF static void GetSDKInfo(PVSDKInfo& aSDKInfo);
00504 };
00505
00506 #endif // PVAUTHORENGINE_H_INCLUDED
00507
00508