Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members Related Pages

# ImportableI.h

    00001 //-------------------------------------------------------------------------
    00002 //
    00003 // File:        ImportableI.h
    00004 // Desc:        Importable interface.
    00005 // Author:      memon <memon@inside.org>
    00006 //
    00007 //-------------------------------------------------------------------------
    00008 //  Copyright (c) 2000-2002 Moppi Productions. All Rights Reserved.
    00009 //  This file is part of Moppi Demopaja SDK. For conditions of
    00010 //  distribution and use, see the accompanying license.txt file.
    00011 //  http://moppi.inside.org/demopaja/
    00012 //-------------------------------------------------------------------------
    00013
    00014 #ifndef __DEMOPAJA_IMPORTABLEI_H__
    00015 #define __DEMOPAJA_IMPORTABLEI_H__
    00016
    00017 // Forward declaration
    00018 namespace Import {
    00019     class ImportableI;
    00020 };
    00021
    00022 #include "PajaTypes.h"
    00023 #include "DataBlockI.h"
    00024 #include "EditableI.h"
    00025 #include "UndoC.h"
    00026 #include "ClassIdC.h"
    00027 #include "ImportInterfaceC.h"
    00028 #include "FileHandleC.h"
    00029 #include "TimeContextC.h"
    00030 #include "DeviceContextC.h"
    00031
    00032
    00033
    00034 namespace PluginClass {
    00036
    00038     const PluginClass::SuperClassIdC        SUPERCLASS_IMPORT = PluginClass::SuperClassIdC( 0, 0x2000000 );
    00039 };
    00040
    00041 namespace Import {
    00042
    00044
    00051     class ImportableI : public Edit::EditableI
    00052     {
    00053     public:
    00055         virtual const char*                 get_filename() = 0;
    00057
    00061         virtual void                        set_filename( const char* szName ) = 0;
    00063
    00074         virtual bool                        load_file( const char* szName, ImportInterfaceC* pInterface );
    00075
    00077
    00081         virtual bool                        create_file( ImportInterfaceC* pInterface );
    00082
    00084
    00088         virtual bool                        prompt_properties( PajaSystem::DeviceContextC* pContext,
    00089                                                                 PajaSystem::TimeContextC* pTimeContext,
    00090                                                                 ImportInterfaceC* pInterface );
    00091
    00093
    00096         virtual bool                        has_properties();
    00097
    00099
    00123         virtual void                        initialize( PajaTypes::uint32 ui32Reason,
    00124                                                         PajaSystem::DeviceContextC* pContext,
    00125                                                         PajaSystem::TimeContextC* pTimeContext ) = 0;
    00126
    00128         /* \param pHandle pointer to the handle of the file which has changed.
    00129             When a file is changed in any way each file in file list which has the changed
    00130             file as a reference is updated using this method.
    00131
    00132             The default implmentation does nothing.
    00133         */
    00134         virtual void                        update_notify( FileHandleC* pHandle,
    00135                                                             PajaSystem::DeviceContextC* pContext,
    00136                                                             PajaSystem::TimeContextC* pTimeContext,
    00137                                                             ImportInterfaceC* pInterface );
    00138
    00140
    00148         virtual PajaTypes::uint32           get_reference_file_count();
    00149
    00151
    00152         virtual FileHandleC*                get_reference_file( PajaTypes::uint32 ui32Index );
    00153
    00155         virtual PluginClass::SuperClassIdC  get_super_class_id() = 0;
    00157         virtual PluginClass::ClassIdC       get_class_id() = 0;
    00159         virtual const char*                 get_class_name() = 0;
    00160
    00162
    00165         virtual const char*                 get_info() = 0;
    00166
    00168
    00192         virtual void                        eval_state( PajaTypes::int32 i32Time, PajaSystem::DeviceContextC* pContext, PajaSystem::TimeContextC* pTimeContext ) = 0;
    00193
    00195
    00209         virtual PajaTypes::int32            get_duration( PajaSystem::TimeContextC* pTimeContext ) = 0;
    00210
    00212
    00226         virtual PajaTypes::float32          get_start_label( PajaSystem::TimeContextC* pTimeContext ) = 0;
    00227
    00229
    00243         virtual PajaTypes::float32          get_end_label( PajaSystem::TimeContextC* pTimeContext ) = 0;
    00244
    00246         virtual PluginClass::ClassIdC       get_default_effect() = 0;
    00247
    00249
    00254         virtual bool                        equals( ImportableI* pImp );
    00255
    00256     protected:
    00258         ImportableI();
    00260         ImportableI( Edit::EditableI* pOriginal );
    00262         virtual ~ImportableI();
    00263
    00264     };
    00265
    00266 };
    00267
    00268 #endif