Main Page Class Hierarchy Data Structures File List Data Fields Globals

# pvauthorengineinterface.h

Go to the documentation of this file.

    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 // Forward declarations
    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     // TBD
    00038     PVAE_ENCODE_ERROR
    00039 };
    00040
    00044 enum PVAEInfoEvent
    00045 {
    00046     // TBD
    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