kicad/cvpcb/cvpcb.h

155 lines
4.0 KiB
C++

/**********************************************/
/* CVPCB : declaration des variables globales */
/**********************************************/
#ifndef eda_global
#define eda_global extern
#endif
#include "wxstruct.h"
#include "pcbnew.h"
#include "cvstruct.h"
#include "gr_basic.h"
#include "colors.h"
// Define print format d to display a schematic component line
#define CMP_FORMAT wxT("%3d %8s - %16s : %-.32s")
#define FILTERFOOTPRINTKEY "FilterFootprint"
enum TypeOfStruct
{
STRUCT_NOT_INIT,
STRUCT_COMPONENT,
STRUCT_PIN,
STRUCT_MODULE,
STRUCT_PSEUDOMODULE
};
class STOREPIN
{
public:
int m_Type; /* Type de la structure */
STOREPIN * Pnext; /* Chainage avant */
int m_Index; /* variable utilisee selon types de netlistes */
int m_PinType; /* code type electrique ( Entree Sortie Passive..) */
wxString m_PinNet; /* Pointeur sur le texte nom de net */
wxString m_PinNum;
wxString m_PinName;
wxString m_Repere; /* utilise selon formats de netliste */
STOREPIN();
} ;
class STORECMP
{
public:
int m_Type; /* Type de la structure */
STORECMP * Pnext; /* Chainage avant */
STORECMP * Pback; /* Chainage arriere */
int m_Num; /* Numero d'ordre */
int m_Multi; /* Nombre d' unites par boitier */
STOREPIN * m_Pins; /* pointeur sur la liste des Pins */
wxString m_Reference; /* U3, R5 ... */
wxString m_Valeur; /* 7400, 47K ... */
wxString m_TimeStamp; /* Signature temporelle ("00000000" si absente) */
wxString m_Module; /* Nom du module (Package) corresp */
wxString m_Repere; /* utilise selon formats de netliste */
wxArrayString m_FootprintFilter; /* List of allowed footprints (wildcart allowed
if void: no filtering */
STORECMP();
~STORECMP();
} ;
class STOREMOD
{
public:
int m_Type; /* Type de la structure */
STOREMOD * Pnext; /* Chainage avant */
STOREMOD * Pback; /* Chainage arriere */
wxString m_Module; /* Nom du module */
wxString m_LibName; /* Nom de la librairie contenant ce module */
int m_Num ; /* Numero d'ordre pour affichage sur la liste */
wxString m_Doc; /* Doc associee */
wxString m_KeyWord; /* Mots cles associes */
STOREMOD();
};
eda_global STOREMOD * g_BaseListePkg;
eda_global STORECMP * g_BaseListeCmp;
eda_global FILE *source ;
eda_global FILE *dest ;
eda_global FILE *libcmp ;
eda_global FILE *lib_module ;
/* nom des fichiers a traiter */
eda_global wxString FFileName;
/* Types de netliste: */
#define TYPE_NON_SPECIFIE 0
#define TYPE_ORCADPCB2 1
#define TYPE_PCAD 2
#define TYPE_VIEWLOGIC_WIR 3
#define TYPE_VIEWLOGIC_NET 4
/* Gestion des noms des librairies */
eda_global wxString g_EquivExtBuffer
#ifdef MAIN
( wxT(".equ") )
#endif
;
eda_global wxString g_ExtCmpBuffer
#ifdef MAIN
( wxT(".cmp") )
#endif
;
eda_global wxString g_UserNetDirBuffer; // Netlist path (void = current working directory)
eda_global wxArrayString g_ListName_Equ; // list of .equ files to load
eda_global int g_FlagEESchema;
eda_global int Rjustify; /* flag pout troncature des noms de Net:
= 0: debut de chaine conservee (->ORCADPCB2)
= 1: fin de chaine conservee (->VIEWLOGIC) */
eda_global int selection_type; /* 0 pour sel par U??, 1 pour sel par ref ORCADPCB */
eda_global int modified; /* Flag != 0 si modif attribution des modules */
eda_global int ListModIsModified; /* Flag != 0 si modif liste des lib modules */
eda_global char alim[1024];
eda_global int nbcomp ; /* nombre de composants trouves */
eda_global int nblib ; /* nombre d'empreintes trouvees */
eda_global int composants_non_affectes ;/* nbre de composants non affectes */
eda_global wxString NameBuffer;
eda_global wxString NetInNameBuffer;
eda_global wxString NetInExtBuffer;
eda_global wxString PkgInExtBuffer;
eda_global wxString NetDirBuffer;
eda_global wxString ExtRetroBuffer
#ifdef MAIN
( wxT(".stf") )
#endif
;
// Variables generales */
// Unused, for pcbnew compatibility:
eda_global Ki_PageDescr * SheetList[]
#ifdef MAIN
= {NULL}
#endif
;
// Unused, for pcbnew compatibility:
void Plume(int state);