00001 //------------------------------------------------------------------------- 00002 // 00003 // File: DeviceInterfaceI.h 00004 // Desc: Device Interface 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_DEVICEINTERFACEI_H__ 00015 #define __DEMOPAJA_DEVICEINTERFACEI_H__ 00016 00017 // forward declaration 00018 //namespace PajaSystem { 00019 // class DeviceInterfaceI; 00020 //}; 00021 00022 #include "PajaTypes.h" 00023 #include "ClassIdC.h" 00024 #include "DataBlockI.h" 00025 #include "FileIO.h" 00026 00027 namespace PajaSystem { 00028 00030 enum DeviceStateE { 00031 DEVICE_STATE_OK, 00032 DEVICE_STATE_LOST, 00033 DEVICE_STATE_SHUTTINGDOWN, 00034 }; 00035 00037 00040 class DeviceInterfaceI : public Edit::DataBlockI 00041 { 00042 public: 00043 00045 virtual PluginClass::SuperClassIdC get_super_class_id() const = 0; 00047 virtual PluginClass::ClassIdC get_class_id() const = 0; 00049 virtual const char* get_class_name() = 0; 00050 00052 00057 virtual bool get_exclusive() const; 00058 00060 virtual PajaTypes::uint32 get_state() const; 00062 virtual void set_state( PajaTypes::uint32 ui32State ); 00063 00065 virtual PajaSystem::DeviceInterfaceI* query_interface( const PluginClass::SuperClassIdC& rSuperClassId ); 00066 00068 virtual PajaTypes::uint32 save( FileIO::SaveC* pSave ) = 0; 00070 virtual PajaTypes::uint32 load( FileIO::LoadC* pLoad ) = 0; 00071 00072 protected: 00074 DeviceInterfaceI(); 00076 virtual ~DeviceInterfaceI(); 00077 00078 PajaTypes::uint32 m_ui32State; 00079 }; 00080 00081 }; // namespace 00082 00083 #endif // __DEMOPAJA_DEVICEINTERFACEI_H__