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

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