00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef __DEMOPAJA_IMPORTABLEI_H__
00015 #define __DEMOPAJA_IMPORTABLEI_H__
00016
00017
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
00129
00130
00131
00132
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