35#include <wx/listctrl.h>
36#include <wx/statline.h>
37#include <wx/notebook.h>
38#include <wx/docview.h>
62#if wxCHECK_VERSION(3, 0, 0)
63 #define wxSAVE wxFD_SAVE
64 #define wxOVERWRITE_PROMPT wxFD_OVERWRITE_PROMPT
65 #define wxOPEN wxFD_OPEN
66 #define wxFILE_MUST_EXIST wxFD_FILE_MUST_EXIST
126 wxDialog(parent, -1, _T("Processor Implementation"),
127 wxDefaultPosition, wxDefaultSize,
128 wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER),
129 machine_(
machine), impl_(impl), plugin_(NULL), dirtyData_(
false) {
131 createContents(
this,
true,
true);
132 SetMinSize(wxSize(600, 500));
135 dynamic_cast<wxTextCtrl*
>(
FindWindow(ID_IC_DEC_PLUGIN_NAME))->
138 fuList_ =
dynamic_cast<wxListCtrl*
>(
FindWindow(ID_FU_LIST));
139 rfList_ =
dynamic_cast<wxListCtrl*
>(
FindWindow(ID_RF_LIST));
140 iuList_ =
dynamic_cast<wxListCtrl*
>(
FindWindow(ID_IU_LIST));
141 parameterList_ =
dynamic_cast<wxListCtrl*
>(
FindWindow(ID_PARAMETER_LIST));
144 fuList_->InsertColumn(0, _T(
"FU"), wxLIST_FORMAT_LEFT, 150);
145 fuList_->InsertColumn(1, _T(
"ID"), wxLIST_FORMAT_LEFT, 40);
146 fuList_->InsertColumn(2, _T(
"HDB"), wxLIST_FORMAT_LEFT, 400);
148 rfList_->InsertColumn(0, _T(
"RF"), wxLIST_FORMAT_LEFT, 150);
149 rfList_->InsertColumn(1, _T(
"ID"), wxLIST_FORMAT_LEFT, 40);
150 rfList_->InsertColumn(2, _T(
"HDB"), wxLIST_FORMAT_LEFT, 400);
152 iuList_->InsertColumn(0, _T(
"IU"), wxLIST_FORMAT_LEFT, 150);
153 iuList_->InsertColumn(1, _T(
"ID"), wxLIST_FORMAT_LEFT, 40);
154 iuList_->InsertColumn(2, _T(
"HDB"), wxLIST_FORMAT_LEFT, 400);
156 parameterList_->InsertColumn(0, _T(
"Name"), wxLIST_FORMAT_LEFT, 150);
157 parameterList_->InsertColumn(1, _T(
"Value"), wxLIST_FORMAT_LEFT, 100);
158 parameterList_->InsertColumn(
159 2, _T(
"Description"), wxLIST_FORMAT_LEFT, 300);
170 assert(pluginName.length() > 6);
171 pluginName = pluginName.substr(0, pluginName.length() - 6);
173 loadICDecoderPlugin(pluginName, pluginFile);
220 wxTextCtrl* descCtrl =
dynamic_cast<wxTextCtrl*
>(
243 descCtrl->SetValue(_T(
"\n No IC / Decoder plugin loaded."));
252 _T(
"Unable to set decompressor block file:\n");
307 for (
int i = 0; i < fuNav.
count(); i++) {
308 string fuName = fuNav.
item(i)->name();
332 for (
int i = 0; i < rfNav.
count(); i++) {
333 string rfName = rfNav.
item(i)->name();
356 for (
int i = 0; i < iuNav.
count(); i++) {
357 string iuName = iuNav.
item(i)->name();
388 if (dialog.ShowModal() == wxID_OK) {
397 if (dialog.ShowModal() == wxID_OK) {
415 item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
441 if (dialog.ShowModal() == wxID_OK) {
449 if (dialog.ShowModal() == wxID_OK) {
467 item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
516 if (dialog.ShowModal() == wxID_OK) {
525 if (dialog.ShowModal() == wxID_OK) {
543 item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
568 if (
rfList_->GetSelectedItemCount() == 1) {
582 if (
iuList_->GetSelectedItemCount() == 1) {
596 if (
fuList_->GetSelectedItemCount() == 1) {
624 this, _T(
"Choose a file"), _T(
""), _T(
""),
625 _T(
"Implemenation Definition Files files (*.idf)|*.idf|All files|*"),
626 (wxOPEN | wxFILE_MUST_EXIST));
628 if (dialog.ShowModal() == wxID_OK) {
644 wxString message = _T(
"Error reading idf '");
646 message.Append(_T(
"':\n"));
649 errorDialog.ShowModal();
655 wxString message = _T(
"Warning:\n");
656 for (
int i = 0; i < validator.
errorCount(); i++) {
660 message.Append(_T(
"\n"));
663 warningDialog.ShowModal();
682 wxString msg = _T(
"Warning: could not load IC decoder plugin!");
684 warningDialog.ShowModal();
699 wxString message = _T(
"Save before exit?\n");
701 wxMessageDialog dialog(
this, message, message, wxYES|wxCANCEL|wxNO);
702 int rv = dialog.ShowModal();
720 wxString message = _T(
"Save implementation.");
721 wxString defaultDir = _T(
".");
723 wxDocument* doc = wxGetApp().docManager()->GetCurrentDocument();
724 wxString defaultFile;
726 defaultFile = doc->GetFilename();
727 defaultFile.erase(defaultFile.rfind(
'.'));
728 defaultFile += _T(
".idf");
738 defaultFile = _T(
".idf");
741 wxString fileTypes = _T(
"Implementation Definition File (.idf)|*.idf");
744 this, message, defaultDir, defaultFile, fileTypes,
745 wxSAVE | wxOVERWRITE_PROMPT);
747 if (dialog.ShowModal() == wxID_OK) {
751 std::vector<string> searchPaths;
761 wxString message = _T(
"Error writing '");
763 message.Append(_T(
"':"));
787 this, _T(
"Choose a file"), _T(
""), _T(
""),
788 _T(
"Decompressor block files (*.vhdl;*.vhd)|*.vhdl;*.vhd|"
790 (wxOPEN | wxFILE_MUST_EXIST));
792 if (dialog.ShowModal() == wxID_OK) {
794 string decompressorFile =
811 this, _T(
"Choose a file"), _T(
""), _T(
""),
812 _T(
"IC/Decoder plugins (*.so)|*.so|All files|*.*"),
813 (wxOPEN | wxFILE_MUST_EXIST));
815 if (dialog.ShowModal() == wxID_OK) {
824 if (pluginName.length() < 6 ||
825 pluginName.substr(pluginName.length() - 6) !=
"Plugin") {
827 wxString message = _T(
"Unable to determine plugin name.\n");
828 message.Append(_T(
"Plugin file must be named "));
829 message.Append(_T(
"'<plugin name>Plugin.so'"));
834 pluginName = pluginName.substr(0, pluginName.length() - 6);
850 this, _T(
"Choose a file"), _T(
""), _T(
""),
851 _T(
"HDB Files (*.hdb)|*.hdb|All files|*.*"),
852 (wxOPEN | wxFILE_MUST_EXIST));
854 if (dialog.ShowModal() == wxID_OK) {
872 item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
874 if (item < 0)
return;
876 wxTextCtrl* valueCtrl =
dynamic_cast<wxTextCtrl*
>(
894 const string& pluginName,
895 const string& pluginFile) {
904 for (vector<string>::const_iterator iter = pluginPaths.begin();
905 iter != pluginPaths.end(); iter++) {
915 wxString message = _T(
"Plugin file '");
917 message.Append(_T(
"' doesn't exist"));
922 wxString message = _T(
"Error loading plugin file '");
924 message.Append(_T(
"':\n"));
936 "create_generator_plugin_" + pluginName, creator, pluginFile);
943 wxString message = _T(
"Error loading plugin '");
945 message.Append(_T(
"' from '"));
947 message.Append(_T(
"':\n"));
972 for (
int i = 0; i < validator.
errorCount(); i++) {
976 message.Append(_T(
"\n"));
994 size_t missingFileCount;
995 size_t alternativesCount;
1005 static_cast<int>(missingFileCount));
1007 static_cast<int>(alternativesCount));
1010 wxString message = missFileCountStr;
1011 message.Append(_T(
" file(s) defined in IDF couldn't be located from"));
1012 message.Append(_T(
" absolute paths or under working directory.\n"));
1013 message.Append(_T(
"\n"));
1015 if (alternativesCount > 0) {
1016 message.Append(altFileCountStr);
1017 message.Append(_T(
" of them were replaced with file(s) found under"));
1018 message.Append(_T(
" the default search paths."));
1020 message.Append(_T(
"Any alternative file paths couldn't be"));
1021 message.Append(_T(
" located for the missing files."));
1025 warningDialog.ShowModal();
1041 wxFlexGridSizer *item0 =
new wxFlexGridSizer( 1, 0, 0 );
1042 item0->AddGrowableCol( 0 );
1043 item0->AddGrowableRow( 0 );
1045 wxNotebook *item2 =
new wxNotebook( parent,
ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize, 0 );
1046#if !wxCHECK_VERSION(2,5,2)
1047 wxNotebookSizer *item1 =
new wxNotebookSizer( item2 );
1049 wxWindow *item1 = item2;
1052 wxPanel *item3 =
new wxPanel( item2, -1 );
1054 item2->AddPage( item3, wxT(
"Register Files") );
1056 wxPanel *item4 =
new wxPanel( item2, -1 );
1058 item2->AddPage( item4, wxT(
"Immediate Units") );
1060 wxPanel *item5 =
new wxPanel( item2, -1 );
1062 item2->AddPage( item5, wxT(
"Function Units") );
1064 wxPanel *item6 =
new wxPanel( item2, -1 );
1066 item2->AddPage( item6, wxT(
"Instruction Compression") );
1068 wxPanel *item7 =
new wxPanel( item2, -1 );
1070 item2->AddPage( item7, wxT(
"IC / Decoder Plugin") );
1072 item0->Add( item1, 0, wxFIXED_MINSIZE|wxGROW|wxALL, 5 );
1074 wxStaticLine *item8 =
new wxStaticLine( parent,
ID_LINE, wxDefaultPosition, wxSize(200,-1), wxLI_HORIZONTAL );
1075 item0->Add( item8, 0, wxFIXED_MINSIZE|wxGROW|wxALL, 5 );
1077 wxGridSizer *item9 =
new wxGridSizer( 2, 0, 0 );
1079 wxBoxSizer *item10 =
new wxBoxSizer( wxHORIZONTAL );
1081 wxButton *item11 =
new wxButton( parent,
ID_LOAD_IDF, wxT(
"Load IDF..."), wxDefaultPosition, wxDefaultSize, 0 );
1082 item10->Add( item11, 0, wxFIXED_MINSIZE|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1084 wxButton *item12 =
new wxButton( parent,
ID_SAVE_IDF, wxT(
"Save IDF..."), wxDefaultPosition, wxDefaultSize, 0 );
1085 item10->Add( item12, 0, wxFIXED_MINSIZE|wxALIGN_CENTER|wxALL, 5 );
1087 wxButton *item13 =
new wxButton( parent,
ID_GENERATE, wxT(
"Generate Processor"), wxDefaultPosition, wxDefaultSize, 0 );
1088 item10->Add( item13, 0, wxFIXED_MINSIZE|wxALIGN_CENTER|wxALL, 5 );
1090 item9->Add( item10, 0, wxFIXED_MINSIZE|wxALIGN_CENTER_VERTICAL, 5 );
1092 wxBoxSizer *item14 =
new wxBoxSizer( wxHORIZONTAL );
1094 wxButton *item15 =
new wxButton( parent,
ID_CLOSE, wxT(
"Close"), wxDefaultPosition, wxDefaultSize, 0 );
1095 item14->Add( item15, 0, wxFIXED_MINSIZE|wxALIGN_CENTER|wxALL, 5 );
1097 item9->Add( item14, 0, wxFIXED_MINSIZE|wxALIGN_CENTER_VERTICAL, 5 );
1099 item0->Add( item9, 0, wxFIXED_MINSIZE|wxGROW|wxALL, 5 );
1103 parent->SetSizer( item0 );
1105 item0->SetSizeHints( parent );
1113 wxFlexGridSizer *item0 =
new wxFlexGridSizer( 1, 0, 0 );
1114 item0->AddGrowableCol( 0 );
1115 item0->AddGrowableRow( 0 );
1117 wxListCtrl *item1 =
new wxListCtrl( parent,
ID_RF_LIST, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_SINGLE_SEL|wxSUNKEN_BORDER );
1118 item0->Add( item1, 0, wxGROW|wxALL, 5 );
1120 wxBoxSizer *buttonSizer =
new wxBoxSizer( wxHORIZONTAL );
1121 wxButton *autoSelButton =
new wxButton( parent,
ID_AUTO_SELECT_IMPL, wxT(
"Auto Select Implementations"), wxDefaultPosition, wxDefaultSize, 0 );
1122 buttonSizer->Add( autoSelButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1124 wxButton *item2 =
new wxButton( parent,
ID_SELECT_RF_IMPL, wxT(
"Select implementation..."), wxDefaultPosition, wxDefaultSize, 0 );
1125 buttonSizer->Add( item2, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1127 item0->Add( buttonSizer, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1131 parent->SetSizer( item0 );
1133 item0->SetSizeHints( parent );
1141 wxFlexGridSizer *item0 =
new wxFlexGridSizer( 1, 0, 0 );
1142 item0->AddGrowableCol( 0 );
1143 item0->AddGrowableRow( 0 );
1145 wxListCtrl *item1 =
new wxListCtrl( parent,
ID_FU_LIST, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_SINGLE_SEL|wxSUNKEN_BORDER );
1146 item0->Add( item1, 0, wxGROW|wxALL, 5 );
1148 wxBoxSizer *buttonSizer =
new wxBoxSizer( wxHORIZONTAL );
1149 wxButton *autoSelButton =
new wxButton( parent,
ID_AUTO_SELECT_IMPL, wxT(
"Auto Select Implementations"), wxDefaultPosition, wxDefaultSize, 0 );
1150 buttonSizer->Add( autoSelButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1152 wxButton *item2 =
new wxButton( parent,
ID_SELECT_FU_IMPL, wxT(
"Select implementation..."), wxDefaultPosition, wxDefaultSize, 0 );
1153 buttonSizer->Add( item2, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1155 item0->Add( buttonSizer, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
1159 parent->SetSizer( item0 );
1161 item0->SetSizeHints( parent );
1169 wxFlexGridSizer *item0 =
new wxFlexGridSizer( 1, 0, 0 );
1170 item0->AddGrowableCol( 0 );
1172 item0->Add( 20, 20, 0, wxALIGN_CENTER|wxALL, 5 );
1174 wxStaticBox *item2 =
new wxStaticBox( parent, -1, wxT(
"Instruction Decompressor:") );
1175 wxStaticBoxSizer *item1 =
new wxStaticBoxSizer( item2, wxVERTICAL );
1177 wxFlexGridSizer *item3 =
new wxFlexGridSizer( 2, 0, 0 );
1179 wxStaticText *item4 =
new wxStaticText( parent,
ID_TEXT, wxT(
"Decompressor block file:"), wxDefaultPosition, wxDefaultSize, 0 );
1180 item3->Add( item4, 0, wxALL, 5 );
1182 item3->Add( 20, 20, 0, wxALIGN_CENTER|wxALL, 5 );
1184 wxTextCtrl *item5 =
new wxTextCtrl( parent,
ID_DECOMPRESSOR_PATH, wxT(
""), wxDefaultPosition, wxSize(250,-1), wxTE_READONLY );
1185 item3->Add( item5, 0, wxALIGN_CENTER|wxALL, 5 );
1187 wxButton *item6 =
new wxButton( parent,
ID_BROWSE_DECOMPRESSOR, wxT(
"Browse..."), wxDefaultPosition, wxDefaultSize, 0 );
1188 item3->Add( item6, 0, wxALIGN_CENTER|wxALL, 5 );
1190 item1->Add( item3, 0, wxGROW|wxALL, 5 );
1192 item0->Add( item1, 0, wxGROW|wxALL, 5 );
1194 item0->Add( 20, 20, 0, wxALIGN_CENTER|wxALL, 5 );
1198 parent->SetSizer( item0 );
1200 item0->SetSizeHints( parent );
1208 wxFlexGridSizer *item0 =
new wxFlexGridSizer( 1, 0, 0 );
1209 item0->AddGrowableCol( 0 );
1210 item0->AddGrowableRow( 0 );
1212 wxFlexGridSizer *item1 =
new wxFlexGridSizer( 1, 0, 0 );
1213 item1->AddGrowableCol( 0 );
1214 item1->AddGrowableRow( 1 );
1216 wxFlexGridSizer *item2 =
new wxFlexGridSizer( 3, 0, 0 );
1218 wxStaticText *item3 =
new wxStaticText( parent,
ID_TEXT, wxT(
"Plugin file:"), wxDefaultPosition, wxDefaultSize, 0 );
1219 item2->Add( item3, 0, wxALL, 5 );
1221 wxTextCtrl *item4 =
new wxTextCtrl( parent,
ID_IC_DEC_PLUGIN_FILE, wxT(
""), wxDefaultPosition, wxSize(80,-1), wxTE_READONLY );
1222 item2->Add( item4, 0, wxGROW|wxALL, 5 );
1224 wxButton *item5 =
new wxButton( parent,
ID_BROWSE_IC_DEC_PLUGIN, wxT(
"Browse..."), wxDefaultPosition, wxDefaultSize, 0 );
1225 item2->Add( item5, 0, wxALIGN_CENTER|wxALL, 5 );
1227 wxStaticText *item6 =
new wxStaticText( parent,
ID_TEXT, wxT(
"HDB file:"), wxDefaultPosition, wxDefaultSize, 0 );
1228 item2->Add( item6, 0, wxALL, 5 );
1230 wxTextCtrl *item7 =
new wxTextCtrl( parent,
ID_IC_DEC_HDB_FILE, wxT(
""), wxDefaultPosition, wxSize(80,-1), 0 );
1231 item2->Add( item7, 0, wxGROW|wxALL, 5 );
1233 wxButton *item8 =
new wxButton( parent,
ID_BROWSE_IC_DEC_HDB, wxT(
"Browse..."), wxDefaultPosition, wxDefaultSize, 0 );
1234 item2->Add( item8, 0, wxALIGN_CENTER|wxALL, 5 );
1236 wxStaticText *item9 =
new wxStaticText( parent,
ID_TEXT, wxT(
"Plugin name:"), wxDefaultPosition, wxDefaultSize, 0 );
1237 item2->Add( item9, 0, wxALL, 5 );
1239 wxTextCtrl *item10 =
new wxTextCtrl( parent,
ID_IC_DEC_PLUGIN_NAME, wxT(
""), wxDefaultPosition, wxSize(80,-1), wxTE_READONLY );
1240 item2->Add( item10, 0, wxGROW|wxALL, 5 );
1242 item2->Add( 20, 20, 0, wxALIGN_CENTER|wxALL, 5 );
1244 wxStaticText *item11 =
new wxStaticText( parent,
ID_TEXT, wxT(
"Description:"), wxDefaultPosition, wxDefaultSize, 0 );
1245 item2->Add( item11, 0, wxALL, 5 );
1247 wxTextCtrl *item12 =
new wxTextCtrl( parent,
ID_IC_DEC_PLUGIN_DESC, wxT(
""), wxDefaultPosition, wxSize(320,80), wxTE_MULTILINE|wxTE_READONLY );
1248 item2->Add( item12, 0, wxGROW|wxALL, 5 );
1250 item1->Add( item2, 0, wxFIXED_MINSIZE|wxGROW|wxALL, 5 );
1252 wxFlexGridSizer *item13 =
new wxFlexGridSizer( 1, 0, 0 );
1253 item13->AddGrowableCol( 0 );
1254 item13->AddGrowableRow( 1 );
1256 wxStaticText *item14 =
new wxStaticText( parent,
ID_TEXT, wxT(
"Plugin parameters:"), wxDefaultPosition, wxDefaultSize, 0 );
1257 item13->Add( item14, 0, wxALL, 5 );
1259 wxListCtrl *item15 =
new wxListCtrl( parent,
ID_PARAMETER_LIST, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_SINGLE_SEL|wxSUNKEN_BORDER );
1260 item13->Add( item15, 0, wxGROW|wxALL, 5 );
1262 wxBoxSizer *item16 =
new wxBoxSizer( wxHORIZONTAL );
1264 wxStaticText *item17 =
new wxStaticText( parent,
ID_TEXT, wxT(
"New value:"), wxDefaultPosition, wxDefaultSize, 0 );
1265 item16->Add( item17, 0, wxALIGN_CENTER|wxALL, 5 );
1267 wxTextCtrl *item18 =
new wxTextCtrl( parent,
ID_PARAMETER_VALUE, wxT(
""), wxDefaultPosition, wxSize(200,-1), 0 );
1268 item16->Add( item18, 0, wxALIGN_CENTER|wxALL, 5 );
1270 wxButton *item19 =
new wxButton( parent,
ID_SET_VALUE, wxT(
"Set"), wxDefaultPosition, wxDefaultSize, 0 );
1271 item16->Add( item19, 0, wxALIGN_CENTER|wxALL, 5 );
1273 item13->Add( item16, 0, wxALIGN_CENTER, 5 );
1275 item1->Add( item13, 0, wxFIXED_MINSIZE|wxGROW|wxALL, 5 );
1277 item0->Add( item1, 0, wxGROW|wxALL, 5 );
1281 parent->SetSizer( item0 );
1283 item0->SetSizeHints( parent );
1291 wxFlexGridSizer *item0 =
new wxFlexGridSizer( 1, 0, 0 );
1292 item0->AddGrowableCol( 0 );
1293 item0->AddGrowableRow( 0 );
1295 wxListCtrl *item1 =
new wxListCtrl( parent,
ID_IU_LIST, wxDefaultPosition, wxDefaultSize, wxLC_REPORT|wxLC_SINGLE_SEL|wxSUNKEN_BORDER );
1296 item0->Add( item1, 0, wxGROW|wxALL, 5 );
1298 wxBoxSizer *buttonSizer =
new wxBoxSizer( wxHORIZONTAL );
1299 wxButton *autoSelButton =
new wxButton( parent,
ID_AUTO_SELECT_IMPL, wxT(
"Auto Select Implementations"), wxDefaultPosition, wxDefaultSize, 0 );
1300 buttonSizer->Add( autoSelButton, 0, wxALL, 5 );
1302 wxButton *item2 =
new wxButton( parent,
ID_SELECT_IU_IMPL, wxT(
"Select implementation..."), wxDefaultPosition, wxDefaultSize, 0 );
1303 buttonSizer->Add( item2, 0, wxALL, 5 );
1305 item0->Add( buttonSizer, 0, wxALL, 5 );
1309 parent->SetSizer( item0 );
1311 item0->SetSizeHints( parent );
#define assert(condition)
END_EVENT_TABLE() using namespace IDF
TTAMachine::Machine * machine
the architecture definition of the estimated processor
FUImplementationDialog::onAddExternalPort FUImplementationDialog::onDeleteExternalPort FUImplementationDialog::onArchPortSelection EVT_LIST_ITEM_DESELECTED(ID_ARCH_PORT_LIST, FUImplementationDialog::onArchPortSelection) EVT_LIST_ITEM_ACTIVATED(ID_ARCH_PORT_LIST
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
FUImplementationDialog::onAddExternalPort FUImplementationDialog::onDeleteExternalPort FUImplementationDialog::onArchPortSelection FUImplementationDialog::onArchPortActivation FUImplementationDialog::onExternalPortActivation FUImplementationDialog::onParameterSelection EVT_LIST_ITEM_ACTIVATED(ID_PARAMETER_LIST, FUImplementationDialog::onParameterActivation) EVT_LIST_ITEM_DESELECTED(ID_PARAMETER_LIST
EVT_BUTTON(ID_EDIT_ARCH_PORT, FUImplementationDialog::onEditArchitecturePort) EVT_BUTTON(ID_ADD_EXTERNAL_PORT
const string FALSE
Value used for false in attribute and element values.
find Finds info of the inner loops in the false
BinaryEncoding * generate()
static std::string defaultICDecoderPlugin()
static std::vector< std::string > icDecoderPluginPaths(bool libraryPathsOnly=false)
static std::vector< std::string > hdbPaths(bool libraryPathsOnly=false)
static TCEString shortHDBPath(const TCEString &hdbPath)
std::string errorMessage() const
static std::string absolutePathOf(const std::string &pathName)
static std::string fileNameBody(const std::string &fileName)
static std::string fileOfPath(const std::string pathName)
static std::string directoryOfPath(const std::string fileName)
static std::string currentWorkingDir()
std::string errorMessage(int index) const
static void removeUnknownImplementations(IDF::MachineImplementation &idf, const TTAMachine::Machine &machine)
virtual ObjectState * readState()
void writeMachineImplementation(const MachineImplementation &implementation)
bool hasICDecoderPluginName() const
std::string icDecoderPluginName() const
void setICDecoderParameter(const std::string &name, const std::string &value)
void setICDecoderHDB(const std::string &file)
void setICDecoderPluginFile(const std::string &file)
void addIUImplementation(RFImplementationLocation *implementation)
void addRFImplementation(RFImplementationLocation *implementation)
void clearICDecoderParameters()
std::string icDecoderHDB() const
RFImplementationLocation & iuImplementation(const std::string &iu) const
RFImplementationLocation & rfImplementation(const std::string &rf) const
bool checkImplFiles(size_t &missingFiles, size_t &alternativeFiles)
bool hasIUImplementation(const std::string &unitName) const
void makeImplFilesRelative(const std::vector< std::string > &sPaths)
FUImplementationLocation & fuImplementation(const std::string &fu) const
virtual void loadState(const ObjectState *state)
void setDecompressorFile(const std::string &file)
std::string icDecoderPluginFile() const
std::string decompressorFile() const
bool hasRFImplementation(const std::string &unitName) const
std::string icDecoderParameterValue(const std::string &name) const
void addFUImplementation(FUImplementationLocation *implementation)
virtual ObjectState * saveState() const
bool hasDecompressorFile() const
void setICDecoderPluginName(const std::string &name)
bool hasICDecoderPluginFile() const
bool hasICDecoderHDB() const
bool hasFUImplementation(const std::string &unitName) const
virtual std::string hdbFile() const
std::string pluginDescription() const
int recognizedParameterCount() const
std::string recognizedParameter(int index) const
std::string parameterDescription(const std::string ¶mName) const
virtual ~ProcessorImplementationWindow()
wxSizer * registerFilePage(wxWindow *parent, bool call_fit, bool set_sizer=true)
void onFUSelection(wxListEvent &event)
void onRFActivation(wxListEvent &event)
wxListCtrl * iuList_
Pointer to the IU implementation list widget.
TTAMachine::Machine & machine_
Machine that is being generated.
IDF::MachineImplementation & impl_
MachineImplementation object containing the implementation information.
void onBrowseICHDB(wxCommandEvent &event)
void onSaveIDF(wxCommandEvent &event)
void handleSelectIUImplementation(long item)
wxListCtrl * fuList_
Pointer to the FU implementation list widget.
void onRFSelection(wxListEvent &event)
void handleSelectRFImplementation(long item)
void updateFUList(const std::string &fuName, int index)
void onAutoSelectImplementations(wxCommandEvent &event)
void updateRFList(const std::string &rfName, int index)
void onGenerateProcessor(wxCommandEvent &event)
wxSizer * immediateUnitPage(wxWindow *parent, bool call_fit, bool set_sizer=true)
PluginTools pluginTool_
Plugintool for loading IC/Decoder plugins.
wxListCtrl * rfList_
Pointer to the RF implementation list widget.
void onFUActivation(wxListEvent &event)
void onSelectRFImplementation(wxCommandEvent &event)
void setDirty(bool dirty=true)
void checkImplementationFiles()
void onSetParameterValue(wxCommandEvent &event)
void onIUActivation(wxListEvent &event)
void onIUSelection(wxListEvent &event)
ProGe::ICDecoderGeneratorPlugin * plugin_
IC/Decoder plugin of the current machine implementation.
wxListCtrl * parameterList_
Pointer to the ic decoder parameter list widget.
void onClose(wxCommandEvent &event)
void onBrowseICDecPlugin(wxCommandEvent &event)
void onSelectFUImplementation(wxCommandEvent &event)
void onLoadIDF(wxCommandEvent &event)
void onBrowseDecompressor(wxCommandEvent &event)
wxSizer * createContents(wxWindow *parent, bool call_fit, bool set_sizer)
void onSelectIUImplementation(wxCommandEvent &event)
virtual bool TransferDataToWindow()
wxSizer * functionUnitPage(wxWindow *parent, bool call_fit, bool set_sizer=true)
void handleSelectFUImplementation(long item)
wxSizer * icDecoderPluginPage(wxWindow *parent, bool call_fit, bool set_sizer=true)
void updateImplementationLists()
void onParameterSelection(wxListEvent &event)
wxSizer * decompressionPage(wxWindow *parent, bool call_fit, bool set_sizer=true)
@ ID_BROWSE_IC_DEC_PLUGIN
void loadICDecoderPlugin(const std::string &pluginName, const std::string &pluginFile)
virtual TCEString name() const
ComponentType * item(int index) const
virtual RegisterFileNavigator registerFileNavigator() const
virtual FunctionUnitNavigator functionUnitNavigator() const
virtual ImmediateUnitNavigator immediateUnitNavigator() const
static wxString toWxString(const std::string &source)
static std::string toString(const wxString &source)
void setSourceFile(const std::string &fileName)
void setDestinationFile(const std::string &fileName)
UnitImplementationLocation RFImplementationLocation
UnitImplementationLocation FUImplementationLocation