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