1 /*************************************************************************** 2 * Copyright (C) 2003-2004 by David Saxton * 3 * david@bluehaze.org * 4 * * 5 * This program is free software; you can redistribute it and/or modify * 6 * it under the terms of the GNU General Public License as published by * 7 * the Free Software Foundation; either version 2 of the License, or * 8 * (at your option) any later version. * 9 ***************************************************************************/ 10 11 #ifndef MICROINFO_H 12 #define MICROINFO_H 13 14 #include <QStringList> 15 16 class AsmInfo; 17 class MicroPackage; 18 19 /** 20 @author David Saxton 21 */ 22 class MicroInfo 23 { 24 public: 25 enum Support 26 { 27 FullSupport = 1 << 0, 28 PartialSupport = 1 << 1, 29 NoSupport = 1 << 2 30 }; 31 enum { AllSupport = FullSupport | PartialSupport | NoSupport }; 32 33 MicroInfo(); 34 virtual ~MicroInfo(); 35 36 virtual AsmInfo * instructionSet() = 0; 37 /** 38 * Returns the gpsim emulator support status 39 */ gpsimSupport()40 virtual Support gpsimSupport() const { return NoSupport; } 41 /** 42 * Returns the FlowCode support (i.e. constructing flowcode for the PIC) 43 */ flowcodeSupport()44 virtual Support flowcodeSupport() const { return NoSupport; } 45 /** 46 * Returns the Microbe support (i.e. compiling) 47 */ microbeSupport()48 virtual Support microbeSupport() const { return NoSupport; } 49 /** 50 * Returns a pointer to the Micro Package in use 51 */ package()52 MicroPackage *package() const { return m_package; } 53 /** 54 * Returns an id unique to the Micro 55 */ id()56 QString id() const { return m_id; } 57 58 protected: 59 QString m_id; 60 MicroPackage *m_package; 61 }; 62 63 #endif 64 65