OpenASIP  2.0
AddIUFromHDBDialog.cc
Go to the documentation of this file.
1 /*
2  Copyright (c) 2002-2009 Tampere University.
3 
4  This file is part of TTA-Based Codesign Environment (TCE).
5 
6  Permission is hereby granted, free of charge, to any person obtaining a
7  copy of this software and associated documentation files (the "Software"),
8  to deal in the Software without restriction, including without limitation
9  the rights to use, copy, modify, merge, publish, distribute, sublicense,
10  and/or sell copies of the Software, and to permit persons to whom the
11  Software is furnished to do so, subject to the following conditions:
12 
13  The above copyright notice and this permission notice shall be included in
14  all copies or substantial portions of the Software.
15 
16  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
19  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  DEALINGS IN THE SOFTWARE.
23  */
24 /**
25  * @file AddIUFromHDBDialog.cc
26  *
27  * Implementation of AddIUFromHDBDialog class.
28  *
29  * @author Veli-Pekka Jääskeläinen 2006 (vjaaskel-no.spam-cs.tut.fi)
30  * @note rating: red
31  */
32 
33 #include <boost/format.hpp>
34 #include <wx/statline.h>
35 #include <wx/listctrl.h>
36 #include <wx/dir.h>
37 #include <wx/imaglist.h>
38 
39 #include "AddIUFromHDBDialog.hh"
40 #include "Model.hh"
41 #include "Machine.hh"
42 #include "WxConversion.hh"
43 #include "WidgetTools.hh"
44 #include "HDBManager.hh"
45 #include "HDBRegistry.hh"
46 #include "RFArchitecture.hh"
47 #include "WarningDialog.hh"
48 #include "MapTools.hh"
49 #include "Environment.hh"
50 #include "FileSystem.hh"
51 #include "Conversion.hh"
52 #include "ProDeConstants.hh"
53 
54 #if !wxCHECK_VERSION(3, 0, 0)
55  typedef long int wxIntPtr;
56 #endif
57 
58 using std::string;
59 using boost::format;
60 using namespace TTAMachine;
61 using namespace HDB;
62 
63 BEGIN_EVENT_TABLE(AddIUFromHDBDialog, wxDialog)
68  EVT_LIST_COL_CLICK(ID_LIST, AddIUFromHDBDialog::onColumnClick)
70 
71 
72 const int AddIUFromHDBDialog::DEFAULT_SIZE = 1;
73 const int AddIUFromHDBDialog::DEFAULT_WIDTH = 32;
74 const Machine::Extension AddIUFromHDBDialog::DEFAULT_EXTENSION_MODE =
75  Machine::ZERO;
76 
77 const wxString AddIUFromHDBDialog::HDB_FILE_FILTER = _T("*.hdb");
78 
79 int wxCALLBACK
80 IUListCompareASC(wxIntPtr item1, wxIntPtr item2, wxIntPtr sortData) {
81 
82  ListItemData* lid1 = (ListItemData*)item1;
83  ListItemData* lid2 = (ListItemData*)item2;
84  int sortColumn = (int)sortData;
85 
86  if (sortColumn == 0) {
87  return lid1->width - lid2->width;
88  } else if (sortColumn == 1) {
89  return lid1->size - lid2->size;
90  } else if (sortColumn == 2) {
91  return lid1->readPorts - lid2->readPorts;
92  } else if (sortColumn == 3) {
93  return lid1->latency - lid2->latency;
94  } else if (sortColumn == 4) {
95  return lid1->hdbId - lid2->hdbId;
96  } else if (sortColumn == 5) {
97  return lid1->path.Cmp(lid2->path);
98  }
99 
100  return 0;
101 }
102 
103 int wxCALLBACK
104 IUListCompareDESC(wxIntPtr item1, wxIntPtr item2, wxIntPtr sortData) {
105 
106  ListItemData* lid1 = (ListItemData*)item1;
107  ListItemData* lid2 = (ListItemData*)item2;
108  int sortColumn = (int)sortData;
109 
110  if (sortColumn == 0) {
111  return lid2->width - lid1->width;
112  } else if (sortColumn == 1) {
113  return lid2->size - lid1->size;
114  } else if (sortColumn == 2) {
115  return lid2->readPorts - lid1->readPorts;
116  } else if (sortColumn == 3) {
117  return lid2->latency - lid1->latency;
118  } else if (sortColumn == 4) {
119  return lid2->hdbId - lid1->hdbId;
120  } else if (sortColumn == 5) {
121  return lid2->path.Cmp(lid1->path);
122  }
123 
124  return 0;
125 }
126 
127 /**
128  * The Constructor.
129  *
130  * @param parent Parent window of the dialog.
131  * @param machine Parent Machine of the immediate slots.
132  */
134  wxWindow* parent,
135  Model* model) :
136  wxDialog(
137  parent, -1, _T("HDB Immediate Units"),
138  wxDefaultPosition, wxDefaultSize,
139  wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER),
140  model_(model), sortColumn_(0), sortASC_(true) {
141 
142  createContents(this, true, true);
143  SetSize(400, 300);
144 
145  list_ = dynamic_cast<wxListCtrl*>(FindWindow(ID_LIST));
146 
147  list_->InsertColumn(0, _T("Width"), wxLIST_FORMAT_LEFT, wxLIST_AUTOSIZE);
148  list_->InsertColumn(1, _T("Size"), wxLIST_FORMAT_LEFT, wxLIST_AUTOSIZE);
149  list_->InsertColumn(2, _T("Read ports"), wxLIST_FORMAT_LEFT, 100);
150  //list_->InsertColumn(5, _T("Max Reads"));
151  //list_->InsertColumn(6, _T("Max RW"));
152  list_->InsertColumn(3, _T("Latency"), wxLIST_FORMAT_LEFT, wxLIST_AUTOSIZE);
153  list_->InsertColumn(4, _T("ID"), wxLIST_FORMAT_LEFT, wxLIST_AUTOSIZE);
154  list_->InsertColumn(5, _T("HDB"), wxLIST_FORMAT_LEFT, wxLIST_AUTOSIZE);
155 
156  string iconPath =
158 
159  wxImageList* imageList = new wxImageList(13, 17);
160  imageList->Add(wxIcon(
162  imageList->Add(wxIcon(
164  list_->SetImageList(imageList, wxIMAGE_LIST_SMALL);
165 
166  // Disable conditional buttons.
167  FindWindow(ID_ADD)->Disable();
168 }
169 
170 
171 /**
172  * The Destructor.
173  */
176 }
177 
178 
179 /**
180  * Transfers data from the HDBs to the dialog list.
181  *
182  * @return True, if the the data transfer was succesful.
183  */
184 bool
186 
188  list_->DeleteAllItems();
189 
190 
191  const std::vector<string> hdbPaths = Environment::hdbPaths();
192  std::vector<string>::const_iterator hdbIter = hdbPaths.begin();
193 
194  wxString paths;
195  bool hdbsFound = false;
196 
197  // Read all hdb files found in the search directories.
198  for(; hdbIter != hdbPaths.end(); hdbIter++) {
199 
200  wxString file;
201  wxString hdbPath = WxConversion::toWxString(*hdbIter);
202  paths.Append(hdbPath);
203  paths.Append(_T("\n"));
204  wxDir dir;
205 
206  if (dir.Exists(hdbPath) &&
207  dir.Open(hdbPath) &&
208  dir.GetFirst(&file, HDB_FILE_FILTER)) {
209 
210  do {
211  string path = *hdbIter + FileSystem::DIRECTORY_SEPARATOR +
213 
214  if (loadHDB(path)) {
215  hdbsFound = true;
216  }
217  } while (dir.GetNext(&file));
218 
219  }
220 
221  }
222 
223  if (!hdbsFound) {
224  wxString message = _T("No HDBs found in HDB search paths:\n");
225  message.Append(paths);
226  WarningDialog dialog(this, message);
227  dialog.ShowModal();
228  }
229 
230  list_->SetColumnWidth(5, wxLIST_AUTOSIZE);
231  return wxDialog::TransferDataToWindow();
232 }
233 
234 /**
235  * Loads immediate units from a HDB to the dialog list.
236  *
237  * @param path Full path to the HDB file to load.
238  * @return True, if the HDB was succesfully loaded.
239  */
240 bool
241 AddIUFromHDBDialog::loadHDB(const std::string& path) {
242 
243  HDBManager* manager = NULL;
244 
245  try {
246  manager = &HDBRegistry::instance().hdb(path);
247  } catch (Exception& e) {
248  wxString message = _T("Unable to open HDB '");
249  message.Append(WxConversion::toWxString(path));
250  message.Append(_T("':'"));
251  message.Append(WxConversion::toWxString(e.errorMessage()));
252  WarningDialog dialog(this, message);
253  dialog.ShowModal();
254  return false;
255  }
256 
257  const std::set<RowID> rfArchIDs = manager->rfArchitectureIDs();
258  std::set<RowID>::iterator iter = rfArchIDs.begin();
259 
260  // Read properties of all immediate units in the HDB and append
261  // data in the list widget.
262  for (; iter != rfArchIDs.end(); iter++) {
263 
264  RFArchitecture* arch = manager->rfArchitectureByID(*iter);
265 
266  if (arch->writePortCount() != 1 ||
267  arch->bidirPortCount() != 0) {
268 
269  // Register file architecture must contain one read port and
270  // no bidirectional ports or it's not listed as an immediate
271  // unit architecture.
272  continue;
273  }
274 
275  iuArchitectures_.insert(
276  std::pair<int, RFArchitecture*>(list_->GetItemCount(), arch));
277 
278  ListItemData* lid = new ListItemData;
279 
280  if (arch->hasParameterizedWidth()) {
281  list_->InsertItem(0, _T("param"));
282  lid->width = 0;
283  } else {
284  list_->InsertItem(0, WxConversion::toWxString(arch->width()));
285  lid->width = arch->width();
286  }
287  if (arch->hasParameterizedSize()) {
288  list_->SetItem(0, 1, _T("param"));
289  lid->size = 0;
290  } else {
291  list_->SetItem(0, 1, WxConversion::toWxString(arch->size()));
292  lid->size = arch->size();
293  }
294  list_->SetItem(0, 2, WxConversion::toWxString(arch->readPortCount()));
295  lid->readPorts = arch->readPortCount();
296  list_->SetItem(0, 3, WxConversion::toWxString(arch->latency()));
297  lid->latency = arch->latency();
298  list_->SetItem(0, 4, WxConversion::toWxString(*iter));
299  lid->hdbId = *iter;
300  list_->SetItem(0, 5, WxConversion::toWxString(path));
301  lid->path = WxConversion::toWxString(path);
302  lid->id = list_->GetItemCount() - 1;
303  list_->SetItemData(0, (long)lid);
304 
305  }
306  // default sorting column is "Width"
307  list_->SortItems(IUListCompareASC, 0);
309 
310  return true;
311 }
312 
313 /**
314  * Enables and disables the delete button according to slot list selection.
315  */
316 void
318  if (list_->GetSelectedItemCount() == 1) {
319  FindWindow(ID_ADD)->Enable();
320  } else {
321  FindWindow(ID_ADD)->Disable();
322  }
323 }
324 
325 
326 /**
327  * Adds a new register file to the machine when "Add" button is pressed.
328  */
329 void
330 AddIUFromHDBDialog::onAdd(wxCommandEvent&) {
331 
332  long item = -1;
333  item = list_->GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
334  if ( item == -1 ) return;
335 
336  ListItemData* lid = (ListItemData*)list_->GetItemData(item);
337  int id = lid->id;
338  const RFArchitecture* arch =
339  MapTools::valueForKey<RFArchitecture*>(iuArchitectures_, id);
340 
342 
343  // Set size and width.
344  int size = DEFAULT_SIZE;
345  int width = DEFAULT_WIDTH;
346 
347  if (!arch->hasParameterizedWidth()) {
348  size = arch->width();
349  }
350 
351  if (!arch->hasParameterizedSize()) {
352  size = arch->size();
353  }
354 
355  // Generate name for the new immediate unit.
356  string name =
357  "IU_" + Conversion::toString(size) + "x" + Conversion::toString(width);
358 
359  string iuName = name;
360  int idx = 1;
361  while (machine->immediateUnitNavigator().hasItem(iuName)) {
362  iuName = name + "_" + Conversion::toString(idx);
363  idx++;
364  }
365 
366  int maxReads = arch->maxReads();
367  int guardLatency = arch->guardLatency();
368 
369  // Create an immediate unit object and attach it to the machine.
370  ImmediateUnit* iu = new ImmediateUnit(
371  iuName, size, width, maxReads, guardLatency, DEFAULT_EXTENSION_MODE);
372 
373  for (int i = 0; i < arch->readPortCount(); i++) {
374  string name = "r" + Conversion::toString(i);
375  new RFPort(name, *iu);
376  }
377 
378  model_->pushToStack();
381 
382 }
383 
384 /**
385  * Closes the dialog when the close button is pressed.
386  */
387 void
388 AddIUFromHDBDialog::onClose(wxCommandEvent&) {
389  Close();
390 }
391 
392 
393 /**
394  * Creates the dialog contents.
395  *
396  * @param parent Parent dialog of the contents.
397  * @param call_fit If true, fits the contents inside the dialog.
398  * @param set_sizer If true, sets the main sizer as dialog contents.
399  * @return Top level sizer of the dialog contents.
400  */
401 wxSizer*
403  wxWindow *parent, bool call_fit, bool set_sizer) {
404 
405  wxFlexGridSizer *item0 = new wxFlexGridSizer( 1, 0, 0 );
406  item0->AddGrowableCol( 0 );
407  item0->AddGrowableRow( 0 );
408 
409  wxListCtrl *item1 = new wxListCtrl( parent, ID_LIST, wxDefaultPosition, wxSize(160,120), wxLC_REPORT|wxSUNKEN_BORDER );
410  item0->Add( item1, 0, wxGROW|wxALL, 5 );
411 
412  wxButton *item2 = new wxButton( parent, ID_ADD, wxT("&Add"), wxDefaultPosition, wxDefaultSize, 0 );
413  item0->Add( item2, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
414 
415  wxStaticLine *item3 = new wxStaticLine( parent, ID_LINE, wxDefaultPosition, wxSize(20,-1), wxLI_HORIZONTAL );
416  item0->Add( item3, 0, wxGROW|wxALL, 5 );
417 
418  wxButton *item4 = new wxButton( parent, ID_CLOSE, wxT("&Close"), wxDefaultPosition, wxDefaultSize, 0 );
419  item0->Add( item4, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
420 
421  if (set_sizer) {
422  parent->SetSizer( item0 );
423  if (call_fit) {
424  item0->SetSizeHints( parent );
425  }
426  }
427 
428  return item0;
429 }
430 
431 
432 /**
433  * Sorts HDB IU list according to clicked column.
434  */
435 void
437 
438  int clickedColumn = event.GetColumn();
439 
440  if (clickedColumn == sortColumn_) {
441  sortASC_ = !sortASC_;
442  } else {
443  sortASC_ = true;
444  setColumnImage(sortColumn_, -1); // removes arrow from old column
445  sortColumn_ = clickedColumn;
446  }
447 
448  setColumnImage(clickedColumn, sortASC_);
449 
450  if (sortASC_) {
451  list_->SortItems(IUListCompareASC, clickedColumn);
452  } else {
453  list_->SortItems(IUListCompareDESC, clickedColumn);
454  }
455 }
456 
457 
458 /**
459  * Sets sorting arrow image on selected column
460  *
461  * @param col Column index to set the image
462  * @param image Image index in wxImageList
463  */
464 void
466  wxListItem item;
467  item.SetMask(wxLIST_MASK_IMAGE);
468  item.SetImage(image);
469  list_->SetColumn(col, item);
470 }
WarningDialog
Definition: WarningDialog.hh:42
HDB::RFArchitecture::maxReads
int maxReads() const
Definition: RFArchitecture.cc:447
FileSystem.hh
WxConversion::toWxString
static wxString toWxString(const std::string &source)
AddIUFromHDBDialog::~AddIUFromHDBDialog
virtual ~AddIUFromHDBDialog()
Definition: AddIUFromHDBDialog.cc:174
AddIUFromHDBDialog::loadHDB
bool loadHDB(const std::string &path)
Definition: AddIUFromHDBDialog.cc:241
HDB
Definition: CostDatabase.hh:49
IUListCompareDESC
int wxCALLBACK IUListCompareDESC(wxIntPtr item1, wxIntPtr item2, wxIntPtr sortData)
Definition: AddIUFromHDBDialog.cc:104
machine
TTAMachine::Machine * machine
the architecture definition of the estimated processor
Definition: EstimatorCmdLineUI.cc:59
DEFAULT_WIDTH
const int DEFAULT_WIDTH
Default window width.
Definition: GUIOptionsSerializer.cc:98
AddIUFromHDBDialog::onAdd
void onAdd(wxCommandEvent &event)
Definition: AddIUFromHDBDialog.cc:330
AddIUFromHDBDialog
Definition: AddIUFromHDBDialog.hh:61
AddIUFromHDBDialog::DEFAULT_EXTENSION_MODE
static const TTAMachine::Machine::Extension DEFAULT_EXTENSION_MODE
Default extension mode for the immediate unit.
Definition: AddIUFromHDBDialog.hh:98
HDB::RFArchitecture::latency
int latency() const
Definition: RFArchitecture.cc:497
DEFAULT_SIZE
#define DEFAULT_SIZE
Definition: TCEISelLowering.cc:80
AddIUFromHDBDialog::createContents
wxSizer * createContents(wxWindow *parent, bool call_fit, bool set_sizer)
Definition: AddIUFromHDBDialog.cc:402
AddIUFromHDBDialog::DEFAULT_WIDTH
static const int DEFAULT_WIDTH
Default width for the IU, if the size is parameterized in the HDB.
Definition: AddIUFromHDBDialog.hh:96
MapTools.hh
AddIUFromHDBDialog.hh
MapTools::deleteAllValues
static void deleteAllValues(MapType &aMap)
AddIUFromHDBDialog::HDB_FILE_FILTER
static const wxString HDB_FILE_FILTER
File filter for HDB files.
Definition: AddIUFromHDBDialog.hh:100
AddIUFromHDBDialog::model_
Model * model_
Model of the current adf file.
Definition: AddIUFromHDBDialog.hh:77
WidgetTools.hh
FindWindow
Definition: FindWindow.hh:49
HDB::RFArchitecture::hasParameterizedSize
bool hasParameterizedSize() const
Definition: RFArchitecture.cc:282
ListItemData::size
int size
Definition: AddIUFromHDBDialog.hh:46
ListItemData::readPorts
int readPorts
Definition: AddIUFromHDBDialog.hh:47
AddIUFromHDBDialog::setColumnImage
void setColumnImage(int col, int image)
Definition: AddIUFromHDBDialog.cc:465
Conversion::toString
static std::string toString(const T &source)
Model::pushToStack
void pushToStack()
Definition: Model.cc:167
HDB::RFArchitecture::width
int width() const
Definition: RFArchitecture.cc:343
TTAMachine::RFPort
Definition: RFPort.hh:45
TTAMachine::Machine::addImmediateUnit
virtual void addImmediateUnit(ImmediateUnit &unit)
Definition: Machine.cc:224
ListItemData::latency
int latency
Definition: AddFUFromHDBDialog.hh:49
AddIUFromHDBDialog::list_
wxListCtrl * list_
Immediate slot list widget.
Definition: AddIUFromHDBDialog.hh:79
AddIUFromHDBDialog::onColumnClick
void onColumnClick(wxListEvent &event)
Definition: AddIUFromHDBDialog.cc:436
AddIUFromHDBDialog::sortColumn_
int sortColumn_
Definition: AddIUFromHDBDialog.hh:83
Model::notifyObservers
void notifyObservers(bool modified=true)
Definition: Model.cc:152
ListItemData::id
int id
Definition: AddFUFromHDBDialog.hh:48
AddIUFromHDBDialog::sortASC_
bool sortASC_
Definition: AddIUFromHDBDialog.hh:84
WarningDialog.hh
Environment::hdbPaths
static std::vector< std::string > hdbPaths(bool libraryPathsOnly=false)
Definition: Environment.cc:683
TTAMachine::Machine::immediateUnitNavigator
virtual ImmediateUnitNavigator immediateUnitNavigator() const
Definition: Machine.cc:416
Conversion.hh
TTAMachine::Machine::Navigator::hasItem
bool hasItem(const std::string &name) const
HDB::HDBManager::rfArchitectureByID
virtual RFArchitecture * rfArchitectureByID(RowID id) const
Definition: HDBManager.cc:2963
Model.hh
HDB::HDBManager
Definition: HDBManager.hh:82
RFArchitecture.hh
HDB::RFArchitecture::hasParameterizedWidth
bool hasParameterizedWidth() const
Definition: RFArchitecture.cc:271
Environment.hh
Machine.hh
HDB::RFArchitecture::guardLatency
int guardLatency() const
Definition: RFArchitecture.cc:551
Exception
Definition: Exception.hh:54
EVT_LIST_ITEM_SELECTED
FUImplementationDialog::onAddExternalPort FUImplementationDialog::onDeleteExternalPort FUImplementationDialog::onArchPortSelection FUImplementationDialog::onArchPortActivation EVT_LIST_ITEM_SELECTED(ID_EXTERNAL_PORT_LIST, FUImplementationDialog::onExternalPortSelection) EVT_LIST_ITEM_ACTIVATED(ID_EXTERNAL_PORT_LIST
Exception::errorMessage
std::string errorMessage() const
Definition: Exception.cc:123
ProDeConstants.hh
FileSystem::DIRECTORY_SEPARATOR
static const std::string DIRECTORY_SEPARATOR
Definition: FileSystem.hh:189
AddIUFromHDBDialog::ID_LINE
@ ID_LINE
Definition: AddIUFromHDBDialog.hh:90
AddIUFromHDBDialog::ID_CLOSE
@ ID_CLOSE
Definition: AddIUFromHDBDialog.hh:89
HDB::HDBManager::rfArchitectureIDs
std::set< RowID > rfArchitectureIDs() const
Definition: HDBManager.cc:2734
AddIUFromHDBDialog::AddIUFromHDBDialog
AddIUFromHDBDialog(wxWindow *parent, Model *model)
Definition: AddIUFromHDBDialog.cc:133
HDB::RFArchitecture
Definition: RFArchitecture.hh:50
AddIUFromHDBDialog::TransferDataToWindow
virtual bool TransferDataToWindow()
Definition: AddIUFromHDBDialog.cc:185
EVT_LIST_ITEM_DESELECTED
FUImplementationDialog::onAddExternalPort FUImplementationDialog::onDeleteExternalPort FUImplementationDialog::onArchPortSelection EVT_LIST_ITEM_DESELECTED(ID_ARCH_PORT_LIST, FUImplementationDialog::onArchPortSelection) EVT_LIST_ITEM_ACTIVATED(ID_ARCH_PORT_LIST
EVT_BUTTON
EVT_BUTTON(ID_EDIT_ARCH_PORT, FUImplementationDialog::onEditArchitecturePort) EVT_BUTTON(ID_ADD_EXTERNAL_PORT
Model
Definition: Model.hh:50
ProDeConstants::ICON_SORT_ASC
static const std::string ICON_SORT_ASC
Icon location for ascending sort.
Definition: ProDeConstants.hh:401
AddIUFromHDBDialog::ID_LIST
@ ID_LIST
Definition: AddIUFromHDBDialog.hh:87
Environment::iconDirPath
static std::string iconDirPath()
Definition: Environment.cc:225
ProDeConstants::ICON_SORT_DESC
static const std::string ICON_SORT_DESC
Icon location for descending sort.
Definition: ProDeConstants.hh:403
ListItemData
Definition: AddFUFromHDBDialog.hh:47
IUListCompareASC
int wxCALLBACK IUListCompareASC(wxIntPtr item1, wxIntPtr item2, wxIntPtr sortData)
Definition: AddIUFromHDBDialog.cc:80
wxIntPtr
long int wxIntPtr
Definition: AddFUFromHDBDialog.cc:64
AddIUFromHDBDialog::iuArchitectures_
std::map< int, HDB::RFArchitecture * > iuArchitectures_
Map of iu architectures displayed in the dialog list.
Definition: AddIUFromHDBDialog.hh:81
AddIUFromHDBDialog::ID_ADD
@ ID_ADD
Definition: AddIUFromHDBDialog.hh:88
HDB::RFArchitecture::readPortCount
int readPortCount() const
Definition: RFArchitecture.cc:372
HDB::RFArchitecture::size
int size() const
Definition: RFArchitecture.cc:326
ListItemData::width
int width
Definition: AddIUFromHDBDialog.hh:45
WxConversion.hh
AddIUFromHDBDialog::onListSelectionChange
void onListSelectionChange(wxListEvent &event)
Definition: AddIUFromHDBDialog.cc:317
HDB::RFArchitecture::bidirPortCount
int bidirPortCount() const
Definition: RFArchitecture.cc:422
TTAMachine
Definition: Assembler.hh:48
HDBManager.hh
ListItemData::path
wxString path
Definition: AddFUFromHDBDialog.hh:52
HDBRegistry.hh
WxConversion::toString
static std::string toString(const wxString &source)
ListItemData::hdbId
int hdbId
Definition: AddFUFromHDBDialog.hh:51
AddIUFromHDBDialog::DEFAULT_SIZE
static const int DEFAULT_SIZE
Default size for the IU, if the size is parameterized in the HDB.
Definition: AddIUFromHDBDialog.hh:94
END_EVENT_TABLE
END_EVENT_TABLE() using namespace IDF
HDB::RFArchitecture::writePortCount
int writePortCount() const
Definition: RFArchitecture.cc:397
Model::getMachine
TTAMachine::Machine * getMachine()
Definition: Model.cc:88
wxIntPtr
long int wxIntPtr
Definition: AddIUFromHDBDialog.cc:55
TTAMachine::Machine
Definition: Machine.hh:73
AddIUFromHDBDialog::onClose
void onClose(wxCommandEvent &event)
Definition: AddIUFromHDBDialog.cc:388
TTAMachine::ImmediateUnit
Definition: ImmediateUnit.hh:50