summaryrefslogtreecommitdiff
path: root/2004/i/nono/src/ovision/ui.cc
diff options
context:
space:
mode:
Diffstat (limited to '2004/i/nono/src/ovision/ui.cc')
-rw-r--r--2004/i/nono/src/ovision/ui.cc104
1 files changed, 54 insertions, 50 deletions
diff --git a/2004/i/nono/src/ovision/ui.cc b/2004/i/nono/src/ovision/ui.cc
index a94b47b..b40990b 100644
--- a/2004/i/nono/src/ovision/ui.cc
+++ b/2004/i/nono/src/ovision/ui.cc
@@ -25,7 +25,7 @@ using namespace std;
/// Nombre d'items du menu
#define NBITEMS 11
-OConfig config("vision.conf");
+OConfig oconfig("rc/vision.conf");
/// Items du menu principal
char *itemsName[NBITEMS][2] = {{"Move color", "Permet d'ajuster les niveaux d'une couleur"},
@@ -35,7 +35,7 @@ char *itemsName[NBITEMS][2] = {{"Move color", "Permet d'ajuster les niveaux d'un
{"Select color goal", "Selectionne l'index de la couleur des poteaux"},
{"Training", "Entraine le reseau de neurones"},
{"New network", "Regenere de nouveaux poids pour le reseau"},
- {"Cancel changes", "Recharge le fichier de config"},
+ {"Cancel changes", "Recharge le fichier de oconfig"},
{"Save changes", "Sauvegarde les changements dans le fichier"},
{"Quit", "Quitte le programme"},
{NULL, NULL}};
@@ -80,8 +80,8 @@ UI::UI()
curImage = 0;
ParseFileList();
- config.LoadNNFile();
- savedNNColorNumber = config.nn_NbCouleurs;
+ oconfig.LoadNNFile();
+ savedNNColorNumber = oconfig.nn_NbCouleurs;
// Ecriture du PID dans un fichier
long uiPid = getpid();
@@ -142,11 +142,11 @@ UI::UpdateNodes()
char buf[10];
// On parcours toutes les couleurs
- for (int i=0; i < config.nn_NbCouleurs*3; i++)
+ for (int i=0; i < oconfig.nn_NbCouleurs*3; i++)
{
// On lis le fifo et on le copie dans le tableau node
read(fifo, buf, 10);
- config.node[i] = atoi(buf);
+ oconfig.node[i] = atoi(buf);
}
}
@@ -158,7 +158,7 @@ UI::ParseFileList()
{
// On enleve l'ancienne liste et on en cree une nouvelle
char buf[100];
- sprintf(buf, "rm -Rf imagelist ; ls %s | grep -e .jpg -e .JPG -e .png -e .PNG > imagelist", config.imgPath);
+ sprintf(buf, "rm -Rf imagelist ; ls %s | grep -e .jpg -e .JPG -e .png -e .PNG > imagelist", oconfig.imgPath);
system(buf);
FILE *file;
@@ -242,12 +242,12 @@ UI::ChooseColor(int type, int current)
// Nombre d'item a afficher
if (type == NB_COULEUR)
- config.nn_NbCouleurs = 10;
+ oconfig.nn_NbCouleurs = 10;
// Creation des items
- ITEM **colorItem = new ITEM*[config.nn_NbCouleurs+2];
- colorName = new char*[config.nn_NbCouleurs+1];
- for (int i=0; i<config.nn_NbCouleurs; i++)
+ ITEM **colorItem = new ITEM*[oconfig.nn_NbCouleurs+2];
+ colorName = new char*[oconfig.nn_NbCouleurs+1];
+ for (int i=0; i<oconfig.nn_NbCouleurs; i++)
{
colorName[i] = new char[20];
if (type == NUM_COULEUR)
@@ -256,10 +256,10 @@ UI::ChooseColor(int type, int current)
sprintf(colorName[i], "%i", i);
colorItem[i] = new_item(colorName[i] , NULL);
}
- colorName[config.nn_NbCouleurs] = new char[20];
- sprintf(colorName[config.nn_NbCouleurs], "Annuler");
- colorItem[config.nn_NbCouleurs] = new_item(colorName[config.nn_NbCouleurs] , NULL);
- colorItem[config.nn_NbCouleurs+1] = NULL;
+ colorName[oconfig.nn_NbCouleurs] = new char[20];
+ sprintf(colorName[oconfig.nn_NbCouleurs], "Annuler");
+ colorItem[oconfig.nn_NbCouleurs] = new_item(colorName[oconfig.nn_NbCouleurs] , NULL);
+ colorItem[oconfig.nn_NbCouleurs+1] = NULL;
// Creation de la fenetre
WINDOW *colorWindow = newwin(11, 15, 9, 35);
@@ -297,7 +297,7 @@ UI::ChooseColor(int type, int current)
{
case KEY_DOWN: // Touche BAS
// Deplacement dans le menu
- if (col < (int)config.nn_NbCouleurs)
+ if (col < (int)oconfig.nn_NbCouleurs)
{
menu_driver(colorMenu, REQ_DOWN_ITEM);
col++;
@@ -314,7 +314,7 @@ UI::ChooseColor(int type, int current)
break;
}
- if ( (type == NUM_COULEUR) && (col < config.nn_NbCouleurs))
+ if ( (type == NUM_COULEUR) && (col < oconfig.nn_NbCouleurs))
{
// Cree une image de la couleur selectionnee
sprintf(buf, "s %i\n", col);
@@ -325,7 +325,7 @@ UI::ChooseColor(int type, int current)
}
// Cas d'annulation
- if (col == config.nn_NbCouleurs)
+ if (col == oconfig.nn_NbCouleurs)
{
col = -1;
@@ -334,7 +334,7 @@ UI::ChooseColor(int type, int current)
}
// Liberation memoire
- for(int i=0; i<config.nn_NbCouleurs; i++)
+ for(int i=0; i<oconfig.nn_NbCouleurs; i++)
free_item(colorItem[i]);
free_menu(colorMenu);
delwin(colorWindow);
@@ -357,20 +357,20 @@ UI::GoMergeWindow()
char **mergeName;
// Creation des items
- ITEM **mergeItem = new ITEM*[config.nn_NbCouleurs+2];
- mergeName = new char*[config.nn_NbCouleurs+1];
- for (int i=0; i<config.nn_NbCouleurs; i++)
+ ITEM **mergeItem = new ITEM*[oconfig.nn_NbCouleurs+2];
+ mergeName = new char*[oconfig.nn_NbCouleurs+1];
+ for (int i=0; i<oconfig.nn_NbCouleurs; i++)
{
mergeName[i] = new char[20];
- sprintf(mergeName[i], "Couleur %i (%i)", i, config.index[i]);
+ sprintf(mergeName[i], "Couleur %i (%i)", i, oconfig.index[i]);
mergeItem[i] = new_item(mergeName[i] , NULL);
}
// Ajout du choix unmerge a la fin du menu
- mergeName[config.nn_NbCouleurs] = new char[20];
- strcpy(mergeName[config.nn_NbCouleurs], "Unmerge all");
- mergeItem[config.nn_NbCouleurs] = new_item(mergeName[config.nn_NbCouleurs], NULL);
- mergeItem[config.nn_NbCouleurs+1] = NULL;
+ mergeName[oconfig.nn_NbCouleurs] = new char[20];
+ strcpy(mergeName[oconfig.nn_NbCouleurs], "Unmerge all");
+ mergeItem[oconfig.nn_NbCouleurs] = new_item(mergeName[oconfig.nn_NbCouleurs], NULL);
+ mergeItem[oconfig.nn_NbCouleurs+1] = NULL;
// Creation de la fenetre
WINDOW *mergeWindow = newwin(10, 20, 9, 35);
@@ -414,7 +414,7 @@ UI::GoMergeWindow()
case KEY_DOWN: // Touche BAS
// Deplacement dans le menu
- if (col < config.nn_NbCouleurs)
+ if (col < oconfig.nn_NbCouleurs)
{
menu_driver(mergeMenu, REQ_DOWN_ITEM);
col++;
@@ -439,8 +439,8 @@ UI::GoMergeWindow()
if ( item_index(current_item(mergeMenu)) == item_count(mergeMenu)-1)
{
// On remet a zero la table d'index
- for (int i=0; i<config.nn_NbCouleurs; i++)
- config.index[i] = i;
+ for (int i=0; i<oconfig.nn_NbCouleurs; i++)
+ oconfig.index[i] = i;
// Fin de la boucle
end = 1;
@@ -455,11 +455,11 @@ UI::GoMergeWindow()
{
// Memorisation du premier index trouve pour
// le copier dans les autres couleurs choisies
- if (indexColor == -1) indexColor = config.index[i];
+ if (indexColor == -1) indexColor = oconfig.index[i];
sprintf(tmp, " %i", i);
strcat(buf, tmp);
nbColorToMerge++;
- config.index[i]= indexColor;
+ oconfig.index[i]= indexColor;
}
// Flag de fin de boucle
@@ -468,7 +468,7 @@ UI::GoMergeWindow()
break;
}
- if (col != config.nn_NbCouleurs)
+ if (col != oconfig.nn_NbCouleurs)
{
// Cree une image de la couleur selectionnee
sprintf(cmd, "s %i\n", col);
@@ -509,7 +509,7 @@ UI::GoMergeWindow()
// Liberation memoire
- for(int i=0; i<config.nn_NbCouleurs; i++)
+ for(int i=0; i<oconfig.nn_NbCouleurs; i++)
free_item(mergeItem[i]);
free_menu(mergeMenu);
delwin(mergeWindow);
@@ -538,14 +538,14 @@ UI::GoDelColor()
// On supprime la couleur en local
unsigned char *pCur;
- pCur = &config.node[numColor*3];
- for(int i=numColor*3; i<config.nn_NbCouleurs*3; i++)
+ pCur = &oconfig.node[numColor*3];
+ for(int i=numColor*3; i<oconfig.nn_NbCouleurs*3; i++)
{
*(pCur) = *(pCur+3);
pCur++;
}
- config.nn_NbCouleurs--;
+ oconfig.nn_NbCouleurs--;
// Affichage d'info
sprintf(buf, "Couleur %i supprimee\n", numColor);
@@ -559,14 +559,14 @@ void
UI::GoSelectGroup(int type)
{
// Menu de selection de couleur
- int tmp = ChooseColor(NUM_COULEUR, config.groupColor);
+ int tmp = ChooseColor(NUM_COULEUR, oconfig.groupColor);
if (tmp != -1)
{
if (type == BALL)
{
- config.groupColor = tmp;
+ oconfig.groupColor = tmp;
// Envoie d'un signal avec la valeur choisie
char buf[50];
@@ -575,7 +575,7 @@ UI::GoSelectGroup(int type)
}
else if (type == GOAL)
{
- config.goalColor = tmp;
+ oconfig.goalColor = tmp;
}
}
}
@@ -598,7 +598,7 @@ UI::GoChangeColor()
// Affectation des composantes actuelles
for (int i=0; i<3; i++)
- c[i] = config.node[col*3+i];
+ c[i] = oconfig.node[col*3+i];
// Création de la fenetre
WINDOW *colorWindow = newwin(4, 60, 12, 25);
@@ -705,7 +705,7 @@ UI::GoChangeColor()
// Affectation des nouvelles valeurs
for (int i=0; i<3; i++)
- config.node[col*3+i] = c[i];
+ oconfig.node[col*3+i] = c[i];
// Communication avec adjust
sprintf(cmd, "c %i %u %u %u\n", col, c[0], c[1], c[2]);
@@ -826,16 +826,16 @@ UI::Menu()
case 6: // Regeneration de poids
int nbColor;
- nbColor = ChooseColor(NB_COULEUR, config.nn_NbCouleurs);
+ nbColor = ChooseColor(NB_COULEUR, oconfig.nn_NbCouleurs);
if (nbColor != -1)
{
sprintf(buf, "p %i\n", nbColor);
SendSignal(buf);
- if (config.node) delete [] config.node;
- config.node = new unsigned char[nbColor*3];
+ if (oconfig.node) delete [] oconfig.node;
+ oconfig.node = new unsigned char[nbColor*3];
- config.nn_NbCouleurs = nbColor;
+ oconfig.nn_NbCouleurs = nbColor;
// Synchronisation des poids avec adjust
UpdateNodes();
@@ -846,19 +846,19 @@ UI::Menu()
case 7: // Annuler les changements
// Reload du fichier de poids initial
- config.LoadNNFile();
+ oconfig.LoadNNFile();
// Envoie du nombre de couleur initial du NN et reload de l'image
sprintf(buf, "r %i", savedNNColorNumber);
SendSignal(buf);
- config.nn_NbCouleurs = savedNNColorNumber;
+ oconfig.nn_NbCouleurs = savedNNColorNumber;
PrintStatus("Les changements ont ete annules\n");
break;
case 8: // Sauver les changements
// Sauvegarde des poids dans le fichier poids
- config.CreateNNFile("rc/poids", config.colorMode, config.nn_NbCouleurs);
+ oconfig.CreateNNFile("rc/poids", oconfig.colorMode, oconfig.nn_NbCouleurs);
// Reload du NN et de l'image a partir des nouveaux poids
sprintf(buf, "r -1");
@@ -882,9 +882,13 @@ UI::Menu()
if (curImage >= lengthFileList) curImage = 0;
// Envoie de la commande pour le chargement de la nouvelle image
- sprintf(buf, "n %s%s\n", config.imgPath, fileList[curImage]);
+ sprintf(buf, "n %s%s\n", oconfig.imgPath, fileList[curImage]);
SendSignal(buf);
break;
+
+ case 'g':
+ SendSignal("z\n");
+ break;
}
// On affiche le texte d'aide de l'item correspondant