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( 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
00123
00124
00125
00126
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