initial commit

This commit is contained in:
root
2023-06-12 09:14:09 +02:00
commit b4912f303e
2545 changed files with 209350 additions and 0 deletions

View File

@@ -0,0 +1,523 @@
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>Documentation VISION (LDV) : Description</title>
</head>
<body background="images/conc2.gif" bgcolor="#FFFFFF">
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" width="17%"><a href="notions.htm"><img
src="images/cprev.jpg" alt="Chapitre pr<70>c<EFBFBD>dent"
border="0" hspace="2" width="46" height="26"></a><a
href="index.htm"><img src="images/csom.jpg"
alt="Retour au sommaire" border="0" hspace="2" width="26"
height="26"></a><a href="defines.htm"><img
src="images/csuiv.jpg" alt="Chapitre suivant" border="0"
hspace="2" width="43" height="26"></a></td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icoprinc.gif" width="59"
height="71"></p>
</td>
<td width="33%"><p align="center"><font color="#0000FF"
size="5"><strong>Documentation </strong><em><strong>VISION
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Derni<EFBFBD>re
mise <20> jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->06/05/01<!--webbot
bot="Timestamp" i-checksum="12424" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">T<EFBFBD>l<EFBFBD>charger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>3.
D E S C R I P T I O N</strong></font></p>
</td>
<td align="center" width="17%">&nbsp; <!--webbot
bot="HTMLMarkup" startspan --><A HREF="http://www.estat.com/getstats?serial=1390118421">
<IMG SRC="http://perso.estat.com/cgi-bin/perso/1390118421?page=DocVisionLDV"
BORDER=0></A>
<!--webbot
bot="HTMLMarkup" endspan --></td>
</tr>
</table>
</center></div>
<hr>
<p>Pour r<>sumer, voici ce qui se passe entre <em><strong>VISION</strong></em>
et un LDV :</p>
<p>0. Init (fait une seule fois au premier appel de l'utilisateur
mettant en oeuvre les LDV). <em><strong>VISION</strong></em>
charge la fonction <a href="#capacit<69>s">GetLDVCapabilities</a>
de chaque LDV, appelle la fonction et m<>morise les capacit<69>s de
chaque LDV afin de limiter les futurs acc<63>s disque, puis
d<EFBFBD>charge chaque LDV</p>
<p>1. <em><strong>VISION</strong></em> charge le LDV</p>
<p>2. Si sp<73>cifi<66>e, <em><strong>VISION</strong></em> appelle la
fonction GetParams</p>
<p>3. <em><strong>VISION</strong></em> appelle la fonction PreRun</p>
<p>4. <em><strong>VISION</strong></em> appelle la fonction Run
(ou Preview)</p>
<p>5. <em><strong>VISION</strong></em> d<>charge le LDV</p>
<p>&nbsp;</p>
<p><a name="capacit<69>s"></a><font size="4"><strong>3.1 Capacit<69>s
du LDV</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><strong>Prototype</strong></td>
<td width="85%"><a href="struct.htm#LDV_INFOS">LDV_INFOS</a>
* cdecl GetLDVCapabilities(<a href="vapi/struct.htm#VAPI">VAPI</a>
*vapi)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN] </strong>vapi : pointeur sur
l'interface <a href="vapi/index.htm#Pr<50>sentation">VAPI</a>
fournie par <em><strong>VISION</strong></em>. Ce pointeur
doit <20>tre m<>moris<69> pour un usage futur.</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%">Un pointeur sur la structure <a
href="struct.htm#LDV_INFOS">LDV_INFOS</a> stock<63>e dans
le LDV (le squelette d<>clare la variable LdvInfos de
type <a href="struct.htm#LDV_INFOS">LDV_INFOS</a>)</td>
</tr>
<tr>
<td width="15%"><strong>Responsabilit<EFBFBD>s</strong></td>
<td width="85%">Cette fonction est enti<74>rement ecrie
dans le squelette, le travail <20> faire r<>side dans le
remplissage de la structure de type <a
href="struct.htm#LDV_INFOS">LDV_INFOS</a> du squelette
LDV.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="prerun"></a><font size="4"><strong>3.2 Fonction
PreRun</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><strong>Prototype</strong></td>
<td width="85%"><a href="defines.htm#LDV_STATUS">LDV_STATUS</a>
cdecl PreRun(<a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*in, <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
*params, <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*out)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> in : pointeur sur
la structure <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
d<>crivant l'image de <em><strong>VISION<br>
</strong></em><strong>[IN / OUT]</strong> params :
pointeur sur une structure <a
href="struct.htm#LDV_PARAMS">LDV_PARAMS</a> indiquant la
zone <20> modifier</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%"><a href="defines.htm#ELDV">Un code de
succ<63>s ou d'erreur</a></td>
</tr>
<tr>
<td width="15%"><strong>Responsabilit<EFBFBD>s</strong></td>
<td width="85%">Doit signaler <20> <em><strong>VISION</strong></em>
la m<>moire <20> allouer et la partie <20> sauvegarder pour
la fonction UNDO :<ol>
<li>Si le LDV en a besoin (<a href="defines.htm#LDVF">LDVF_OPINPLACE</a>
non d<>fini dans la structure <a
href="struct.htm#LDV_CAPS">LDV_CAPS</a>),
out-&gt;Raster.fd_w et out-&gt;Raster.fd_h
doivent contenir la taille de l'image <20> allouer
pour la destination. C'est cette image qui sera
ensuite affich<63>e par <em><strong>VISION</strong></em>
dans la fen<65>tre associ<63>e.</li>
<li>Au besoin, indiquer dans les champs x1, x2, y1 et
y2 de la structure <a
href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>, la
zone <20> sauvegarde dans le buffer UNDO de l'image
afin de pouvoir revenir en arri<72>re. Avant
l'appel, <em><strong>VISION</strong></em>
positionne ces champs en fonction de la
s<>lection de l'utilisateur (bloc ou image
enti<74>re)</li>
</ol>
<p>Par d<>faut :</p>
<ol>
<li><em><strong>VISION</strong></em> n'allouera
aucune m<>moire pour le LDV et supposera que la
transformation se fera &quot;sur place&quot;</li>
<li><em><strong>VISION</strong></em> sauvegardera
dans le buffer UNDO la partie pr<70>cis<69>e par
champs x1, x2, y1 et y2 de la structure <a
href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
(image enti<74>re ou s<>lection si un bloc est
s<>lectionn<6E>)</li>
</ol>
</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="run"></a><font size="4"><strong>3.3 Fonction Run</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><strong>Prototype</strong></td>
<td width="85%"><a href="defines.htm#LDV_STATUS">LDV_STATUS</a>
cdecl Run(<a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*in, <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
*params, <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*out)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> in : pointeur sur
la structure <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
d<>crivant l'image source de <em><strong>VISION<br>
</strong></em><strong>[IN]</strong> params : pointeur sur
une structure <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
indiquant la zone <20> modifier<br>
<strong>[OUT]</strong> out : pointeur sur l'image
destination, allou<6F>e par <em><strong>VISION</strong></em>
gr<67>ce <20> un appel pr<70>c<EFBFBD>dent <20> PreRun</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%"><a href="defines.htm#ELDV">Un code de
succ<63>s ou d'erreur</a></td>
</tr>
<tr>
<td width="15%"><strong>Responsabilit<EFBFBD>s / Remarques</strong></td>
<td width="85%">Doit effectuer l'op<6F>ration pr<70>vue pour
le LDV.<br>
<em><strong>VISION</strong></em> choisit automatiquement
le format le plus adapt<70> en essayant de minimiser la
m<>moire et en tenant compte du ou des formats g<>r<EFBFBD>s
par le LDV (sachant que le plus <20>conome est <a
href="defines.htm#LDVF">LDVF_SPECFORMAT</a>)<br>
Le LDV peut modifier une autre zone que celle donn<6E>e
dans les champs x1, y1, x2 et y2 de params <20> condition
de l'avoir signal<61> auparavant par la fonction PreRun<br>
Ne <strong><u>JAMAIS</u></strong> allouer dans le LDV de
la m<>moire <20> destination de <em><strong>VISION</strong></em>,
car celle-ci sera lib<69>r<EFBFBD>e d<>s que <em><strong>VISION</strong></em>
d<>chargera le LDV (m<>me si vous ne le faites pas
explicitement, le compilateur ou le syst<73>me s'en
chargera).Par contre, rien ne vous interdit d'allouer de
la m<>moire <20> usage interne pour effectuer cette
fonction, n'oubliez pas de la lib<69>rer !<br>
Depuis la version 1.02 de <a
href="vapi/index.htm#Pr<50>sentation">VAPI</a>, on peut
maintenant annuler le traitement en cours depuis
l'interface utilisateur (il suffit de fermer la fen<65>tre
de progression ou d'appuyer sur Control-C), pour cela :<br>
* Ajouter <a href="defines.htm#LDVF">LDVF_SUPPORTCANCEL</a>
dans le champ Flags de la structure <a
href="struct.htm#LDV_CAPS">LDV_CAPS</a> pr<70>sente dans la
variable LdvInfos du LDV<br>
* Tester la valeur renvoy<6F>e par la fonction <a
href="vapi/pr.htm#PrSetProgEx">PrSetProgEx</a>, si elle
est non nulle, l'annulation est demand<6E>e<br>
* Sortir du traitement du LDV (ne pas oublier de lib<69>rer
l'<27>ventuelle m<>moire allou<6F>e en interne)<br>
* Sortir de la fonction Run en renvoyant <a
href="defines.htm#ELDV">ELDV_CANCELLED</a><br>
Notes :<br>
D<>s que la fonction <a href="vapi/pr.htm#PrSetProgEx">PrSetProgEx</a>
a retourn<72> une valeur non nulle, la fen<65>tre de
progression est d<>truite, la demande d'annulation n'est
donc pas seulement une demande mais une obligation !<br>
Ne vous souciez pas de la lib<69>ration de l'image
destination ou de restaurer l'image source, <em><strong>VISION</strong></em>
g<>re cela au travers du Undo.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="preview"></a><font size="4"><strong>3.4 Fonction
Preview</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><strong>Prototype</strong></td>
<td width="85%"><a href="defines.htm#LDV_STATUS">LDV_STATUS</a>
cdecl Preview(<a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*in, <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
*params, <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*out)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%">Identiques <20> ceux de la fonction <a
href="#run">Run</a></td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%"><a href="defines.htm#ELDV">Un code de
succ<63>s ou d'erreur</a></td>
</tr>
<tr>
<td width="15%"><strong>Responsabilit<EFBFBD>s / Remarques</strong></td>
<td width="85%">Cette fonction est identique <20> la
fonction <a href="#run">Run</a>, sauf qu'elle op<6F>re sur
des images plus petites (112 x 112 en moyenne). Si la
fonction <a href="#run">Run</a> est suffisamment rapide
pour afficher le r<>sultat en moins de 1 seconde, la
fonction Preview devrait simplement l'appeler. Dans le
cas contraire, on peut se permettre certaines
approximations ou pr<70>-calculs pour revenir en de<64>a de
la seconde.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="getparams"></a><font size="4"><strong>3.5 Fonction
GetParams</strong></font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td width="15%"><strong>Prototype</strong></td>
<td width="85%"><a href="defines.htm#LDV_STATUS">LDV_STATUS</a>
cdecl GetParams(<a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
*img, <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
*params, char *path)</td>
</tr>
<tr>
<td width="15%"><strong>Param<EFBFBD>tres</strong></td>
<td width="85%"><strong>[IN]</strong> img : pointeur sur
la structure <a href="struct.htm#LDV_IMAGE">LDV_IMAGE</a>
d<>crivant l'image source de <em><strong>VISION<br>
</strong></em><strong>[IN]</strong> params : pointeur sur
une structure <a href="struct.htm#LDV_PARAMS">LDV_PARAMS</a>
indiquant la zone <20> modifier<br>
<strong>[IN]</strong> path: chemin de chargement du LDV</td>
</tr>
<tr>
<td width="15%"><strong>Retour</strong></td>
<td width="85%"><a href="defines.htm#ELDV">ELDV_NOERROR</a>
ou <a href="defines.htm#ELDV">ELDV_CANCELLED</a></td>
</tr>
<tr>
<td width="15%"><strong>Responsabilit<EFBFBD>s / Remarques</strong></td>
<td width="85%">Cette fonction est <strong><u>optionnelle</u></strong>.
Si votre LDV l'exporte, <em><strong>VISION</strong></em>
l'appellera en lieu et place de sa fonction interne de
saisie des param<61>tres.<br>
Si <a href="defines.htm#ELDV">ELDV_NOERROR</a> est
renvoy<6F>, <em><strong>VISION</strong></em> appellera
ensuite la fonction <a href="#run">Run</a><br>
Si <a href="defines.htm#ELDV">ELDV_CANCELLED</a> est
renvoy<6F>, la saisie est annul<75>e (comme si vous aviez
annul<75> la saisie au travers du formulaire standard
propos<6F> par <em><strong>VISION</strong></em>).<br>
Le param<61>tre params devient transparent pour <em><strong>VISION</strong></em>,
il sera renvoy<6F> sans changement lors de l'appel <20> la
fonction <a href="#run">Run</a>. Votre LDV peut s'en
servir pour stocker ses param<61>tres ou peut choisir de
les m<>moriser en interne.<br>
path permet de r<>cup<75>rer le fichier INI associ<63> pour
la description multi-langue des param<61>tres. Vous pouvez
au choix utiliser un fichier INI (ou tout autre, c'est
maintenant vous qui <20>tes ma<6D>tre). Si vous voulez g<>rer
la description multi-langues, n'oubliez pas de scruter
les r<>pertoires de langues <20> partir de path.</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="fichier ini"></a><font size="4"><strong>3.6 Le
fichier INI associ<63></strong></font></p>
<p><font size="3">Le fichier INI associ<63> <20> un LDV a deux buts:</font></p>
<ol>
<li><font size="3">Rassembler toutes les informations
relatives <20> la langue comme son nom et sa description</font></li>
<li><font size="3">D<EFBFBD>finir le param<61>trage du LDV</font></li>
</ol>
<p>&nbsp;</p>
<p><a name="langues"></a><font size="4"><strong>3.6.1
Informations sur la langue</strong></font></p>
<p><font size="3">Les LDV sont multi-langues, c'est <20> dire que
si vous avez d<>fini une langue dans les pr<70>f<EFBFBD>rences, <em><strong>VISION</strong></em>
est capable d'exploiter cette information <20>galement pour les
LDV, si l'information est disponible. Dans le r<>pertoire LDV de <em><strong>VISION</strong></em>,
on trouve les .LDV ainsi que les .INI associ<63>s. Par exemple, le
fichier INVERT.INI est associ<63> au fichier INVERT.LDV.Dans ce
dossier LDV, doivent figurer les .INI les plus standards, c'est
<EFBFBD> dire en langue anglaise. Si par exemple, vous avez d<>fini la
langue &quot;Fran<EFBFBD>ais&quot; dans les pr<70>f<EFBFBD>rences de <em><strong>VISION</strong></em>,
il suffit de cr<63>er le sous-r<>pertoire &quot;Fran<EFBFBD>ais&quot;
dans le dossier LDV, et d'y inclure le fichier INVERT.INI traduit
en fran<61>ais pour que <em><strong>VISION</strong></em> aille le
chercher <20> la place de son <20>quivalent directement sous le
r<EFBFBD>pertoire LDV.</font></p>
<p><font size="3">Dans la section [Informations], <em><strong>VISION</strong></em>
attend les cl<63>s suivantes:</font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="15%"><strong>Nom de la cl<63></strong></td>
<td align="center" width="10%"><strong>Taille</strong></td>
<td align="center" width="75%"><strong>Description</strong></td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">ShortName</font></td>
<td align="center" width="10%">15 caract<63>res max.</td>
<td width="75%">Nom court du module apparaissant dans la
liste des modules <20> s<>lectionner</td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">LongName</font></td>
<td align="center" width="10%">31 caract<63>res max.</td>
<td width="75%">Nom apparaissant lorsque on demande des
d<>tails sur ce LDV</td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">Description</font></td>
<td align="center" width="10%">79 caract<63>res max.</td>
<td width="75%">Description compl<70>te du module sur 3
lignes</td>
</tr>
</table>
</center></div>
<p>&nbsp;</p>
<p><a name="parametrage"></a><font size="4"><strong>3.6.2
Param<EFBFBD>trage du LDV</strong></font></p>
<p><font size="3"><em><strong>VISION</strong></em> permet la
saisie de jusqu'<27> 4 param<61>tres pour un LDV. Ces param<61>tres
sont saisis <20> l'aide d'ascenseurs GEM apparaissant ou non
suivant le nombre de param<61>tres que le LDV accepte en entr<74>e.<br>
Pour que <em><strong>VISION</strong></em> accepte d'afficher un
param<EFBFBD>tre,une section nomm<6D>e [ParameterN] (1 &lt;= N &lt;= 4)
doit <20>tre cr<63>ee avec les cl<63>s suivantes:</font></p>
<div align="center"><center>
<table border="2" width="100%">
<tr>
<td align="center" width="15%"><strong>Nom de la cl<63></strong></td>
<td align="center" width="85%"><strong>Description</strong></td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">Name</font></td>
<td width="85%">Nom de ce param<61>tre (15 caract<63>res
max.). Si le nom est absent, ce param<61>tre n'apparaitra
pas</td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">Type</font></td>
<td width="85%">1 : entier 16 bits (-32768 --&gt; +32767)<br>
2 : float (non g<>r<EFBFBD> actuellement)</td>
</tr>
<tr>
<td align="center" width="15%"><font size="3">MinValue</font></td>
<td width="85%">Valeur minimale admissible pour ce
param<61>tre</td>
</tr>
<tr>
<td align="center">DefautValue</td>
<td>Valeur par d<>faut pr<70>sent<6E> avec l'interface de <em><strong>VISION</strong></em></td>
</tr>
<tr>
<td align="center">MaxValue</td>
<td>Valeur maximale admissible pour ce param<61>tre</td>
</tr>
</table>
</center></div>
<p>Si cela ne peut convenir au LDV que vous d<>veloppez, vous
pouvez sp<73>cifier une fonction de saisie sp<73>cifique avec la
fonction <a href="#getparams">GetParams</a>.</p>
<hr>
<div align="center"><center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" width="17%"><a href="notions.htm"><img
src="images/cprev.jpg" alt="Chapitre pr<70>c<EFBFBD>dent"
border="0" hspace="2" width="46" height="26"></a><a
href="index.htm"><img src="images/csom.jpg"
alt="Retour au sommaire" border="0" hspace="2" width="26"
height="26"></a><a href="defines.htm"><img
src="images/csuiv.jpg" alt="Chapitre suivant" border="0"
hspace="2" width="43" height="26"></a></td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icoprinc.gif" width="59"
height="71"></p>
</td>
<td width="33%"><p align="center"><font color="#0000FF"
size="5"><strong>Documentation </strong><em><strong>VISION
(LDV)</strong></em></font></p>
</td>
<td align="center" valign="top" rowspan="2" width="8%"><p
align="center"><img src="images/icointro.gif" width="59"
height="71"></p>
</td>
<td valign="top" width="17%"><p align="left">Derni<EFBFBD>re
mise <20> jour : <!--webbot bot="Timestamp" startspan
s-type="EDITED" s-format="%d/%m/%y" -->06/05/01<!--webbot
bot="Timestamp" i-checksum="12424" endspan --></p>
</td>
</tr>
<tr>
<td width="17%"><p align="center"><a
href="..\..\download/dvldv.zip">T<EFBFBD>l<EFBFBD>charger la doc</a></p>
</td>
<td width="33%"><p align="center"><font size="4"><strong>3.
D E S C R I P T I O N</strong></font></p>
</td>
<td valign="top" width="17%">&nbsp; </td>
</tr>
</table>
</center></div>
</body>
</html>