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( 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 
00068         virtual bool                        load_file( const char* szName, ImportInterfaceC* pInterface );
00069 
00071 
00075         virtual bool                        create_file( ImportInterfaceC* pInterface );
00076 
00078 
00082         virtual bool                        prompt_properties( PajaSystem::DeviceContextC* pContext, 
00083                                                                 PajaSystem::TimeContextC* pTimeContext,
00084                                                                 ImportInterfaceC* pInterface );
00085 
00087 
00090         virtual bool                        has_properties();
00091 
00093 
00117         virtual void                        initialize( PajaTypes::uint32 ui32Reason, 
00118                                                         PajaSystem::DeviceContextC* pContext, 
00119                                                         PajaSystem::TimeContextC* pTimeContext ) = 0;
00120 
00122         /* \param pHandle pointer to the handle of the file which has changed.
00123             When a file is changed in any way each file in file list which has the changed
00124             file as a reference is updated using this method.
00125 
00126             The default implmentation does nothing.
00127         */
00128         virtual void                        update_notify( FileHandleC* pHandle,
00129                                                             PajaSystem::DeviceContextC* pContext, 
00130                                                             PajaSystem::TimeContextC* pTimeContext,
00131                                                             ImportInterfaceC* pInterface );
00132 
00134 
00142         virtual PajaTypes::uint32           get_reference_file_count();
00143 
00145 
00146         virtual FileHandleC*                get_reference_file( PajaTypes::uint32 ui32Index );
00147 
00149         virtual PluginClass::SuperClassIdC  get_super_class_id() = 0;
00151         virtual PluginClass::ClassIdC       get_class_id() = 0;
00153         virtual const char*                 get_class_name() = 0;
00154 
00156 
00159         virtual const char*                 get_info() = 0;
00160 
00162 
00186         virtual void                        eval_state( PajaTypes::int32 i32Time, PajaSystem::DeviceContextC* pContext, PajaSystem::TimeContextC* pTimeContext ) = 0;
00187 
00189 
00203         virtual PajaTypes::int32            get_duration( PajaSystem::TimeContextC* pTimeContext ) = 0;
00204 
00206 
00220         virtual PajaTypes::float32          get_start_label( PajaSystem::TimeContextC* pTimeContext ) = 0;
00221         
00223 
00237         virtual PajaTypes::float32          get_end_label( PajaSystem::TimeContextC* pTimeContext ) = 0;
00238 
00240         virtual PluginClass::ClassIdC       get_default_effect() = 0;
00241 
00243 
00248         virtual bool                        equals( ImportableI* pImp );
00249 
00250     protected:
00252         ImportableI();
00254         ImportableI( Edit::EditableI* pOriginal );
00256         virtual ~ImportableI();
00257 
00258     };
00259 
00260 };
00261 
00262 #endif

Moppi Demopaja SDK Documentation -- Copyright © 2000-2002 Moppi Productions